中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

【Redis】slaveof 報錯 Background transfer error

發布時間:2020-08-16 16:19:19 來源:ITPUB博客 閱讀:195 作者:神諭丶 欄目:關系型數據庫
在slave上執行slaveof到master上,遲遲未成功。
檢查master的redis進程日志輸出如下:

  1. 427:S 03 May 20:32:07.320 * Slave 10.9.95.71:6379 asks for synchronization
  2. 427:S 03 May 20:32:07.320 * Unable to partial resync with slave $slaveip:6379 for lack of backlog (Slave request was: 5974421660).
  3. 427:S 03 May 20:32:07.320 * Delay next BGSAVE for SYNC
  4. 427:S 03 May 20:32:13.350 * Starting BGSAVE for SYNC with target: slaves sockets
  5. 427:S 03 May 20:32:14.333 * Background RDB transfer started by pid 478
  6. 427:S 03 May 20:35:04.136 # Connection with slave $slaveip lost.
  7. 427:S 03 May 20:35:04.912 # Background transfer error

手動通過stat檢查了一下rdb文件,確認bgsave成功。
報錯也顯示為transfer error,大致判定為rdb文件在transfer到slave的時候報錯。
 
google了一下發現應該是client-output-buffer-limit設置過小。
 
〇 client-output-buffer-limit 
在文檔中指出,該參數用于限制client緩沖區的限制。
redis的client被分為三種類型:normal、slave、pubsub。
normal:正常的客戶端并包括MONITOR客戶端
slave:slave客戶端
pubsub:pub/sub客戶端
 
其設置方式為:
client-output-buffer-limit [class] [hard limit] [soft limit] [soft seconds]
[class]為client的類型。
[hard limit]硬限制,即超過[hard limit]值的緩沖區客戶端會被強制中斷。
[soft limit] [soft seconds]為軟限制,即持續[soft seconds]時間內,超過[soft limit]的緩沖區客戶端會被強制中斷。
 
當然,默認情況下普通client不受限制(設置為0),因為如果以推送的方式(不詢問),在請求之后才接收到數據,那么只有異步客戶端可能會創建一個請求數據的速度超過其讀取速度的情況。

而slave和pubsub client有一個默認限制,因為他們以推送的方式接收數據。

此處將slave的hard limit設置為32G。
 
config set client-output-buffer-limit "normal 0 0 0 slave 34359738368 268435456 600 pubsub 33554432 8388608 60" 

重新slaveof后,觀察info replication和主庫redis進程日志,創建復制成功:

  1. 427:S 03 May 21:41:16.962 * Slave $slaveip:6379 asks for synchronization
  2. 427:S 03 May 21:41:16.984 * Full resync requested by slave $slaveip:6379
  3. 427:S 03 May 21:41:16.984 * Delay next BGSAVE for SYNC
  4. 427:S 03 May 21:41:22.712 * Starting BGSAVE for SYNC with target: slaves sockets
  5. 427:S 03 May 21:41:23.679 * Background RDB transfer started by pid 568
  6. 568:C 03 May 21:51:14.107 * RDB: xxxxx MB of memory used by copy-on-write
  7. 427:S 03 May 21:51:15.012 * Background RDB transfer terminated with success
  8. 427:S 03 May 21:51:15.012 # Slave $slaveip:6379 correctly received the streamed RDB file.
  9. 427:S 03 May 21:51:15.012 * Streamed RDB transfer with slave $slaveip:6379 succeeded (socket). Waiting for REPLCONF ACK from slave to enable streaming

復制建立好后,將client-output-buffer-limit改為默認值。



作者微信公眾號:
【Redis】slaveof 報錯 Background transfer error




向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

罗平县| 牡丹江市| 安新县| 北川| 铁岭市| 卢湾区| 泗洪县| 大丰市| 丰县| 黎城县| 新闻| 保靖县| 抚州市| 房山区| 蚌埠市| 安吉县| 贵南县| 上杭县| 卢氏县| 集安市| 马关县| 冀州市| 秭归县| 惠东县| 保亭| 顺义区| 齐齐哈尔市| 沈丘县| 静宁县| 蒙山县| 三原县| 怀集县| 渑池县| 法库县| 清原| 县级市| 永川市| 青阳县| 镇安县| 响水县| 丹江口市|