Sunil Nepali Asked: 2014-09-12 05:15:09 +0800 CST2014-09-12 05:15:09 +0800 CST 2014-09-12 05:15:09 +0800 CST SQL Server 标准版中的镜像 772 我在 SQL Server 标准版中设置了数据库的镜像。 在此之后,我尝试查看数据是否已同步。 我无法通过拍摄数据库快照来检查数据,因为 SQL Server 标准版中没有数据库快照。 是否有任何替代解决方案可用于验证数据是否同步? sql-server 2 个回答 Voted Best Answer Hannah Vernon 2014-09-12T05:23:07+08:002014-09-12T05:23:07+08:00 检查以下系统视图: SELECT * FROM master.sys.database_mirroring; 那里有大量关于镜像数据库状态的信息。 如果该列mirroring_state_desc包含“SYNCHRONIZED”,那么它确实是同步的。 这SYNCHRONIZED表明来自 master 的所有未完成的事务都已成功提交到镜像数据库中。 如果它显示状态,SYNCHRONIZING则镜像在某种程度上“落后于”主体。 您还可以使用 Database Mirroring Monitor 应用程序来监控镜像数据库的状态。 Shanky 2014-09-12T05:51:21+08:002014-09-12T05:51:21+08:00 如果您在标准版上运行,则没有太多办法,您必须相信镜像正在完成它的任务。在这种情况下,您必须使用 GUI 监控 SEND 队列和 REDO 队列,而不用担心是否在镜像上发送数据或是否反映更改。 SEND 队列的大小显示在主体服务器上已生成多少事务日志,但尚未发送到镜像服务器。如果不为零,则表示镜像状态未同步。此外,SEND 队列的大小表示在主体数据库遭受灾难时将发生的数据丢失量。 如果您发现 REDO 队列大小在增长,这意味着镜像服务器无法跟上从主体服务器发送的日志量。可能是镜像服务器上存在额外的工作负载,导致镜像数据库日志无法尽快重播。也可能是镜像服务器上的物理硬件不如主体服务器上的功能强大。 REDO 队列大小显示镜像数据库中存在多少尚未在镜像数据库上重放的事务日志。 这两个将帮助您了解principal落后于镜像服务器多少。读这个 或者,您可以将主体故障转移到镜像,但在故障转移之前确保该镜像与主体完全同步以避免任何数据丢失。(如果可能或当您有维护窗口时)检查镜像服务器的状态。IMO 故障转移是确定和证明更改实际得到反映的最佳方法,如果您需要使用屏幕截图显示某些审计目的。
检查以下系统视图:
那里有大量关于镜像数据库状态的信息。
如果该列
mirroring_state_desc
包含“SYNCHRONIZED”,那么它确实是同步的。这
SYNCHRONIZED
表明来自 master 的所有未完成的事务都已成功提交到镜像数据库中。如果它显示状态,
SYNCHRONIZING
则镜像在某种程度上“落后于”主体。您还可以使用 Database Mirroring Monitor 应用程序来监控镜像数据库的状态。
如果您在标准版上运行,则没有太多办法,您必须相信镜像正在完成它的任务。在这种情况下,您必须使用 GUI 监控 SEND 队列和 REDO 队列,而不用担心是否在镜像上发送数据或是否反映更改。
SEND 队列的大小显示在主体服务器上已生成多少事务日志,但尚未发送到镜像服务器。如果不为零,则表示镜像状态未同步。此外,SEND 队列的大小表示在主体数据库遭受灾难时将发生的数据丢失量。
如果您发现 REDO 队列大小在增长,这意味着镜像服务器无法跟上从主体服务器发送的日志量。可能是镜像服务器上存在额外的工作负载,导致镜像数据库日志无法尽快重播。也可能是镜像服务器上的物理硬件不如主体服务器上的功能强大。
REDO 队列大小显示镜像数据库中存在多少尚未在镜像数据库上重放的事务日志。
这两个将帮助您了解principal落后于镜像服务器多少。读这个
或者,您可以将主体故障转移到镜像,但在故障转移之前确保该镜像与主体完全同步以避免任何数据丢失。(如果可能或当您有维护窗口时)检查镜像服务器的状态。IMO 故障转移是确定和证明更改实际得到反映的最佳方法,如果您需要使用屏幕截图显示某些审计目的。