国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

MySQL入門--MySQL復制技術之部署中遇到的問題

2024-07-24 12:31:41
字體:
來源:轉載
供稿:網友
      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

(編輯:武林網)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 华亭县| 独山县| 盐池县| 漠河县| 札达县| 湘西| 时尚| 长沙县| 和田市| 丹阳市| 浏阳市| 雷波县| 深水埗区| 东辽县| 阿拉善盟| 嵊泗县| 凤翔县| 山东省| 定安县| 阿巴嘎旗| 乐昌市| 松江区| 舟山市| 安仁县| 白水县| 西贡区| 英吉沙县| 德令哈市| 谢通门县| 綦江县| 莱州市| 奉贤区| 大理市| 巫山县| 德惠市| 黔西| 临澧县| 南漳县| 永年县| 乐陵市| 大新县|