主備復制類問題
更新時間 2025-02-05 09:37:34
最近更新時間: 2025-02-05 09:37:34
分享文章
本頁介紹天翼云TeleDB數據庫主備復制類問題。
xlog(WAL)日志被清理問題
問題描述
在添加備節點、重做備機,或在日常運行中,可能遇到備節點報錯
FATAL,XX000,"could not receive data from WAL stream: ERROR: requested WAL
segment000000010000000600000054 has already been removed
可能影響
- 添加備節點失敗;
- 重做備機失敗;
- 主備復制不同步,導致備機不可用;
解決步驟
通常出現在WAL日志文件增長較快,且DN節點數據量較大,添加備機或重做備機需要較長時間的場景,針對此場景,可以有以下應對策略:
- DN節點數據量較大,應控制好單節點DN數據量,大小建議不超過5-10T,同時要確保有較好的磁盤性能,整體添加備節點、重做備機時間控制在1-2小時內存完成;
a、如果單DN容量超過了建值,則應該通過橫向擴容方式,將DN數據分布到更多服務器;
b、如果因磁盤性能不足,導致整個任務時間過長,則建議節點在橫向擴容的基礎上,優化磁盤I/O,或更換性能更好的磁盤;
- 選擇在業務低峰期添加備節點、重做備機,此時產生的WAL日志速度較慢,可以保證主節點默認保留的WAL日志文件在任務完成前不被清理;
- 調大參數wal_keep_segments,該參數用于指定pg_wal目錄中保存的過去的WAL日志文件的最小數量,避免因主節點保留文件數量不夠,導致在添加備節點、重做備機任務執行期間被自動清理;默認WAL日志文件大小為16MB,需要提前預估日志文件占用空間,避免磁盤空間不足問題。
- 主備節點不同步,延遲過大也可能導致主節點日志在同步到備機前被清理
a、可能是備節點服務器性能較差,主節點業務高峰期時,備節點WAL日志接收延遲
解決辦法:應確保主備節點服務器配置一致,避免因配置不對等導致的性能問題,以及可能出現的發生主備切換后,新的主節點性能不足,影響業務的問題;
b、可能是網絡異常或主節點上有大事務,生成大量WAL日志,導致同步延遲
解決辦法:應該確保網絡穩定;避免大事務,應拆分成多個小事務執行。