您好,登錄后才能下訂單哦!
本篇內容介紹了“怎么切換MySQL主從”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
一、在主庫上把熱數據立刻dump到本地磁盤ib_buffer_pool文件中
1)在主庫上,執行如下命令把innodb buffer pool里面100%的熱數據dump到磁盤文件/data/ib_buffer_pool里面:
mysql>SET GLOBAL innodb_buffer_pool_dump_pct=100;
2)在主庫上,執行如下命令把innodb buffer pool里面100%的熱數據dump到磁盤文件/data/ib_buffer_pool里面:
mysql> SET GLOBAL innodb_buffer_pool_dump_now=ON;
3)在主庫上,執行如下命令顯示dump的進度,直至看到completed完成字樣為止:
mysql>SHOW STATUS LIKE 'Innodb_buffer_pool_dump_status';
4)把主庫/data/ib_buffer_pool磁盤文件拷貝到從庫的/data目錄下:
5)在從庫上,執行如下命令,把/data/ib_buffer_pool里面的熱數據加載到innodb buffer pool
mysql>SET GLOBAL innodb_buffer_pool_load_now=ON;
6) 在從庫上,執行如下命令顯示load的進度
mysql>SHOW STATUS LIKE 'Innodb_buffer_pool_load_status';
7)在從庫上,執行如下命令,看從庫的LRU LIST里面有多少個頁了:
mysql> select count(*) from information_schema.INNODB_BUFFER_PAGE_LRU ;
8) 當看到從庫的load進度顯示完成字樣時,說明熱數據在從庫上加載完畢
mysql>SHOW STATUS LIKE 'Innodb_buffer_pool_load_status';
二、強制把主庫臟數據刷新到硬盤
mysql> flush tables;
mysql>set global innodb_max_dirty_pages_pct=0 //表示BP里面的臟數據保留0%,即表示臟數據全部刷盤
mysql>show global status like '%dirty%';
mysql>show engine innodb status \G; //一般,并不需要等到最后檢查點和當前LSN相等才關閉,兩者只要相差不多(<1000)關閉起來就很快了。
Log sequence number 5076573373355
Log flushed up to 5076573331762
Pages flushed up to 5075653942668
Last checkpoint at 5075646303916
三、主從手工切換
1)在從庫上看從庫和主庫是否有同步延時
mysql>show slave status \G //在從庫執行,看sencond_behind_master是否為0;
2)把從庫mysql只讀去掉
3)先把主庫關閉,并等待從庫應用完relay log
mysql> show master status ; //在從庫執行,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
到其他網段的機器ping 172.16.x.x是通的
在從庫show processlist看是否有連接進來,測試業務是否正常
這樣,就完成了手工主從切換數據庫。切換后,從庫的運行性能和主庫一樣,對業務影響非常小。
6)重新建立主從復制關系
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主從”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。