我在两台服务器上使用 SQL 服务器设置了数据库镜像。我在主服务器上有企业版,在辅助服务器上有标准版。
为了验证辅助服务器上的数据,我手动破坏了镜像,以便检查镜像上的数据。现在在验证过程之后,我想再次启用镜像。
数据库大于 200 GB,由于两个节点之间的距离较远,以及网络配置,因此无法备份主服务器,通过网络发送,然后在辅助服务器上恢复。
有哪些可用选项可以让我重新启动镜像?
我在两台服务器上使用 SQL 服务器设置了数据库镜像。我在主服务器上有企业版,在辅助服务器上有标准版。
为了验证辅助服务器上的数据,我手动破坏了镜像,以便检查镜像上的数据。现在在验证过程之后,我想再次启用镜像。
数据库大于 200 GB,由于两个节点之间的距离较远,以及网络配置,因此无法备份主服务器,通过网络发送,然后在辅助服务器上恢复。
有哪些可用选项可以让我重新启动镜像?
一旦破坏了数据库镜像,除了使用主体的完整备份和事务日志备份重新初始化它之外,您别无选择。
您必须采取的步骤是:
在确保主体数据库在进行备份时已使用完整恢复模式之后,还原主体数据库的最近完整数据库备份。镜像数据库必须与主体数据库同名。
如果您在恢复完整备份后对数据库进行了任何差异备份,请恢复您最近的差异备份。
恢复自完整或差异数据库备份以来完成的所有日志备份。
备份主体数据库后,尽快完成剩余的设置步骤。在开始对伙伴进行镜像之前,您应该在原始数据库上创建当前日志备份并将其还原到未来的镜像数据库。
首先在辅助服务器上建立镜像会话
ALTER DATABASE <database_name> SET PARTNER =<server_network_address>
,然后在主体服务器上建立。我建议您使用 SQL Server 中的本机备份压缩功能来压缩数据库和日志备份(可能随后使用 7-Zip 压缩它们);然后使用您能找到的最快的隔夜运送方式运送文件。让辅助位置的人员将这些文件放到辅助服务器上的双方同意的位置,您随后可以使用
WITH NORECOVERY
.可能最重要的一条建议是了解没有必要在辅助端验证数据,因为 SQL Server 在辅助端提交数据的方式与在主端提交数据的方式相同;也就是说,它使用符合 ACID 的方法。因此,您可以放心,辅助服务器上的数据是主服务器上数据的精确副本。确认辅助副本是功能副本的最佳方法是故障转移镜像会话,以便辅助副本成为主副本。您可以在维护窗口期间执行此操作,测试人员随时准备好验证系统是否按预期工作。显然,您将在第一次故障转移之前进行一整套备份,以防万一事情没有按预期工作。
据我所知,镜像数据库需要进行完整备份,然后还原事务日志备份(使用 norecovery)才能初始化镜像。
我会将数据库的完整备份剥离成多个文件,然后通过网络传输。如果您使用的是 2008 及更高版本,请使用压缩以使备份文件尽可能小。如果您使用的是 2005,那么有很多第三方工具可以对备份进行条带化和压缩。上网看看。
最后的手段是备份到外部驱动器,然后将该驱动器物理地带到另一个数据中心并插入辅助服务器(但这对您来说可能是不可能的)。