本篇內(nèi)容主要講解“MySQL checkpoint有什么作用”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“mysql checkpoint有什么作用”吧!
創(chuàng)新互聯(lián)為客戶提供專業(yè)的成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、程序、域名、空間一條龍服務(wù),提供基于WEB的系統(tǒng)開發(fā). 服務(wù)項(xiàng)目涵蓋了網(wǎng)頁設(shè)計(jì)、網(wǎng)站程序開發(fā)、WEB系統(tǒng)開發(fā)、微信二次開發(fā)、移動(dòng)網(wǎng)站建設(shè)等網(wǎng)站方面業(yè)務(wù)。
checkpoint檢查點(diǎn)主要是刷新臟頁到磁盤上,使數(shù)據(jù)庫達(dá)到數(shù)據(jù)狀態(tài)一致性的工作。因?yàn)槭聞?wù)的提交只會(huì)刷新操作日志到磁盤,臟數(shù)據(jù)是異步刷新到磁盤,這個(gè)異步就是靠checkpoint。
一、主要解決以下問題:
1、恢復(fù)的時(shí)候減少前滾操作,減少恢復(fù)時(shí)間
2、回收臟頁,循環(huán)利用緩存池
3、重做日志不可用,刷新臟頁
二、checkpoint種類及觸發(fā)條件
sharp checkpoint (類似oracle全量)
當(dāng)innodb_fast_shutdown=1和0時(shí),數(shù)據(jù)庫關(guān)閉時(shí)所有臟頁全部刷新到磁盤上
Fuzzy checkpiont(類似oracle增量)
1、Master Thread進(jìn)程每幾秒或每十秒異步的將臟頁一定比例的刷新到磁盤上
2、FlUSH_LUR_LIST checkpoint是因?yàn)樵趇nnodbmysql5.6版本以前需要保證LRU列表中需要有差不多100個(gè)空閑頁可供使用,從mysql5.6版本以后,這個(gè)檢查被放在一個(gè)單獨(dú)的page cleaner線程中進(jìn)行,而且用戶可以通過參數(shù)innodb_lru_scan_depth控制LRU列表中可用頁的數(shù)量,默認(rèn)為1024
3、Async/Sync Flush checkpoint值重做日志文件不可用的時(shí)候
在重做日志文件不可用的情況下,需要將一些也刷新回磁盤,而操作發(fā)生在Flush列表上。若將已經(jīng)寫入到重做日志的LSN記為redo_lsn,將已經(jīng)刷新回磁盤最新的LSN記為checkpoint_lsn,則可以定義:checkpoint_age = redo_lsn-checkpoint_lsn在定義一下的變量async_water_mark=75%*total_redo_log_file_size、sync_water_mark=90%*total_redo_file_size。若每個(gè)重做日志的大小為1G且定義了兩個(gè)重做日志共2G。那么async_water_mark=1.5G,sync_water_mark=1.8G。
當(dāng)checkpoint_age<async_water_mark時(shí),不需要刷新任何臟數(shù)據(jù)到磁盤; </async_water_mark時(shí),不需要刷新任何臟數(shù)據(jù)到磁盤;<>
當(dāng)async_water_mark<checkpoint_age<sync_water_mark時(shí),觸發(fā)async flush從flush列表刷新足夠的臟頁會(huì)磁盤,使得刷新后滿足checkpoint_age<async_water_mark; </checkpoint_age
當(dāng)checkpoint_age>sync_water_mark時(shí),這種情況很少發(fā)生除非設(shè)置的重做日志文件太小,并且進(jìn)行類似于LOAD DATA的BULK INSRET操作。這個(gè)時(shí)候觸發(fā)Sync Flush從Flush列表刷新足夠的臟頁會(huì)磁盤,使得刷新后滿足checkpoint_age<async_water_mark; </async_water_mark;<>
Async Flush Checkpoint會(huì)阻塞發(fā)現(xiàn)問題的用戶查詢線程,Sync Flush Checkpoint會(huì)阻塞所有的用戶查詢線程,并且等待臟頁刷新完成。但是從MySQL5.6版本開始這部分操作放入單獨(dú)的Page Cleaner Thread中,不再會(huì)堵塞用戶查詢線程。
4、Dirty Page too much 當(dāng)緩存池中的數(shù)據(jù)比例達(dá)到innodb_max_dirty_pages_pct比例時(shí),強(qiáng)制checkpoint,刷新一部分臟頁到磁盤上,innodb 1.0.X版本之前該參數(shù)默認(rèn)是90,之后的版本都為75
mysql> show variables like 'innodb_max_dirty_pages_pct';
+----------------------------+-------+
| Variable_name | Value |
+----------------------------+-------+
| innodb_max_dirty_pages_pct | 75 |
+----------------------------+-------+
1 row in set (0.00 sec)
到此,相信大家對“mysql checkpoint有什么作用”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
分享文章:mysqlcheckpoint有什么作用
標(biāo)題來源:http://jinyejixie.com/article2/gcejic.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)、企業(yè)建站、小程序開發(fā)、自適應(yīng)網(wǎng)站、網(wǎng)站導(dǎo)航、響應(yīng)式網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)