鏡像狀態 (SQL Server)

適用於:SQL Server

在資料庫鏡像工作階段期間,鏡像資料庫一定會處於特定狀態 (「鏡像狀態」)。 資料庫的狀態會反映通訊狀態、資料流程,以及夥伴之間的資料差異。 資料庫鏡像工作階段會與主體資料庫採用相同的狀態。

在資料庫鏡像工作階段內,伺服器執行個體會彼此監視。 夥伴會使用鏡像狀態來監視資料庫。 除了 PENDING_FAILOVER 狀態之外,主體資料庫和鏡像資料庫永遠處於相同的狀態。 若為工作階段設定見證,則每部夥伴伺服器都會利用其連接狀態 (CONNECTED 或 DISCONNECTED) 來監視見證。

可能的資料庫鏡像狀態如下:

鏡像狀態 描述
SYNCHRONIZING 鏡像資料庫的內容落後於主體資料庫的內容。 主體伺服器將記錄檔記錄傳送至鏡像伺服器,將所做的變更套用到鏡像資料庫來向前復原。

在資料庫鏡像工作階段開始時,資料庫處於 SYNCHRONIZING 狀態。 主體伺服器正為資料庫提供服務,而鏡像伺服器則試圖趕上。
SYNCHRONIZED 當鏡像伺服器足以追趕上主體伺服器時,鏡像狀態就會變更為 SYNCHRONIZED。 只要主體伺服器繼續傳送變更到鏡像伺服器,而鏡像伺服器也繼續將變更套用到鏡像資料庫,資料庫便會保持在這種狀態。

如果交易安全性設定為 FULL,SYNCHRONIZED 狀態將可同時支援自動容錯移轉和手動容錯移轉,而且容錯移轉之後不會遺失任何資料。

如果關閉交易安全性,永遠都有可能遺失部分資料,即使是在 SYNCHRONIZED 狀態也是如此。

在 SQL Server Management Studio 中,資料庫的狀態會顯示為「還原中」。 如需實際狀態,請在 sys.database_mirroring 中查詢 mirroring_state_desc 資料行
SUSPENDED 無法使用資料庫的鏡像副本。 主體資料庫執行時並沒有傳送任何記錄檔到鏡像伺服器,這種狀況稱為「執行公開」。 這是容錯移轉之後的狀態。

工作階段也會因為重做錯誤或管理員暫停工作階段而變成 SUSPENDED。

SUSPENDED 是夥伴關機和啟動時仍然有效的永續性狀態。
PENDING_FAILOVER 唯有開始進行容錯移轉之後但伺服器尚未轉換為鏡像角色之前,主體伺服器上才會出現此狀態。

起始容錯移轉時,主體資料庫便會進入 PENDING_FAILOVER 狀態,迅速終止任何使用者連接,然後馬上接替鏡像角色。
DISCONNECTED 夥伴已經與其他夥伴失去通訊。

另請參閱

監視資料庫鏡像 (SQL Server)