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