本篇內(nèi)容介紹了“怎么切換MySQL主從”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
創(chuàng)新互聯(lián)建站服務(wù)項(xiàng)目包括鐵東網(wǎng)站建設(shè)、鐵東網(wǎng)站制作、鐵東網(wǎng)頁制作以及鐵東網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,鐵東網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到鐵東省份的部分城市,未來相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
一、在主庫上把熱數(shù)據(jù)立刻dump到本地磁盤ib_buffer_pool文件中
1)在主庫上,執(zhí)行如下命令把innodb buffer pool里面100%的熱數(shù)據(jù)dump到磁盤文件/data/ib_buffer_pool里面:
mysql>SET GLOBAL innodb_buffer_pool_dump_pct=100;
2)在主庫上,執(zhí)行如下命令把innodb buffer pool里面100%的熱數(shù)據(jù)dump到磁盤文件/data/ib_buffer_pool里面:
mysql> SET GLOBAL innodb_buffer_pool_dump_now=ON;
3)在主庫上,執(zhí)行如下命令顯示dump的進(jìn)度,直至看到completed完成字樣為止:
mysql>SHOW STATUS LIKE 'Innodb_buffer_pool_dump_status';
4)把主庫/data/ib_buffer_pool磁盤文件拷貝到從庫的/data目錄下:
5)在從庫上,執(zhí)行如下命令,把/data/ib_buffer_pool里面的熱數(shù)據(jù)加載到innodb buffer pool
mysql>SET GLOBAL innodb_buffer_pool_load_now=ON;
6) 在從庫上,執(zhí)行如下命令顯示load的進(jìn)度
mysql>SHOW STATUS LIKE 'Innodb_buffer_pool_load_status';
7)在從庫上,執(zhí)行如下命令,看從庫的LRU LIST里面有多少個(gè)頁了:
mysql> select count(*) from information_schema.INNODB_BUFFER_PAGE_LRU ;
8) 當(dāng)看到從庫的load進(jìn)度顯示完成字樣時(shí),說明熱數(shù)據(jù)在從庫上加載完畢
mysql>SHOW STATUS LIKE 'Innodb_buffer_pool_load_status';
二、強(qiáng)制把主庫臟數(shù)據(jù)刷新到硬盤
mysql> flush tables;
mysql>set global innodb_max_dirty_pages_pct=0 //表示BP里面的臟數(shù)據(jù)保留0%,即表示臟數(shù)據(jù)全部刷盤
mysql>show global status like '%dirty%';
mysql>show engine innodb status \G; //一般,并不需要等到最后檢查點(diǎn)和當(dāng)前LSN相等才關(guān)閉,兩者只要相差不多(<1000)關(guān)閉起來就很快了。
Log sequence number 5076573373355
Log flushed up to 5076573331762
Pages flushed up to 5075653942668
Last checkpoint at 5075646303916
三、主從手工切換
1)在從庫上看從庫和主庫是否有同步延時(shí)
mysql>show slave status \G //在從庫執(zhí)行,看sencond_behind_master是否為0;
2)把從庫mysql只讀去掉
3)先把主庫關(guān)閉,并等待從庫應(yīng)用完relay log
mysql> show master status ; //在從庫執(zhí)行,binlog pos不再變化為止,并記錄下此pos值
4)登錄主庫,并釋放掉vip
ifconfig eth2:1 down (釋放掉vip 172.16.x.x)
5) 把vip綁定到從庫上
ifconfig eth2:1 172.16.x.x/24
arping -I eth2:1 -c 1 -s 172.16.x.x 172.16.x.254
到其他網(wǎng)段的機(jī)器ping 172.16.x.x是通的
在從庫show processlist看是否有連接進(jìn)來,測試業(yè)務(wù)是否正常
這樣,就完成了手工主從切換數(shù)據(jù)庫。切換后,從庫的運(yùn)行性能和主庫一樣,對業(yè)務(wù)影響非常小。
6)重新建立主從復(fù)制關(guān)系
CHANGE MASTER TO MASTER_HOST = 'x.x.x.', MASTER_USER = 'repl', MASTER_PASSWORD = 'xxxx', MASTER_PORT = 3306,MASTER_LOG_FILE='binglog.001145', MASTER_LOG_POS=39951979,
“怎么切換MySQL主從”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!