1.問題一:主從復制,中繼日志不斷增長,如何設置中繼日志自動清除
vi 配置文件my.cnf,在mysqld下增添
relay_log_purge=1 (自動清除中繼日志打開)
重啟mysql,這樣SQL Thread每執行完一個events時才會判斷該relay-log是否需要,已經不再需要則自動刪除
2.問題二:主從同步失敗,如何快速同步?
跳過錯誤,繼續同步。設置SQL_slave_skip_counter=1;來快速恢復主從架構,但是此時主從架構的數據可能已經不一致了。set global sql_slave_skip_counter=N; 當N等於1時,表示跳過若干個event,直到當前事務結束,而當N大於1時,每跳過一個event,都要N--設置--slave-skip-errors=[ err_code1[,err_code2][,all]] 跳過出現指定錯誤的SQL.如果要斷開主從架構,應先stop slave io_thread;等待執行完relay log裡的內容再stop slave;
3.問題三: io線程始終保持為connecting狀態
主從架構中,從庫的io_thread一直保持connecting狀態。先理解Slave_IO_Running 為connecting,的含義。造成的主要有三個:
1、網絡不通 (是否打開防火牆)
2、復制用戶的密碼不對 (主從同步指定的用戶密碼主機名限制)
3、pos不對 (指定的position不正確)
4.主鍵沖突,報1062錯誤
主從架構中,從庫復制報1062錯誤,主鍵沖突。如果binlog是基於語句級復制,很容易出現上面的問題。設置innodb_autoincr_lock_mode=0或是1或修改binlog_format=mixed|row
5.從庫同步慢
主從架構中,從庫的同步數據非常慢。出現主從同步慢的原因有:
1.主從同步延遲與系統時間的關系,查看主從兩台機器間系統時間差
2.主從同步延遲與壓力、網絡、機器性能的關系,查看從庫的io,cpu,mem及網絡壓力
3.主從同步延遲與lock鎖的關系(myisam表讀時會堵塞寫),盡量避免使用myisam表。一個實例裡面盡量減少數據庫的數量。
6. change master時報錯ERROR 1201 (HY000)
表現:在搭建主從時,報1201錯誤 。ERROR 1201 (HY000): Could not initialize master info structure; more error messages can be found in the MySQL error log
解決方法:出現這個問題的原因是之前曾做過主從復制!需要reset slave後再change