故障分析 | redis cluster 從庫無法自動恢復同步案例一則
作者:任坤
現居珠海,先後擔任專職 Oracle 和 MySQL DBA,現在主要負責 MySQL、mongoDB 和 Redis 維護工作。
本文來源:原創投稿
背景
線上有一套6節點 redis cluster ,6分片 * 2副本,每個節點上2個例項,埠號分別為7000和7001。
診斷
登入該節點,檢視 redis 的日誌
22996:S 20 Jan 2023 07:27:15.091 * Connecting to MASTER x.x.x.46:7001
22996:S 20 Jan 2023 07:27:15.091 * MASTER <‐> REPLICA sync started
22996:S 20 Jan 2023 07:27:15.106 * Non blocking connect for SYNC fired the event.
22996:S 20 Jan 2023 07:27:15.106 * Master replied to PING, replication can continue...
22996:S 20 Jan 2023 07:27:15.106 * Trying a partial resynchronization (request 174e5c92c731090d3c9a05f6364ffff5a70e61d9:7180528579709).
22996:S 20 Jan 2023 07:35:29.263 * Full resync from master: 174e5c92c731090d3c9a05f6364ffff5a70e61d9:7180734380451
22996:S 20 Jan 2023 07:35:29.263 * Discarding previously cached master state.
22996:S 20 Jan 2023 07:44:47.717 * MASTER <‐> REPLICA sync: receiving 22930214160 bytes from master
例項啟動後和主庫進行連線,先嚐試 partial resync 失敗,後進行 full resync
22996:S 20 Jan 2023 07:48:07.305 * MASTER <‐> REPLICA sync: Flushing old data
22996:S 20 Jan 2023 07:53:24.576 * MASTER <‐> REPLICA sync: Loading DB in memory
22996:S 20 Jan 2023 07:59:59.491 * MASTER <‐> REPLICA sync: Finished with success
耗時11分鐘完成舊資料清理和新 rdb 載入,此時卻發現和主庫的連線中斷
22996:S 20 Jan 2023 07:59:59.521 # Connection with master lost.
22996:S 20 Jan 2023 07:59:59.521 * Caching the disconnected master state.
於是乎又發起和主庫的連線
22996:S 20 Jan 2023 08:00:00.404 * Connecting to MASTER x.x.x.46:7001
22996:S 20 Jan 2023 08:00:00.404 * MASTER <‐> REPLICA sync started
22996:S 20 Jan 2023 08:00:00.405 * Non blocking connect for SYNC fired the event.
22996:S 20 Jan 2023 08:00:00.406 * Master replied to PING, replication can continue...
22996:S 20 Jan 2023 08:00:00.408 * Trying a partial resynchronization (request 174e5c92c731090d3c9a05f6364ffff5a70e61d9:7180736029100).
22996:S 20 Jan 2023 08:08:21.849 * Full resync from master: 174e5c92c731090d3c9a05f6364ffff5a70e61d9:7180922115631
有2個疑問:
檢視主庫日誌,每9分鐘發起1次 bgsave ,每次 bgsave 期間新產生的記憶體有2600M之多,repl-backlog-size 預設只有100M,而從庫節點從當機到完成啟動耗時大約15分鐘,此時緩衝區中的複製位點早被覆蓋,難怪 partial resync 會失敗。
38241:C 20 Jan 2023 07:35:25.836 * DB saved on disk
38241:C 20 Jan 2023 07:35:26.552 * RDB: 2663 MB of memory used by copy‐on‐write
40362:M 20 Jan 2023 07:35:27.950 * Background saving terminated with success
40362:M 20 Jan 2023 07:35:27.950 * Starting BGSAVE for SYNC with target:disk
40362:M 20 Jan 2023 07:35:29.263 * Background saving started by pid 11680
11680:C 20 Jan 2023 07:44:44.585 * DB saved on disk
11680:C 20 Jan 2023 07:44:45.811 * RDB: 2681 MB of memory used by copy‐on‐write
繼續看日誌,
40362:M 20 Jan 2023 07:48:03.104 * Synchronization with replica x.x.x.45:7000 succeeded
40362:M 20 Jan 2023 07:48:17.100 * FAIL message received from 8e2a54fbaac768a5cc0e717f4aa93c6be8683ffe about ccb7589e3240bc95557ffb282435afd5dc13e4c9
40362:M 20 Jan 2023 07:50:17.109 # Disconnecting timedout replica:x.x.x.45:7000
40362:M 20 Jan 2023 07:50:17.109 # Connection with replica x.x.x.45:7000 lost.
40362:M 20 Jan 2023 07:53:26.114 * Clear FAIL state for node ccb7589e3240bc95557ffb282435afd5dc13e4c9: replica is reachable again.
40362:M 20 Jan 2023 08:00:00.408 * Replica x.x.x.45:7000 asks for sync hronization
解決方案
本文關鍵字:#repl-timeout# #連線超時#
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70024924/viewspace-2935742/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- redis cluster 叢集故障恢復操作思路Redis
- 故障分析 | MySQL 異地從庫複製延遲案例一則MySql
- 【資料庫資料恢復】無法啟動MongoDB服務的資料恢復案例資料庫資料恢復MongoDB
- 資料庫資料恢復——Windows無法啟動MongoDB服務的資料恢復案例資料庫資料恢復WindowsMongoDB
- 故障分析 | MySQL 從機故障重啟後主從同步報錯案例分析MySql主從同步
- 記一次自動恢復的支付故障
- 【資料庫資料恢復】突然斷電造成Syabse資料庫無法啟動的資料恢復案例資料庫資料恢復
- 【資料庫資料恢復】SqlServer資料庫無法讀取的資料恢復案例資料庫資料恢復SQLServer
- redis cluster 故障後,主從位於不同節點的修復。Redis
- 【伺服器資料恢復】VSAN故障導致虛擬機器無法訪問的資料恢復案例伺服器資料恢復虛擬機
- 【資料庫資料恢復】Oracle ASM例項無法掛載的資料恢復案例資料庫資料恢復OracleASM
- mysql GTID主從複製故障後不停機恢復同步流程MySql
- 【伺服器資料恢復】同友儲存無法啟動的資料恢復案例伺服器資料恢復
- MySQL資料庫故障恢復MySql資料庫
- PostgreSQL 恢復大法 - 恢復部分資料庫、跳過壞塊、修復無法啟動的資料庫SQL資料庫
- 【伺服器資料恢復】RAID故障導致資料庫分割槽無法識別的資料恢復伺服器資料恢復AI資料庫
- 【儲存資料恢復案例】儲存斷電後無法成功重啟,虛擬機器無法啟動-資料恢復資料恢復虛擬機
- 伺服器資料恢復—nas儲存硬碟出現故障離線導致無法訪問的資料恢復案例伺服器資料恢復硬碟
- 【北亞資料恢復】非物理故障導致的伺服器藍屏且無法重啟的資料恢復案例資料恢復伺服器
- 【伺服器資料恢復】nas儲存伺服器硬碟故障離線導致無法訪問的資料恢復案例伺服器資料恢復硬碟
- Oracle無法自動排程DBMS_JOB&DBMS_SCHEDULER案例分析Oracle
- 【Redis】Redis Cluster-叢集故障轉移Redis
- 故障分析 | ClickHouse 叢集分散式 DDL 被阻塞案例一則分散式
- 【伺服器資料恢復】RAID5無法識別的資料恢復案例伺服器資料恢復AI
- 【伺服器資料恢復】Raid陣列更換故障硬碟後資料同步失敗的資料恢復案例伺服器資料恢復AI陣列硬碟
- 【伺服器資料恢復案例解讀】伺服器突然崩潰,重啟後無法進入系統故障的資料恢復伺服器資料恢復
- redis cluster 故障後,主從位於相同節點的修復(丟失了部分資料)Redis
- 【伺服器資料恢復】資料庫所在raid陣列硬碟故障掉線的資料恢復案例伺服器資料恢復資料庫AI陣列硬碟
- 【資料庫資料恢復】SAP資料庫資料恢復案例資料庫資料恢復
- 資料庫資料恢復—無備份,binlog未開啟的Mysql資料庫資料恢復案例資料庫資料恢復MySql
- 【北亞資料恢復】Hp DL380伺服器raid磁碟故障的資料庫資料恢復案例資料恢復伺服器AI資料庫
- 【北亞資料恢復】IBM DS系列儲存伺服器熱備盤同步資料故障導致卷無法掛載的資料恢復資料恢復IBM伺服器
- 【伺服器資料恢復】infortrend儲存資料無法訪問的資料恢復案例伺服器資料恢復
- 【儲存資料恢復】EqualLogic PS系列儲存磁碟故障的資料恢復案例資料恢復
- 資料庫資料恢復-oracle資料庫報錯無法開啟的如何恢復資料?資料庫資料恢復Oracle
- 【資料庫資料恢復】Sql Server資料庫資料恢復案例資料庫資料恢復SQLServer
- 故障分析 | Redis 主從複製風暴Redis
- win10自動修復無法修復你的電腦 華碩win10自動修復無法開機Win10