您好,登錄后才能下訂單哦!
本篇內容介紹了“怎么給從庫熱數據innodb buffer pool”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
最近在生產上做了一個mysql主從切換的操作,當從庫提升為主后,發現從庫一開始壓力異常大,分析原因應該是從庫的innodb_buffer_pool的熱數據沒有立即加載進來,導致發生大量磁盤讀了。我們的innodb_buffer_pool設置大小為42G,所以大約持續了100分鐘,才使得業務恢復正常。
后來想想應該可以把主庫innodb buffer pool里面的熱數據dump成磁盤文件,然后把這個磁盤文件拷貝到從庫,讓從庫從dump出的這個磁盤文件把熱數據加載到從庫的innodb buffer pool里面。于是我查看MySQL官方文檔,并找到了這樣的解決辦法。
具體步驟如下:
1)在主庫上,執行如下命令,把innodb_buffer_pool_dump_pct設置成40%,表示要把innodb buffer pool 40%(根據情況也可以設置為100%)的熱數據dump到磁盤文件/data/ib_buffer_pool里面:
mysql>SET GLOBAL innodb_buffer_pool_dump_pct=40;
2)在主庫上,執行如下命令把innodb buffer pool里面40%的熱數據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進度顯示完成字樣時,就可以進行主從切換的動作了,先把主庫關閉,并等待從庫應用完relay log后,把vip綁定到從庫上,從而完成了手工主從切換數據庫。切換后,從庫的運行性能和主庫一樣,對業務影響非常小。
“怎么給從庫熱數據innodb buffer pool”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。