注释
此功能将在Microsoft SQL Server 的未来版本中删除。 避免在新开发工作中使用此功能,并计划修改当前使用此功能的应用程序。 请改用Always On可用性组。
本主题介绍设置数据库镜像的先决条件和建议。 有关数据库镜像的简介,请参阅数据库镜像(SQL Server)。
注释
磁盘上的 SQL Server 存储格式在 64 位和 32 位环境中是相同的。 因此,数据库镜像会话可以合并在 32 位环境中运行的服务器实例和在 64 位环境中运行的服务器实例。
支持数据库镜像
有关 SQL Server 2014 中数据库镜像支持的信息,请参阅 SQL Server 2014 各版本支持的功能。
请注意,数据库镜像适用于任何受支持的数据库兼容性级别。 有关支持的兼容性级别的信息,请参阅 ALTER DATABASE 兼容性级别(Transact-SQL)。
先决条件
若要建立镜像会话,合作伙伴和见证服务器(如果有)必须在同一版本的 SQL Server 上运行。
两个合作伙伴(即主体服务器和镜像服务器)必须运行同一版本的 SQL Server。 见证角色(如果存在)可以在支持数据库镜像的任何版本的 SQL Server 上运行。
注释
可以将镜像会话中的合作伙伴的服务器实例升级到较新版本的 SQL Server。 有关详细信息,请参阅 在升级服务器实例时最小化镜像数据库的停机时间。
数据库必须使用完整恢复模式。 简单恢复模式和大容量日志恢复模式不支持数据库镜像。 因此,对于镜像数据库,批量操作始终会被完全记录日志。 有关恢复模型的信息,请参阅恢复模型(SQL Server)。
验证镜像服务器是否有足够的磁盘空间用于镜像数据库。
注释
有关如何在复制的数据库上使用数据库镜像的信息,请参阅数据库镜像和复制(SQL Server)。
在镜像服务器上创建镜像数据库时,请确保还原指定同一数据库名称 WITH NORECOVERY 的主体数据库的备份。 此外,还必须应用在创建该备份之后的所有日志备份,并且同样必须使用 "WITH NORECOVERY"。
重要
如果数据库镜像已停止,在重新启动数据库之前,必须在主体数据库上执行的任何后续日志备份应用于镜像数据库。
限制
只能镜像用户数据库。 无法镜像 master、 msdb、 tempdb 或 模型 数据库。
在数据库镜像会话期间,无法重命名镜像数据库。
数据库镜像不支持 FILESTREAM。 无法在主体服务器上创建 FILESTREAM 文件组。 不能为包含 FILESTREAM 文件组的数据库配置数据库镜像。
在 32 位系统上,由于每个数据库镜像会话消耗的工作线程数量较多,数据库镜像每个服务器实例最多支持约 10 个数据库。
跨数据库事务或分布式事务不支持数据库镜像。 有关详细信息,请参阅 数据库镜像或 AlwaysOn 可用性组不支持跨数据库事务(SQL Server)。
有关配置合作伙伴服务器的建议
合作伙伴应在可处理相同工作负荷的可比较系统上运行。
注释
如果计划对自动故障转移使用高安全模式,则每个故障转移伙伴上的正常负载应小于 CPU 的 50%。 如果工作负载重载 CPU,故障转移伙伴可能无法 ping 镜像会话中的其他服务器实例。 这会导致一次不必要的故障转移。 如果 CPU 使用率不能保持在 50% 以下,我们建议使用高安全模式,而无需自动故障转移或高性能模式。
如果可能,镜像数据库的路径(包括驱动器号)应与主体数据库的路径相同。 如果文件布局必须不同,则必须在 RESTORE 语句中包含 MOVE 选项。 例如,如果主体数据库位于驱动器“F:”上,但镜像系统缺少 F: 驱动器。
重要
如果在创建镜像数据库时移动数据库文件,那么以后可能无法在不挂起镜像的情况下向数据库添加新的文件。
镜像会话中的所有服务器实例都应使用相同的母版代码页和排序规则。 在镜像设置过程中,差异可能会导致问题。
(可选)估算数据库故障转移的时间,以确保系统配置能够提供您需要的性能。 有关详细信息,请参阅“估计角色切换期间服务中断”(数据库镜像)。
为了获得最佳性能,请使用专用网络适配器(网络接口卡)进行镜像。
我们不建议广域网(WAN)是否足够可靠,以便在高安全模式下进行数据库镜像。 如果决定在 WAN 上使用高安全性模式,添加会话见证时请务必小心,否则可能会发生不必要的自动故障转移。 有关详细信息,请参阅本主题后面的 有关部署数据库镜像的建议。
有关部署数据库镜像的建议
使用异步操作可以获得最佳的数据库镜像性能。 使用同步操作的镜像会话在其工作负荷生成大量事务日志数据时可能会遇到性能下降的问题。
在测试环境中,可以探索所有操作模式来评估数据库镜像的性能。 但是,在将镜像部署到生产环境之前,请确保了解网络在现实世界中的工作原理。
具有自动故障转移的高安全性模式专为具有专用连接或相当简单的网络配置的高服务网络而设计,可最大程度地减少可能网络故障的来源。 这种高质量的网络环境对于具有自动故障转移的高安全模式是必需的,建议用于所有数据库镜像会话。 但是,没有自动故障转移的高性能模式和高安全模式受到网络可靠性的影响要小得多。
因此,对于生产环境,我们建议遵循以下部署准则:
开始以异步高性能模式运行。 此模式对网络环境最不敏感,并提供用于探索镜像工作原理的最佳配置。 建议以异步方式运行系统,直到确信带宽支持镜像,并且你已对环境中的异步模式设置和性能有了了解。 有关详细信息,请参阅 数据库镜像操作模式。
重要
在整个测试过程中,我们建议您监控会话,注意导致数据库镜像失败的网络错误。 有关潜在故障源的详细信息,请参阅 数据库镜像期间可能出现的故障。 有关如何监视数据库镜像的信息,请参阅监视数据库镜像(SQL Server)。
如果确信异步作满足业务需求,可能需要尝试同步作来改进数据保护。 在测试同步镜像在您的环境中如何工作时,我们建议您首先测试高安全模式,不带自动故障转移。 此测试的主要目的是了解同步作如何影响数据库性能。 有关详细信息,请参阅 数据库镜像操作模式。
在你确信在没有自动故障转移的情况下,高安全模式能满足业务需求,并且网络错误没有导致故障之前,等待启用自动故障转移。 有关详细信息,请参阅数据库镜像会话期间的角色切换 (SQL Server)。
另请参阅
设置数据库镜像 (SQL Server)
数据库镜像和 AlwaysOn 可用性组的传输安全性(SQL Server)
数据库镜像 (SQL Server)
数据库镜像配置疑难解答 (SQL Server)