SQL Server ODBC 镜像/故障转移伙伴

Mik*_* S. 5 ms-access sql-server odbc mirroring failover

背景/上下文

我们正在将我们的 SQL Server 2000 数据库移动到具有见证和自动故障转移的镜像 SQL Server 2008 R2 服务器。我们在这些数据库上运行了 .Net 和 Access 应用程序,并且正在测试服务器故障转移事件上的客户端重定向。

在我向连接字符串添加“故障转移伙伴”后,.Net 应用程序正确响应。在故障转移时,应用程序将在下一个数据库请求中失败,然后在我们重新启动应用程序时移动到镜像服务器。

对于通过 ODBC 的 Access 应用程序,我们尝试使用 SQL Server Native Client 10.0 驱动程序(看起来标准驱动程序不支持镜像?)并在设置中提供镜像服务器。

ODBC 镜像屏幕

我在这里指定了数据库和故障转移服务器名称。在故障转移事件中,即使在应用程序重新启动后,Access 应用程序似乎也不会重定向到镜像服务器。我还应该在这里做些什么来强制 ODBC 切换到镜像服务器,还是我没有正确指定镜像服务器名称?

Han*_*non 4

我维护一个 Access 2003 应用程序,该应用程序连接到一对设置有镜像的 SQL Server 2005 服务器。我使用以下连接字符串,允许应用程序在应用程序重新启动后连接到镜像:

昏暗的工作空间
Dim db 作为数据库
调暗只要

设置 ws = DBEngine.CreateWorkspace("MyODBCWorkspace", "admin", "", dbUseJet)
设置 db = ws.OpenDatabase("C:\[数据库路径]", True, False, "MS Access;")
对于 a = 0 到 db.TableDefs.Count - 1
    Me.ProgressBar1.Value = a
    举办活动
    如果 db.TableDefs(a).Connect "" 那么
        db.TableDefs(a).Attributes = TableDefAttributeEnum.dbAttachSavePWD
        db.TableDefs(a).Connect = "ODBC;DRIVER=SQL Native Client;SERVER=[PrimaryServerName];Trusted_Connection=Yes;APP=[MyAppName];WSID=[MyWorkstationName];DATABASE=[SQLServerDatabase];Failover_Partner=[MirrorSQLServerName ];”
        db.TableDefs(a).RefreshLink
    万一
下一个
数据库关闭
ws.关闭
设置数据库=无
设置 ws = 无

我在创建的 VB 启动器应用程序中使用此代码,用户双击该应用程序即可启动 Access MDB/MDE。

或者,这是我们有时用来完成相同任务的 DSN 文件的内容:

[ODBC]
DRIVER=SQL 本机客户端
APP=微软数据访问组件
Trusted_Connection=是
SERVER=[服务器完全限定域名]
FAILOVER_PARTNER=[MirrorFullyQualifiedDomainName]
DATABASE=[数据库名称]