mysql replication常見錯誤
如果一個sql在master和slave報告同樣的錯誤,slave會記錄此錯誤但replication不會受影響;
如果錯誤不同,sql執行緒會終止並向錯誤日誌記錄相應資訊,需要DBA介入;
最常見的做法是登陸slave,允許show slave status檢視具體錯誤資訊,根據實際情況修復後呼叫start slave;
--當master上sql執行失敗時,其錯誤程式碼透過QUERY_EVENT中一個欄位記錄入binlog,可透過mysqlbinlog檢視
對於MyISAM,可能出現以下情況:
Insert into values 部分行由於違反表定義插入失敗;Update 更新部分行後被kill;
即一個sql沒有全部執行成功,此時slave需要在執行sql時產生同樣錯誤,否則sql thread會停止;
另外,同樣的表在master/slave使用不同儲存引擎,
如master採用innodb而slave使用myisam,master上DML因違反外來鍵約束失敗,slave卻得以正確執行,同樣會導致複製停止;
1045
Last_IO_Errno: 1045
Last_IO_Error: error connecting to master 'slave_user@master.domain.int:3306' - retry-time: 60 retries: 86400
通常是由於密碼錯誤或過長,MASTER_PASSWORD預設32位,
1236
[ERROR] Error reading packet from server: Client requested master to start replication from impossible position ( server_errno=1236)
通常由於master意外重啟導致binlog沒有正常關閉造成的,可使用change master to重新指定position
1677
Last_SQL_Errno: 1677
Last_SQL_Error: Column 0 of table ‘aa.heartbeat’ cannot be converted from type ‘smallint’ to type ‘int(11)’
由主備表的列型別不一致導致,可設定slave_type_conversions=ALL_NON_LOSSY跳過
MySQL 5.5.3版本開始,支援屬性提升特性,包括有損轉化和無損轉換
引數支援值:
1、ALL_LOSSY:可以將int型轉化成tinyint,存在截斷的情況,有損轉化
2、ALL_NON_LOSSY:不允許出現截斷情況,slave的型別範圍大於master方可轉化。設定這個引數後,如果存在截斷情況,slave會報錯
3、未設定,主備之間必須一致
slave_skip_errors
可指定錯誤號,slave會自動忽略類似錯誤
候選值all/ddl_exist_errors(用於NDB)以及錯誤號列表,預設為off
SQL_SLAVE_SKIP_COUNTER
可透過設定此值選擇跳過master傳來的N個事件
對於last_insert_id()/auto_increment應該設定為2,因為額外產生1個INTVAR_EVENT,其有兩個子型別
INSERT_ID_EVENT:標示下一個sql使用AUTO_INCREMENT列
LAST_INSERT_ID_EVENT:標示下一個sql使用last_insert_id()
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15480802/viewspace-758261/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL Replication常見錯誤整理MySql
- MySQL 常見錯誤MySql
- MySQL 安裝常見錯誤MySql
- mysql8 常見錯誤MySql
- Mysql:1236常見錯誤MySql
- MySql 常見錯誤程式碼大全MySql
- mysql replication複製錯誤(zt)MySql
- MySQL常見的8種SQL錯誤用法MySql
- oracle 常見錯誤Oracle
- MySQL 那些常見的錯誤設計規範MySql
- Go 常見錯誤集錦 | 字串底層原理及常見錯誤Go字串
- Go常見錯誤集錦 | 字串底層原理及常見錯誤Go字串
- 常見的web錯誤Web
- MySQL資料庫常見錯誤及解決方案MySql資料庫
- MySQL常見錯誤分析與解決方法總結MySql
- MySQL常見錯誤程式碼及程式碼說明MySql
- 常見的錯誤 SQL 用法SQL
- Oracle之Rman常見錯誤Oracle
- Hadoop常見錯誤2Hadoop
- opencv 編譯常見錯誤OpenCV編譯
- Go常見錯誤第15篇:interface使用的常見錯誤和最佳實踐Go
- MySQL 效能最佳化:8 種常見 SQL 錯誤用法!MySql
- MySQL 5.6 GTID常見錯誤解決一例MySql
- mysql客戶端連線的幾個常見錯誤MySql客戶端
- 8種常見SQL錯誤用法SQL
- 搭建github部落格常見錯誤Github
- 變數命名以及常見錯誤變數
- Shell:常見錯誤總結(一)
- 常見的 PostgreSQL 升級錯誤SQL
- 常見 HTTP 錯誤程式碼大全HTTP
- js作用域的常見錯誤JS
- 安裝RAC常見小錯誤
- GoldenGate 常見錯誤分析(二)Go
- Mac下php常見錯誤資訊MacPHP
- spring事務常見錯誤Spring
- MYSQL常見出錯程式碼MySql
- 建議收藏備查!MySQL 常見錯誤程式碼說明MySql
- PHP編譯安裝時常見錯誤解決辦法,php編譯常見錯誤PHP編譯