对于Web应用程序,我们有2个数据库服务器和相同的数据库(在两个服务器中)(当应用程序部署到生产时只有1个)。现在,连接到Web应用程序的服务器中的当前数据库已经生成只读,第二个服务器中的第二个数据库处于活动状态。我们应该在服务器之间切换,因为第一个主要服务器只读。 Web应用程序在asp.net,C#中使用sql后端。我们如何检查数据库的只读并连接到下一个服务器?
答案 0 :(得分:1)
在Web.config中创建第二个连接字符串,并使用在应用程序中建立连接所需的任何一个。
答案 1 :(得分:1)
您应该能够查询数据库以检查它是否为只读,然后根据查询结果更改连接字符串。
在MSSQL中,我相信这些信息保存在sys.databases表的is_read_only列中
答案 2 :(得分:0)
我们如何检查数据库的只读并连接到下一个服务器?
使用T-SQL
SELECT name, is_read_only
FROM sys.databases
WHERE name = 'databaseName'
GO
当数据库设置为只读模式时,这将在is_read_only
列中返回1。
答案 3 :(得分:0)
您可以在app.config中同时拥有两个连接字符串,并在“非只读”数据库中创建一个包含一行和一列的表。将此行设为布尔值,一旦进行更改,请将此值交换为true。当您的应用程序加载时,它将检查该表的值,如果它是真的,那么它将使用连接字符串到非只读DB。如果它是错误的,它将变为“即将被读取”的数据库。
最终,您需要更改它,以便只有一个连接字符串,除非您需要同时访问这两个字符串。通常我只看到此设置用于报告,通常只有一个应用程序连接到只读/存档数据库。