多次备份后的sql server 2012镜像设置



在sql server 2012中设置镜像数据库时,我意外地对原始数据库进行了2次备份。

在镜像服务器上还原数据库后,数据库没有同步。

为了解决这个问题,我将恢复模式从"full"更改为"simple",然后再次更改为"full(完全)"。然后再次备份数据库。在镜像服务器上恢复时,执行镜像过程。

我的问题是,如果我对原始数据库进行多个完整备份,为什么同步会失败?

由于日志链的原因,镜像有点像将事务日志备份恢复到另一台服务器,但要使其自动工作,您需要从完整备份到最后一次t-log备份的完整日志链,因此日志链看起来是这样的(具有良好的顺序LSN):

Full-1->LogA->LogB->LogC->Full-2->LogD->LogE->LogF等…

因此,在上面的示例中,如果恢复了Full-1备份,则可以恢复日志备份A、B、C,但不能恢复D、E、F。只有恢复Full-2时,才能恢复这些。

在镜像中,您对数据库进行完整备份,然后对其进行还原,SQL server然后查看日志序列号(LSN)并传输还原的镜像数据库中不存在的事务,如果您进行另一次完整备份,则会破坏顺序LSN链。

在您的情况下,就像您恢复了Full-1,然后尝试将日志D、E、F应用于它一样,序列号中有一个缺口。如果您刚刚将第二次意外备份重新恢复到镜像服务器,然后开始镜像,那么它应该对您有效。通过更改恢复模型,您可以完全重置日志链,并且必须重新启动。

相关内容

最新更新