MySQL入門--MySQL複製技術之部署中遇到的問題
MySQL複製技術指部署中遇到的問題
A. 複製中斷
mysql主從複製,經常會遇到錯誤而導致slave端複製中斷,這個時候一般就需要人工干預,跳過錯誤才能繼續
跳過錯誤有兩種方式:
1.跳過指定數量的事務:
mysql>slave stop;
mysql>SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1 #跳過一個事務
mysql>slave start
2.修改mysql的配置檔案,透過slave_skip_errors引數來跳所有錯誤或指定型別的錯誤
vi /etc/my.cnf
[mysqld]
#slave-skip-errors=1062,1053,1146 #跳過指定error no型別的錯誤
#slave-skip-errors=all #跳過所有錯誤
B. 冷備份恢復的UUID問題
本次的slave是透過關閉master後,直接複製datadir目錄下的所有檔案到slave伺服器;然後啟動slave,則會報錯
Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work.
分析問題:
上面報錯說的是replication架構中需要保證每個mysql例項UUID(UUID儲存在datadir目錄下的auto.cnf檔案中)唯一,就跟server_id一樣需要保證主從架構中所有mysql例項server_id唯一。
之所以出現會出現這樣的問題,是因為我的從庫主機是克隆的主庫所在的主機,所以auto.cnf檔案中儲存的UUID會出現重複(server_id已經在my.cnf檔案中修改過)
解決問題:
關於該問題的解決方案其實很簡單,停掉備庫例項,刪除備庫的auto.cnf檔案,啟動備庫例項,此時備庫就會產生一個新的auto.cnf檔案(產生新的UUID)。網上也有人說直接修改auto.cnf裡面的uuid值,然後重啟從庫例項,該種方案沒有測試過。
C. Last_SQL_Errno: 1677
Last_SQL_Errno: 1677
Last_SQL_Error: Column 0 of table ‘aa.heartbeat’ cannot be converted from type ‘smallint’ to type ‘int(11)’
@Shane Bester 建議slave_type_conversions=ALL_NON_LOSSY,能解決這個問題。以前沒有關注過這個引數,我們線上環境都沒有設定。
slave_type_conversions:在slave上進行欄位型別轉化的,因為主備之間可能在某些情況下,有相同的表名,但欄位多少、欄位型別、欄位順序不一樣,可能導致1677錯誤,這時需要設定相應引數來進行處理。
MySQL 5.5.3版本開始,支援屬性提升特性,包括有損轉化和無損轉換
引數支援值:
1、ALL_LOSSY:可以將int型轉化成tinyint,存在截斷的情況,有損轉化
2、ALL_NON_LOSSY:不允許出現截斷情況,slave的型別範圍大於master方可轉化。設定這個引數後,如果存在截斷情況,slave會報錯
3、以後兩個引數都設定,就存在截斷的情況
4、未設定,主備之間必須一致
在slave上型別轉化需要注意:
Whether you use statement-based or row-based replication, the slave’s copy of the table cannot contain more columns than the master’s copy if you wish to employ attribute promotion.
參考:
http://dev.mysql.com/doc/refman/5.5/en/replication-features-differing-tables.html#replication-features-attribute-promotion
在一臺主機上增加一個slave,啟動的時候報
[ERROR] Slave SQL: Slave failed to initialize relay
log info structure from the repository, Error_code: 1872
原因可能是:1、my.cnf沒指定relay_log,2、沒有reset slave
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16976507/viewspace-2132949/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL入門--MySQL複製技術之主從複製MySql
- MySQL入門--MySQL複製技術之主主複製MySql
- MySQL入門--複製技術介紹MySql
- MySQL入門--MySQL複製技術之主從從級聯複製MySql
- MySQL入門--MySQL複製技術之一主多從MySql
- MySQL的零複製技術MySql
- MySQL 入門(5):複製MySql
- MySQL複製的奇怪問題MySql
- MySQL之 從複製延遲問題排查MySql
- MySQL中的複製MySql
- MySQL組複製MGR(一)-- 技術概述MySql
- 安裝mysql中遇到的問題1MySql
- MySQL級聯複製的同步問題(一)MySql
- 部署專案遇到的mysql問題以及解決方法MySql
- Windows Mysql主從複製部署WindowsMySql
- MySQL主從複製環境部署MySql
- MySQL 8 複製(八)——組複製安裝部署MySql
- Docker中部署mysql服務的方法及遇到的問題DockerMySql
- 安裝mysql遇到的問題MySql
- 遇到mysql的奇怪問題了MySql
- MySQL主從複製中關於AUTO_INCREMENT的奇怪問題MySqlREM
- Mysql MHA部署-02主從複製MySql
- Mysql分散式部署 - 多級複製MySql分散式
- mysql主從複製詳細部署MySql
- MySQL組複製(MGR)全解析 Part 2 常用複製技術介紹MySql
- MySQL主從複製之GTID複製MySql
- MySQL主從複製之半同步複製MySql
- MySQL主從複製之非同步複製MySql非同步
- MySQL高可用之組複製技術(3):配置多主模型的組複製MySql模型
- MySQL高可用之組複製技術(2):配置單主模型的組複製MySql模型
- 如何解決MySQL主從複製太慢的問題MySql
- mysql的主從複製資料延遲問題MySql
- java複製檔案時遇到的問題Java
- 【Mysql】mysql公開課之-mysql5.7複製特性MySql
- 【MySQL】使用innobackup 2.4遇到的問題MySql
- Jmeter mysql testing遇到的問題JMeterMySql
- MySQL 主從複製安裝部署配置MySql
- MYSQL並行複製(parallel replication部署篇)MySql並行Parallel