在数据库服务器之间切换

本文关键字:之间 服务器 数据库 | 更新日期: 2023-09-27 18:30:24

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

在数据库服务器之间切换

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

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

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

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

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

使用 T-SQL

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

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

您可以在 app.config 中同时具有两个连接字符串,并在"非只读"数据库中创建一个包含一行和一列的表。将此行设置为布尔值,进行更改后,将此值交换为 true。加载应用程序时,它将检查此表的值,如果为 true,则将使用非只读数据库的连接字符串。如果为 false,它将更改为"即将成为只读"数据库。

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