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

Sql server 2012 多次备份后的sql server 2012镜像设置,sql-server-2012,database-backups,database-restore,database-mirroring,Sql Server 2012,Database Backups,Database Restore,Database Mirroring,在sql server 2012中设置镜像数据库期间,我意外地对原始数据库进行了2次备份 在镜像服务器上还原数据库后,数据库未同步 为了解决这个问题,我将恢复模式从“完全”更改为“简单”,然后再次更改为“完全”。然后再次备份数据库。在镜像服务器上还原时,请执行镜像过程 我的问题是,如果我对原始数据库进行了多个完整备份,为什么同步会失败?这是因为日志链,镜像有点像将事务日志备份恢复到另一台服务器,但为了自动工作,您需要一个从完整备份到最后一次t-log备份的完整日志链,因此,日志链将如下所示(具有

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

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

为了解决这个问题,我将恢复模式从“完全”更改为“简单”,然后再次更改为“完全”。然后再次备份数据库。在镜像服务器上还原时,请执行镜像过程


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

这是因为日志链,镜像有点像将事务日志备份恢复到另一台服务器,但为了自动工作,您需要一个从完整备份到最后一次t-log备份的完整日志链,因此,日志链将如下所示(具有良好的顺序LSN):

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

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

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


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

谢谢。你能解释一下为什么镜像需要额外的日志备份吗?sql server不能只使用原始备份并从主数据库恢复丢失的信息吗?这是因为它通过将事务重放到镜像数据库中来工作,而不仅仅是从主数据库中获取现在的数据。