暫停與繼續資料庫鏡像 (SQL Server)

適用於:SQL Server

資料庫擁有者隨時都可以先暫停資料庫鏡像工作階段,稍後再繼續。 暫停會保留工作階段狀態,同時暫停鏡像。 發生瓶頸時,暫停可能會對改進主體伺服器的效能有所幫助。

工作階段暫停時,主體資料庫仍然可以使用。 暫停會使鏡像工作階段的狀態設定為 SUSPENDED,鏡像資料庫不再與主體資料庫同步,造成主體資料庫需公開執行。

因為只要資料庫鏡像工作階段維持暫停狀態,就無法截斷交易記錄,所以建議您快速地繼續暫停的工作階段。 因此,如果資料庫鏡像工作階段暫停太久,則會填滿交易記錄,而讓資料庫無法使用。 如需為何發生此狀況的說明,請參閱這個主題後面的「暫停和繼續對記錄截斷的影響」。

重要

在強制服務之後,當原始主體伺服器重新連接時,會暫停鏡像。 在這種情況下繼續執行鏡像,很可能會造成原始主體伺服器上的資料遺失。 如需有關管理潛在資料遺失的詳細資訊,請參閱< Database Mirroring Operating Modes>。

本主題內容:

暫停和繼續對記錄截斷的影響

一般而言,在資料庫上執行自動檢查點時,交易記錄會在下一個記錄備份之後,截斷至該檢查點。 資料庫鏡像工作階段維持暫停狀態時,因為主體伺服器等著將目前的記錄傳送至鏡像伺服器,所以目前所有的記錄都會維持使用中狀態。 在工作階段繼續,且主體伺服器已將記錄傳送至鏡像伺服器之前,未傳送的記錄都會累積在主體資料庫的交易記錄中。

繼續工作階段時,主體伺服器會立即開始將累積的記錄傳送至鏡像伺服器。 鏡像伺服器確認已將與最舊自動檢查點對應的記錄放入佇列之後,主體伺服器會將主體資料庫的記錄檔截斷至該檢查點。 鏡像伺服器會在同一筆記錄截斷重做佇列。 每個後續檢查點都重複這個處理序時,則會依據檢查點並按階段截斷記錄檔。

注意

如需檢查點和記錄截斷的詳細資訊,請參閱資料庫檢查點 (SQL Server)

避免填滿交易記錄

如果記錄已填滿 (因為已達到最大值,或者伺服器執行個體用盡空間),資料庫就不能再執行其他更新。 若要避免此問題,您有兩個替代方法:

  • 在記錄填滿之前,先繼續資料庫的鏡像工作階段,或增加更多記錄空間。 繼續資料庫的鏡像,主體伺服器才能將累積的使用中記錄傳送至鏡像伺服器,並讓鏡像資料庫處於 SYNCHRONIZING 狀態。 然後,鏡像伺服器才可將記錄強化至磁碟,並開始重做它。

  • 透過移除鏡像,停止資料庫鏡像工作階段。

    與暫停工作階段不同的是,移除鏡像會卸除鏡像工作階段的所有相關資訊。 每個夥伴伺服器執行個體,會保留本身的資料庫副本。 如果復原先前的鏡像副本,則可能會與先前的主體副本有所差異,且會落後自工作階段暫停後所經過的時間量。 如需詳細資訊,請參閱移除資料庫鏡像 (SQL Server)

相關工作

若要暫停或繼續資料庫鏡像

若要停止資料庫鏡像

另請參閱

ALTER DATABASE (Transact-SQL)
資料庫鏡像 (SQL Server)
移除資料庫鏡像 (SQL Server)