mysql備份工具
備份種類
物理備份/邏輯備份
線上備份/離線備份
本地備份/遠端備份:mysqldump支援遠端備份,select … into outfile也可以從遠端發起,但生存的檔案卻需在本地伺服器;
全庫備份/增量備份:預設增量只備份二進位制日誌,而xtrabackup透過比對LSN實現真正意義上的增量備份
快照備份:採用寫時複製原理,Veritas/LVM/ZFS
LVM採用寫時複製,建立快照時只複製後設資料;當原始捲上有寫操作時,將被改動的資料塊的前映象複製到快照空間;
讀取快照時,如果資料塊在建立快照後沒有修改過,直接重定向到原始卷,否則直接讀取快照中的原始資料;
更偏向於防範誤操作,可運用於slave伺服器上
也可在slave執行備份,減緩master的負載
對於MyISAM/InnoDB表,資料量較小時均可使用mysqldump,其中mysqldump –single-transaction不阻塞InnoDB大部分操作(DDL除外);
另一個通用的方法是關機冷備,innoDB最好設定innodb_fast_shutdown=0,以保證髒頁和merge insert buffer全部執行完畢;
需要指出的是,由於MyISAM只支援表鎖,不可能在不阻塞寫操作的情況下進行有效備份;
Mysqlhotcopy
是一個perl指令碼,使用flush tables/lock tables和cp(scp)備份資料庫,只用於MyISAM和archive;
比mysqldump更快,屬於物理複製;
Xtrabackup
由percona公司提供,免費;
Xtrabackup有兩個工具:xtrabackup和innobackupex,前者只能備份innodb和xtradb;後者是一個perl指令碼封裝了xtrabackup,可備份MyISAM表(施加讀鎖);
逐頁複製表檔案,每次讀取64個頁,即16K * 64 =1M;複製redo log時則每次讀取512K的資料;
Xtrabackup很好的實現了增量備份,原理如下:
進行完全備份,記錄檢查點LSN;進行增量備份,比較每個頁LSN和上次備份時的LSN,如果大於後者,則備份並記錄當前檢查點LSN;
--backup:備份資料庫
--incremental-lsn:只複製比指定LSN高的ibd page,同—backup協同使用
完全備份 /backup/base
./xtrabackup –backup –target-dir=/backup/base
增量備份 /backup/delta
./xtrabackup –backup –target-dir=/backup/delta –incremental-basedir=/backup/base
準備階段
./xtrabackup –prepare –target-dir=/backup/base
應用增量備份
./xtrabackup –prepare –target-dir=/backup/base –incremental-dir=/backup/delta
Innodbackupex有時會出現超時現象
Ibbackup
備份innodb,收費
備份過程
記錄開始備份時redo log的檢查點LSN;複製.ibd/.myi以及共享表空間檔案;記錄複製完成後redo的檢查點LSN;複製備份時產生的redo log;
恢復過程
恢復表空間檔案;應用redo log;
binlog增量備份和恢復
Mysql自帶的功能只支援備份binlog實現增量備份,恢復的時候需要mysqlbinlog應用binlog
Mysqlbinlog host-bin.007 > tmp.sql 或Mysqlbinlog binglog.log | mysql
注:每個應用的binlog都會在$TMPDIR生成一個同等大小的臨時檔案,最好臨時指定$TMPDIR變數
TMPDIR=/my/big/disk/tmp; export TMPDIR
mysqlbinlog binlog.* > binlogdump.sql
應當一次處理所有的binlog,
Mysqlbinlog binlog.001 binlog.002 … | mysql –u root –p
假定001建立了臨時表而002需要用到,若分兩次處理,則臨時表會在處理完001後刪除,導致002無法使用
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15480802/viewspace-757958/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【MySql】 MySql備份工具Xtrabackup之二MySql
- 【MySql】 MySql備份工具Xtrabackup之一MySql
- mysql企業備份工具mysqlbackupMySql
- MySQL 5.7 mysqlpump 備份工具說明MySql
- XtraBackup 2.2.8 釋出,MySQL 備份工具MySql
- Mysql 物理備份工具xtrabackup的使用MySql
- MySQL中如何選擇合適的備份策略和備份工具MySql
- MySQL資料庫備份種類以及常用備份工具彙總MySql資料庫
- MySQL 資料庫備份種類以及常用備份工具彙總MySql資料庫
- MySQL備份和恢復工具圖譜MySql
- mysql的常用備份工具:mysqldump和mysqlhotcopyMySql
- MySQL DBA備份工具Xtrabackup使用指南(轉)MySql
- 【備份工具】mydumper
- mysql的冷備份與熱備份MySql
- MySQL資料庫備份工具Mydumper使用介紹MySql資料庫
- 建立MySQL資料庫備份的好工具:XtraBackupMySql資料庫
- Mysql備份系列MySql
- Java備份MySQLJavaMySql
- MySQL:xtrabackup備份MySql
- XtraBackup備份MySQLMySql
- Mysql增量備份MySql
- mysql備份--mysqlhotcopyMySql
- Mysql備份與恢復(1)---物理備份MySql
- 初探MySQL資料備份及備份原理MySql
- MySQL · 物理備份 · Percona XtraBackup 備份原理MySql
- MySQL備份與主備配置MySql
- mysql多執行緒備份與還原工具mydumperMySql執行緒
- MySQL5.7新特性之備份工具mysqlpump的使用MySql
- 在Linux中,mysql 資料備份工具有哪些?LinuxMySql
- 磁碟備份工具dcfldd
- MySQL 定時備份MySql
- Mysql備份恢復MySql
- mysql5.6備份MySql
- mysql innobackupex 物理備份MySql
- xtrabackup備份mysql innodbMySql
- MySQL備份類別MySql
- MySQL主從備份MySql
- mysql備份還原MySql