openGauss-非同步備升主資料找回能力

MySQL成长之路發表於2024-08-30

openGauss- 非同步備升主資料找回能力

可獲得性

本特性自openGauss 6.0.0-RC1版本開始引入。

特性簡介

主機發生異常後,如果僅有非同步備可以升主,舊主可能存在已提交的事務未同步到備機,該功能旨在找回這部分資料,透過邏輯解碼的方式提供給使用者,再由使用者自行處理。

客戶價值

當部署方式是多中心,且只有主中心的備機是同步備,而異地部署的備機都是採用非同步同步的方式,如果發生城市級故障,主機和同步備均不可用,則需要將非同步備升主。這種場景下,舊主可能存在已提交的事務還未同步到非同步備。該功能旨在找回這部分資料,實現系統RPO接近為零。

特性描述

該特性透過工具gs_retrieve實現,實際使用上需要指定新舊主的IP、埠、連線使用者名稱和密碼等,在舊主恢復之後,將未同步的資料透過邏輯解碼的方式找回。

gs_retrieve整體流程是透過解析xlog獲取所有待解碼的事務,獲取建立邏輯複製槽所需的restart_lsn和confirmed_flush,以便構建一致性快照,從而呼叫內建函式來建立邏輯複製槽和解碼,最終返回解碼資料。

特性增強

無。

特性約束

  • gs_retrieve工具僅支援在舊主所在機器上使用,新主可在不同機器。

  • 舊主恢復之後建議將autovacuum設定為off,防止後設資料的歷史版本被回收清理。

  • 解碼範圍記憶體在DDL的情況下,可能由於後設資料的歷史版本被清理而無法正常解碼。透過force方式解碼,可能會丟失資料。

  • 當舊主xlog堆積過多,導致還沒同步到非同步備的日誌被回收時,可能無法獲取完整的資料。

  • 在gs_retrieve工具執行過程中,如果舊主執行相關IUD業務,同樣會被解碼出來。

依賴關係

依賴邏輯解碼特性。

詳情檢視:https://opengauss.org

詳情檢視:https://docs-opengauss.osinfra.cn

相關文章