如果我对一个数据库进行故障转移,那么共享同一镜像端点的其他数据库也会进行故障转移吗?

Rac*_*hel 11 sql-server-2005 sql-server mirroring failover

我们有两个数据库设置用于在单个 SQL Server 实例上进行镜像:测试数据库和生产数据库。两者都使用完全相同的端点镜像到另一台服务器。

如果我进入测试数据库的数据库属性并单击“故障转移”按钮,它是否也会故障转移生产数据库,因为两个数据库共享一个镜像端点并且它们的服务器网络地址属性相同?

在此处输入图片说明

我很担心,因为当我为第二个数据库设置镜像时,我不需要配置任何新的东西。它只是使用了所有现有信息。

如果我使用“数据库属性”中的“故障转移”按钮,是否会导致故障转移使用该端点的所有数据库,或者只是我正在查看其属性的特定数据库?

Kin*_*hah 19

@mrdenny 的回答是准确的,故障转移一个数据库不会导致所有其他数据库也发生故障。

然而,只是为了更多地概述什么是数据库镜像端点

BOL ,

Microsoft SQL Server 2005 和更高版本中的连接管理基于端点。终结点是一个 SQL Server 对象,它使 SQL Server 能够通过网络进行通信。对于数据库镜像,服务器实例需要自己的专用数据库镜像端点。服务器实例上的所有镜像连接都使用单个数据库镜像端点。此端点是一个专用端点,专门用于接收来自其他服务器实例的数据库镜像连接。

为了更灵活,您可以使用 T-sql 进行手动故障转移:

在镜像数据库上关闭镜像(中断镜像)。

ALTER DATABASE <<DB NAME>> SET PARTNER OFF
Run Code Online (Sandbox Code Playgroud)

将数据库的恢复模块设置为 RECOVERY

RESTORE DATABASE <<DB NAME>> WITH RECOVERY
Run Code Online (Sandbox Code Playgroud)

如果您使用 SQL 身份验证,则修复和孤立用户

EXEC sp_change_users_login ‘Auto_Fix’ , ‘<<username>>’
Run Code Online (Sandbox Code Playgroud)

编辑:

由于您使用的是高安全模式(根据您的屏幕截图),您可以使用主体服务器中的以下内容

ALTER DATABASE <<DB NAME>> SET PARTNER FAILOVER
Run Code Online (Sandbox Code Playgroud)

这样做,只会发生角色颠倒,镜像方向颠倒——主体变成镜像,反之亦然。请注意,镜像未损坏。

请注意,根据这篇 MSDN 文章

手动故障转移只能从主体服务器启动。

如果您想自动化整个故障转移,请参考数据库镜像自动化


mrd*_*nny 8

不,不会。数据库相互独立地进行故障转移。故障转移测试数据库没有坏处,生产数据库将保持原样。