我们有两个数据库设置用于在单个 SQL Server 实例上进行镜像:一个测试数据库和一个生产数据库。两者都使用完全相同的端点镜像到另一台服务器。
如果我进入测试数据库的数据库属性并单击“故障转移”按钮,它是否也会对生产数据库进行故障转移,因为两个数据库共享一个镜像端点并且它们的服务器网络地址属性相同?
我很担心,因为当我为第二个数据库设置镜像时,我不需要配置任何新东西。它只是使用了所有现有信息。
如果我使用“数据库属性”中的“故障转移”按钮,是否会导致使用该端点的所有数据库故障转移,或者只是我正在查看其属性的特定数据库?
@mrdenny 的回答是准确的,故障转移一个数据库不会导致所有其他数据库也故障转移。
然而,只是为了提供更多关于数据库镜像端点是什么的概述:
从BOL,
Microsoft SQL Server 2005 及更高版本中的连接管理基于端点。端点是一个 SQL Server 对象,它使 SQL Server 能够通过网络进行通信。对于数据库镜像,服务器实例需要自己的专用数据库镜像端点。服务器实例上的所有镜像连接都使用单个数据库镜像端点。此端点是一个专用端点,专门用于接收来自其他服务器实例的数据库镜像连接。
为了更加灵活,您可以使用 T-sql 进行手动故障转移:
在镜像 DB 上关闭镜像(中断镜像)。
将数据库恢复模式设置为 RECOVERY
如果您使用 SQL 身份验证,则修复和孤立用户
编辑:
由于您使用的是高安全模式(根据您的屏幕截图),您可以使用主服务器中的以下内容
这样做,只会发生角色反转并且镜像方向反转 - 主体变为镜像,反之亦然。请注意,镜像没有损坏。
请注意,根据此 MSDN 文章
如果您想自动化整个故障转移,请参阅数据库镜像自动化
不,它不会。数据库彼此独立地进行故障转移。故障转移测试数据库并没有什么坏处,生产数据库将保持原样。