mysqldump備份時如何保持資料的一致性

chenfeng發表於2018-06-13
mysqldump對不同型別的儲存引擎,內部實現也不一樣。主要是針對兩種型別的儲存引擎:支援事務的儲存引擎(如InnoDB)和不支援事務的儲存引擎(如MyISAM),下面分別看看這兩種儲存引擎的實現:


1、對於支援事務的引擎如InnoDB,引數上是在備份的時候加上--single-transaction保證資料一致性


--single-transaction實際上透過做了下面兩個操作:


1).在開始的時候把該session的事務隔離級別設定成repeatable read;


2).然後啟動一個事務(執行begin),備份結束的時候結束該事務(執行commit)


有了這兩個操作,在備份過程中,該session讀到的資料都是啟動備份時的資料(同一個點)。可以理解為對於innodb引擎來說加了該引數,備份開始時就已經把要備份的資料定下來了,備份過程中的提交的事務時是看不到的,也不會備份進去。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15498/viewspace-2156092/,如需轉載,請註明出處,否則將追究法律責任。

相關文章