mysql備份優化 MySQL備份流程及優化

2021-10-18 08:33:02 字數 1935 閱讀 4086

1.flush table with read lock 的認識:

flush table with read lock(簡稱:  ftwrl) 有哪些問題:

例如讓dba頭大的long query,ftwrl需要等待所有的表沒有引用後關閉所有表,long query 導致ftwrl無法執行成功。這也是經常備份被hung住,有可能導致備份失敗。

2.老版本如何獲得一致性的備份:

2.1 mysqldump

早期使用mysqldump 來備份,xtrabackup 成為當前主流inoodb+myisam熱備工具。

從mysql 5.1開始: 在最後備份非事務引擎表的時候為了獲得一致性備份需要在mysql上獲得  flush table with read lock,有可能在壓力大的庫或者有事務沒有正常關閉的連線在,會導致備份無法因超時後導致備份失敗。還有如果在master 上備份會導致加ftwrl到最後這段時間會堵塞所有的dml,master這段時間變成唯讀,長短取決於非事務表的數量和大小。

percona server 從5.6.16-64.0開始優化了mysqldump備份,引入輕量級鎖,lock tables for backup  和   lock binlog for backup。mysqldump 增加引數:--lock-for-backup

2.2 xtrabackup:

version<2.2.0 :也是加ftwrl,和老版本mysqldump類似。老版本的改進:improved flush tables with read lock handling:

version>=2.2.0 引入輕量級鎖,lock tables for backup;  和   lock binlog for backup;

xtrabackup物理備份流程變化如下:

修改之前(<2.2.0 )的流程:

1.get redo lsn

2.copy 系統表空間+事務引擎表的資料檔案+後台子程序(ibackup)拷貝redo

3.flush tables with read lock

4.copy 所有 *.frm檔案,非事務引擎表(myisam、archive等)資料+索引檔案

5.get the binary log coordinates(座標/位點)

6.finalize the background copy of redo log

7.unlock tables;

修改之後(>=2.2.0 )的流程:

1.get redo lsn

2.copy 系統表空間+事務引擎表的資料檔案+後台子程序(ibackup)拷貝redo

3.lock tables for backup

4.copy  所有 *.frm檔案,非事務引擎表(myisam、archive等)資料+索引檔案

5.lock binlog for backup

6.finalize the background copy of redo log

7.unlock tables;

8.get the binary log coordinates(座標/位點)

9.unlock binlog

3.優化的目標

3.1 引入備份鎖的優勢

lock tables for backup:

作用:獲取一致性資料

a)禁止非事務引擎(非innodb)表寫入(也即dml)。

b)禁止所有表的ddl。

優點:a)不會被大查詢阻塞。

b)不會堵塞innodb表的讀取和更新,這點非常重要,對於業務表全部是並innodb的情況,則備份過程中dml完全不受損。

lock binlog for backup:

作用:獲取一致性位點。

a)禁止對binlog的位點操作(不允許dml、ddl)

優點:a)時間短,對db的影響很小。

下面是xtrabackup-2.2.4的備份主要log:

mysql 備份優化 Mysql資料庫優化備份恢復

資料庫空間清理 刪除操作會帶來一些資料碎片,正是這些碎片在占用硬碟空間 mysql的 information schema 資料庫中的tables 表記錄了mysql資料庫中每個表占用的空間 表記錄的行數,更新時間,說明等,這個表主要字段如下 table schema 資料庫名 table name...

mysql增量備份幾種 mysql的增量備份

一 啟用 binary log 修改 mysql server 的系統設定檔案 eg.etc my.cnf 在 mysqld 區塊中加上 log bin mysql bin 選項,然後重新啟動 mysql server,例如 mysqld log bin 啟用後你應該可以在 mysql 的 data...

mysql軟體進行備份 MySQL的幾種備份工具

mysql備份和恢復 注意 備份不成功的原因可能是版本不一樣,需執行命令 cp usr local mysql bin mysqldump mysqlhotcop mysqlimport usr local bin 1 mysqldump備份工具 備份資料庫下的表 mysqldump u root ...