文件首頁
MySQL 9.0 參考手冊
相關文件 下載本手冊
PDF (美式信紙) - 40.0Mb
PDF (A4) - 40.1Mb
Man Pages (TGZ) - 258.2Kb
Man Pages (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 9.0 參考手冊  /  ...  /  遠端複製操作失敗處理

7.6.7.9 遠端複製操作失敗處理

本節說明複製操作在不同階段的失敗處理。

  1. 會檢查先決條件 (請參閱 遠端複製先決條件)。

    • 如果在先決條件檢查期間發生失敗,CLONE INSTANCE 操作會回報錯誤。

  2. 只有在 clone_block_ddl 變數設為 ON 時,才會封鎖捐贈者上的並行 DDL (預設設定為 OFF)。請參閱第 7.6.7.4 節,「複製與並行 DDL」

    如果複製操作無法在 clone_ddl_timeout 變數指定的時間限制內取得 DDL 鎖定,則會回報錯誤。

  3. 在將資料複製到接收者資料目錄之前,會移除接收者上的使用者建立的資料 (結構描述、表格、表格空間) 和二進位日誌。

    當遠端複製操作期間從接收者資料目錄移除使用者建立的資料和二進位日誌時,不會儲存資料,如果發生失敗,則可能會遺失資料。如果資料很重要,則應在啟動遠端複製操作之前進行備份。

    為了提供資訊,會將警告列印至伺服器錯誤日誌,以指定資料移除何時開始和結束。

    [Warning] [MY-013453] [InnoDB] Clone removing all user data for provisioning:
    Started...
    
    [Warning] [MY-013453] [InnoDB] Clone removing all user data for provisioning:
    Finished

    如果在移除資料時發生失敗,接收者可能會保留在複製操作之前存在的部分結構描述、表格和表格空間。在複製操作執行期間或失敗之後的任何時間,伺服器始終處於一致狀態。

  4. 會從捐贈者複製資料。使用者建立的資料、字典中繼資料和其他系統資料都會複製。

    如果在複製資料時發生失敗,則會復原複製操作並移除所有複製的資料。在此階段,先前存在的接收者上的使用者建立的資料和二進位日誌也已移除。

    如果發生這種情況,您可以修正失敗的原因並重新執行複製操作,或者放棄複製操作並從複製操作之前進行的備份還原接收者資料。

  5. 伺服器會自動重新啟動 (適用於不複製到具名目錄的遠端複製操作)。在啟動期間,會執行典型的伺服器啟動工作。

    如果自動伺服器重新啟動失敗,您可以手動重新啟動伺服器以完成複製操作。

如果複製操作期間發生網路錯誤,如果在捐贈者執行個體上定義的 clone_donor_timeout_after_network_failure 變數指定的時間內解決錯誤,則操作會繼續。clone_donor_timeout_after_network_failure 預設設定為 5 分鐘,但支援 0 到 30 分鐘的範圍。如果操作未在分配的時間內繼續,則會中止並傳回錯誤,而捐贈者會捨棄快照。如果設定為零,則會在發生網路錯誤時立即導致捐贈者捨棄快照。設定較長的逾時時間可允許更多時間解決網路問題,但也會增加捐贈者執行個體上的差異大小,這會增加複製復原時間,以及在複製預期作為複本或複寫群組成員的情況下造成複寫延遲。

Clone 閒置逾時時間設為預設的 wait_timeout 設定,即 28800 秒 (8 小時)。