mysql1756_MySQL Error_code: 1756
昨天線上發現一個數據庫詭異問題,在這里記錄下問題的發現以及處理的過程。
研發的同事反饋一個數據庫的數據從19:44就沒有更新了(該從庫線上服務不適用,只是線下查詢以及統計數據使用)。但是登錄到從庫查看發現主從同步正常,負責主從同步的兩個進程為yes,主從延遲為0,Slave_SQL_Running_State為Waiting for Slave Workers to free pending events
Waiting for Slave Workers to free pending events
This waiting action occurs when the total size of events being processed by Workers exceeds the size of theslave_pending_jobs_size_max?system variable. The Coordinator resumes scheduling when the size drops below this limit. This state occurs only when?slave_parallel_workers?is set greater than 0.
翻譯如下:
這個等待狀態會在什么時候發生呢?這個狀態只會在
查看錯誤日志信息
2019-09-02T20:45:40.060392+08:00 6 [ERROR] Slave SQL for channel '': ... The slave coordinator and worker threads are stopped, possibly leaving data in inconsistent state. A restart should restore consistency automatically, although using non-transactional storage for data or info tables or DDL queries could lead to problems. In such cases you have to examine your data (see documentation for details). Error_code: 1756
show variables like '%slave_pending_jobs_size_max%'; 默認為16M
show variables like 'max_allowed_packet'; 為512M
解決:
先修改slave_pending_jobs_size_max的大小為128M
停止slave
stop slave; 命令發出后一直在等待
只能用kill -9 殺掉進程;(因為我這個是從庫,停掉后不影響業務,具體情況具體處理)
將slave_pending_jobs_size_max=128M 寫進配置文件。
啟動MySQL后狀態變為show slave status\G
Slave_SQL_Running_State:變為 Waiting for dependent transaction to commit
Relay_Master_Log_File: Master-mysql-bin.001676
Exec_Master_Log_Pos: 798682256 一直沒有改變,說明從庫沒有回放主庫的日志,
總結
以上是生活随笔為你收集整理的mysql1756_MySQL Error_code: 1756的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql合并到区间_合并区间
- 下一篇: mysql安装在opt_一、编译安装第一