0

我们有 2 台具有相同数据库的数据库服务器(在两台服务器中)用于 Web 应用程序,(在将应用程序部署到生产环境时只有 1 台存在)。现在连接到 Web 应用程序的服务器中的当前数据库已设为只读,并且第二个服务器中的第二个数据库处于活动状态。我们应该在服务器之间切换,因为第一个主服务器变成只读的。Web 应用程序位于 asp.net 中,C# 带有 sql 后端。我们如何检查数据库的只读并连接到下一个服务器?

4

4 回答 4

1

您应该能够查询数据库以检查它是否是只读的,然后根据查询结果更改您的连接字符串。

在 MSSQL 中,我相信此信息保存在 sys.databases 表的 is_read_only 列中

http://technet.microsoft.com/en-us/library/ms178534.aspx

于 2013-09-06T16:40:45.387 回答
1

在 Web.config 中创建第二个连接字符串,并使用您需要在应用程序中建立连接的任何一个。

于 2013-09-06T16:38:44.253 回答
0

您可以在 app.config 中拥有两个连接字符串,并在“非只读”数据库中创建一个包含一行和一列的表。将此行设为布尔值,一旦进行更改,将此值交换为 true。当你的应用程序加载时,它会检查这个表的值,如果它是真的,那么它将使用连接字符串到非只读数据库。如果为假,它将更改为“即将成为只读”数据库。

最终您会想要更改它,以便您只有一个连接字符串,除非您需要同时访问这两个字符串。通常我只看到这种报告设置,并且通常只有一个应用程序连接到只读/存档数据库。

于 2013-09-06T16:46:25.153 回答
0

我们如何检查数据库的只读并连接到下一个服务器?

使用 T-SQL

SELECT name, is_read_only 
FROM sys.databases 
WHERE name = 'databaseName'
GO

is_read_only当数据库设置为只读模式时,这将在列中返回 1 。

于 2013-09-06T16:39:46.417 回答