mysql,出現同步停止的錯誤的處理
因 'Duplicate entry' 或 非正常關閉mysql, 出現同步停止的錯誤時,可執行下列命令跳過錯誤log,從錯誤log下一條繼續同步:
mysql> SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
mysql> slave start;
非正常關閉mysql而導致的錯誤log 應該不會太多(有次我手動恢復了8條左右)
'Duplicate entry' 就要視情況而定了,如果錯誤log 很多,只能透過停mysql,加 --slave-skip-errors=1062 後重啟
如果一個語句在master上成功了,但是在slave上卻失敗了,並且這時不能做一次完整的資料庫再同步(也就是刪除slave上的資料,重新複製master的快照),那麼試一下:
- 判斷slave的資料表是否和master的不一樣。試著找到怎麼會發生這種情況,然後將slave的表同步成和master一樣之後執行
START SLAVE
。 - 如果上述步驟不生效或者沒有執行,試著這個語句是否能被手工安全地執行(如果有必要),然後忽略master的下一個語句。
- 如果決定要忽略master的下一個語句,只需在slave上提交以下語句:
mysql> SET GLOBAL SQL_SLAVE_SKIP_COUNTER = n;
mysql> START SLAVE;如果下一個語句沒有使用
AUTO_INCREMENT
或LAST_INSERT_ID()
,那麼n
的值應為為1
。否則,它的值為2
。設定為2
是因為AUTO_INCREMENT
或LAST_INSERT_ID()
在master的二進位制日誌中佔用了2條日誌。 - 如果確定slave精確地同步master了,並且沒有除了slave執行緒之外的對資料表的更新操作,則推斷這是因為bug產生的差異。如果是使用最近的版本,請報告這個問題,如果使用的是舊版本,試著升級一下。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7916042/viewspace-1004370/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- windows732出現werfault.exe的錯誤處理Windows
- Mysql自動處理同步報錯MySql
- windows10系統出現停止程式碼記憶體管理錯誤怎麼處理Windows記憶體
- go的錯誤處理Go
- 伺服器出現404錯誤怎麼處理伺服器
- Host is not allowed to connect to this MySQL server 錯誤的處理方法MySqlServer
- axios 的錯誤處理iOS
- COM的錯誤處理 (轉)
- 線上MYSQL同步報錯故障處理總結MySql
- 錯誤處理
- CMake出錯的處理
- 透過vnc安裝oracle出現at least 256 colors Failed的錯誤處理VNCOracleASTAI
- 請教 Element 的錯誤處理
- Restful API 中的錯誤處理RESTAPI
- 【譯】RxJava 中的錯誤處理RxJava
- grpc中的錯誤處理RPC
- JavaScript的錯誤簡易處理JavaScript
- NodeJS: 如何在 Express 中處理非同步錯誤NodeJSExpress非同步
- 線上MYSQL同步報錯故障處理方法總結MySql
- PHP 錯誤處理PHP
- php錯誤處理PHP
- Go 錯誤處理Go
- Swift錯誤處理Swift
- Zabbix錯誤處理
- mysqldump錯誤處理MySql
- RMAN刪除歸檔日誌出現RMAN-0813錯誤的處理
- 遭遇BUG 4483368出現ORA-19693錯誤後的處理辦法
- 【故障處理】ORA-12162 錯誤的處理
- 【知識分享】伺服器出現404錯誤怎麼處理伺服器
- 前端的水平線,錯誤處理和除錯前端除錯
- API的設計(1) - 錯誤處理API
- Go 的錯誤處理策略 筆記Go筆記
- 基於 React Redux 的錯誤處理ReactRedux
- Bash 指令碼中的錯誤處理指令碼
- JavaScript 錯誤處理的最佳實踐JavaScript
- javascript中的錯誤處理機制JavaScript
- ORA-04031錯誤的處理
- 一次scheduler錯誤的處理