MySQL復(fù)制技術(shù)指部署中遇到的問題
為昆玉等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及昆玉網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)、昆玉網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!A. 復(fù)制中斷
mysql主從復(fù)制,經(jīng)常會(huì)遇到錯(cuò)誤而導(dǎo)致slave端復(fù)制中斷,這個(gè)時(shí)候一般就需要人工干預(yù),跳過錯(cuò)誤才能繼續(xù)
跳過錯(cuò)誤有兩種方式:
1.跳過指定數(shù)量的事務(wù):
mysql>slave stop;
mysql>SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1 #跳過一個(gè)事務(wù)
mysql>slave start
2.修改mysql的配置文件,通過slave_skip_errors參數(shù)來跳所有錯(cuò)誤或指定類型的錯(cuò)誤
vi /etc/my.cnf
[mysqld]
#slave-skip-errors=1062,1053,1146 #跳過指定error no類型的錯(cuò)誤
#slave-skip-errors=all #跳過所有錯(cuò)誤
B. 冷備份恢復(fù)的UUID問題
本次的slave是通過關(guān)閉master后,直接復(fù)制datadir目錄下的所有文件到slave服務(wù)器;然后啟動(dòng)slave,則會(huì)報(bào)錯(cuò)
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.
分析問題:
上面報(bào)錯(cuò)說的是replication架構(gòu)中需要保證每個(gè)mysql實(shí)例UUID(UUID保存在datadir目錄下的auto.cnf文件中)唯一,就跟server_id一樣需要保證主從架構(gòu)中所有mysql實(shí)例server_id唯一。
之所以出現(xiàn)會(huì)出現(xiàn)這樣的問題,是因?yàn)槲业膹膸?kù)主機(jī)是克隆的主庫(kù)所在的主機(jī),所以auto.cnf文件中保存的UUID會(huì)出現(xiàn)重復(fù)(server_id已經(jīng)在my.cnf文件中修改過)
解決問題:
關(guān)于該問題的解決方案其實(shí)很簡(jiǎn)單,停掉備庫(kù)實(shí)例,刪除備庫(kù)的auto.cnf文件,啟動(dòng)備庫(kù)實(shí)例,此時(shí)備庫(kù)就會(huì)產(chǎn)生一個(gè)新的auto.cnf文件(產(chǎn)生新的UUID)。網(wǎng)上也有人說直接修改auto.cnf里面的uuid值,然后重啟從庫(kù)實(shí)例,該種方案沒有測(cè)試過。
C. Last_SQL_Errno: 1677
Last_SQL_Errno: 1677
Last_SQL_Error: Column 0 of table ‘a(chǎn)a.heartbeat’ cannot be converted from type ‘smallint’ to type ‘int(11)’
@Shane Bester 建議slave_type_conversions=ALL_NON_LOSSY,能解決這個(gè)問題。以前沒有關(guān)注過這個(gè)參數(shù),我們線上環(huán)境都沒有設(shè)置。
slave_type_conversions:在slave上進(jìn)行字段類型轉(zhuǎn)化的,因?yàn)橹鱾渲g可能在某些情況下,有相同的表名,但字段多少、字段類型、字段順序不一樣,可能導(dǎo)致1677錯(cuò)誤,這時(shí)需要設(shè)置相應(yīng)參數(shù)來進(jìn)行處理。
MySQL 5.5.3版本開始,支持屬性提升特性,包括有損轉(zhuǎn)化和無損轉(zhuǎn)換
參數(shù)支持值:
1、ALL_LOSSY:可以將int型轉(zhuǎn)化成tinyint,存在截?cái)嗟那闆r,有損轉(zhuǎn)化
2、ALL_NON_LOSSY:不允許出現(xiàn)截?cái)嗲闆r,slave的類型范圍大于master方可轉(zhuǎn)化。設(shè)置這個(gè)參數(shù)后,如果存在截?cái)嗲闆r,slave會(huì)報(bào)錯(cuò)
3、以后兩個(gè)參數(shù)都設(shè)置,就存在截?cái)嗟那闆r
4、未設(shè)置,主備之間必須一致
在slave上類型轉(zhuǎn)化需要注意:
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.
參考:
/tupian/20230522/replication-features-differing-tables.html
在一臺(tái)主機(jī)上增加一個(gè)slave,啟動(dòng)的時(shí)候報(bào)
[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
網(wǎng)頁(yè)名稱:MySQL入門--MySQL復(fù)制技術(shù)之部署中遇到的問題-創(chuàng)新互聯(lián)
網(wǎng)站鏈接:http://aaarwkj.com/article10/ppddo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)公司、網(wǎng)頁(yè)設(shè)計(jì)公司、全網(wǎng)營(yíng)銷推廣、搜索引擎優(yōu)化、企業(yè)網(wǎng)站制作、網(wǎng)站策劃
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容