镜像数据库的数据库快照会影响主数据库的性能吗?

镜像数据库的数据库快照会影响主数据库的性能吗?

我有 2 台服务器设置为高安全性镜像。一台为主服务器,另一台为镜像服务器。目前,我在主服务器上创建了 2 个生产数据库快照(大小为 100 GB)(用于大量选择过程的 no_lock 目的),并在镜像服务器上为同一数据库创建了 2 个快照,用于报告目的。

我知道快照会降低源数据库的性能,但我不确定镜像服务器的快照是否会对主服务器的性能产生任何影响。

谢谢,

答案1

快照不会直接影响镜像会话。为了允许主体继续运行,镜像必须硬化日志,而不是提交。这只是意味着必须将从主体接收到的日志写入并持久保存到日志文件中。

恢复过程会不断将日志应用到镜像,当将日志中的更改应用到数据时,镜像必须处理维护快照所需的写时复制。此过程可能落后于主体,但不需要达到当前主体 LSN 位置。

话虽如此,维护快照确实会产生 IO、内存和 CPU 开销,这将反映在镜像托管实例的整体性能中。快照还将支持额外的查询工作负载。因此,显然,从这个意义上讲,拥有快照会导致镜像开销,从而将资源从跟上主体(接收、处理和强化日志)的任务中转移出来。但快照不会产生直接的开销。主体不必等待快照所需的写时复制发生。

答案2

我的猜测是肯定的,但除非我亲自测试,否则我无法确定。鲍尔看起来它与我的观点相同,但是措辞比较模糊!

镜像上任何发生更改的页面都需要先复制到快照文件中。不确定这个过程有多优化,以及创建第二个快照时性能会下降多少。

来自BOL:

根据镜像服务器和主体服务器的配置,镜像数据库上有过多的数据库快照可能 降低主数据库的性能。

相关内容