mysql備份時候兩個很有用的引數

nih0001發表於2018-09-29

 mysqldump -uroot test –single-transaction –master-data=2 >master-data.sql  


master-data引數在建立slave資料庫的時候會經常用到,因為這是一個比較好用的引數,預設值為1,預設情況下,會包含change master to,這個語句包含file和position的記始位置。master- data=2的時候,在mysqldump出來的檔案包含CHANGE MASTER TO這個語句,處於被註釋狀態 dump出檔案 

使用這個引數可以記錄一下我們備份時候binlog的具體位置,在資料出現問題的時候我們可以通過這個記錄的節點作為起始點,根據問題問題出現的時間通過binlog日誌定位結束點,利使用binlog日誌準確的恢復資料。


single-transaction 選項和 lock-all-tables 選項是二選一的,前者是在匯出開始時設定事務隔離狀態並使用一致性快照開始事務,而後馬上unlock tables,然後執行匯出,匯出過程不影響其它事務或業務連線,但只支援類似innodb多版本特性的引擎,因為必須保證即使匯出期間其它操作(事務點t2)改變了資料,而匯出時仍能取出匯出開始的事務點t1時的資料。而lock-all-tables則一開始就 FLUSH TABLES WITH READ LOCK; 加全域性讀鎖,直到dump完畢。 


相關文章