在sql server 2012中設置鏡像數據庫時,我不小心做了2個原始數據庫的備份。sql server 2012鏡像設置多次備份後
恢復鏡像服務器上的數據庫後,數據庫未同步。
爲了解決這個問題,我將恢復模型從'full'改爲'simple'並且再次回到'full'。然後再次備份數據庫。當在鏡像服務器上恢復鏡像過程時。
我的問題是爲什麼同步失敗,如果我採取多個原始數據庫的完整備份?
在sql server 2012中設置鏡像數據庫時,我不小心做了2個原始數據庫的備份。sql server 2012鏡像設置多次備份後
恢復鏡像服務器上的數據庫後,數據庫未同步。
爲了解決這個問題,我將恢復模型從'full'改爲'simple'並且再次回到'full'。然後再次備份數據庫。當在鏡像服務器上恢復鏡像過程時。
我的問題是爲什麼同步失敗,如果我採取多個原始數據庫的完整備份?
由於日誌鏈的原因,鏡像有點像將事務日誌備份恢復到另一臺服務器,但自動運行,爲了使其工作,需要從完整備份到最後一次t日誌備份的完整日誌鏈,所以日誌鏈將如下所示(具有很好的順序LSN):
Full-1-> LogA-> LogB-> LogC-> Full-2-> LogD-> LogE-> LogF等...
因此,在上面的示例中,如果恢復了Full-1備份,則可以恢復日誌備份A,B,C但不恢復D,E,F。如果恢復Full-2,則只能恢復這些設置。
在鏡像中,您對數據庫執行完全備份並將其恢復,然後SQL服務器查看日誌序列號(LSN)並傳輸在恢復的鏡像數據庫中不存在的事務,完全備份,你打破了連續的LSN鏈。
就你而言,它就像你恢復了Full-1,然後試圖將日誌D,E,F應用於它,序列號中有一個空白。如果你剛剛重新恢復了第二次意外備份到鏡像服務器,然後開始鏡像,它應該適用於你。通過更改恢復模式,您可以完全重置日誌鏈並重新啓動。
謝謝。 你能向我解釋爲什麼鏡像需要額外的日誌備份?不能sql服務器只使用原始備份和恢復從主數據庫中缺少的信息? – user2542655
這是因爲它通過將事務重放到鏡像數據庫中工作,而不是像現在從主DB那樣獲取數據。 – steoleary