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


11

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

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

在此处输入图片说明

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

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

Answers:


19

@mrdenny的回答很准确,即故障转移一个数据库不会导致所有其他数据库也进行故障转移。

但是,仅提供有关数据库镜像端点的更多概述:

BOL

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

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

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

ALTER DATABASE <<DB NAME>> SET PARTNER OFF

将恢复模块设置为RECOVERY

RESTORE DATABASE <<DB NAME>> WITH RECOVERY

修复和孤立用户(如果使用SQL身份验证)

EXEC sp_change_users_login Auto_Fix , ‘<<username>>’

编辑:

由于您使用的是高安全性模式(如屏幕截图所示),因此可以从主体服务器使用以下内容

ALTER DATABASE <<DB NAME>> SET PARTNER FAILOVER

这样做仅发生角色反转,并且镜像方向相反-主角变为镜像,反之亦然。请注意,镜像未中断。

请注意,根据此MSDN文章

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

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


8

不,不会。数据库彼此独立地进行故障转移。对测试数据库进行故障转移没有任何危害,生产数据库将保持在原样。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.