歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> MySQL的熱備份開源工具XtraBackup

MySQL的熱備份開源工具XtraBackup

日期:2017/2/27 15:59:27   编辑:Linux教程
首先代表所有使用者,感謝PERCONA的無私貢獻,今天簡單介紹一下 MySQL 免費熱備工具 XtraBackup , 特別是幾個使用時值得注意的地方。

1. 下載XtraBackup並安裝
當前最新的版本是1.6 ,從這裡可以選擇不同OS的相應版本:
http://www.percona.com/downloads/XtraBackup/XtraBackup-1.6/

在LINUX下你可以直接運行:
wget http://www.percona.com/redir/downloads/XtraBackup/XtraBackup-1.6/RPM/rhel5/x86_64/xtrabackup-1.6-245.rhel5.x86_64.rpm
rpm -ivh xtrabackup-1.6-245.rhel5.x86_64.rpm

2. 數據庫中建立備份賬號
GRANT SELECT, RELOAD, LOCK TABLES, REPLICATION CLIENT ON *.* TO ‘username’@’localhost’ IDENTIFIED BY ‘password’;
這個帳戶主要是用來完成備份時一些鎖表等工作;

3. 全量備份與恢復
一般庫不大(< 200G),我們就選擇用全量備份 ;
innobackupex-1.5.1 工具是用PERL包裝過的”xtrabackup“,他不旦可以備份INNODB,還可以備份MYISAM等非事務數據庫;

3.1 全量備份
# 指定mysql配置文件路徑
mycnf=/etc/my.cnf
#指定備份根目錄
backup_path=/data/mysqlbackup
# 開始備份
innobackupex-1.5.1 –user=username –password=password –host=127.0.0.1 –port=3306 –slave-info –tmpdir=$backup_path –defaults-file=$mycnf $backup_path 2> $backup_path/xtrabk.log

### 注意點:
在備份過程中,把INNODB數據文件備份完成後,會鎖住整個庫,並開始復制MYISAM等非事務引擎的數據和.frm;
所以如果你擁有比較多的MYISAM表,鎖庫的時候會持續很長。如果是在主庫上運行,千萬注意。

3.2 全量恢復
3.2.1 應用日志
## 這個過程主要是產生REDOLOG並將備份期間產生的REDO應用到數據文件中;
## xtrabackup 會啟動一個INNODB進程去做,與你當前在跑的不沖突
innobackupex-1.5.1 –apply-log /data/mysqlbackup/

3.2.2 復制數據文件到數據目錄
## 這個過程將恢復好的數據復制到my.cnf中指定的數據目錄中。 這時你需要把原有的實例停掉
innobackupex-1.5.1 –copy-back /data/mysqlbackup/

4. 增量備份
增量備份我們只能使用xtrabackup工具;
1)只能用於INNODB
2)my.cnf文件[mysqld]中需要設置 default_table_type=InnoDB

4.1 全量備份(參考 3.1)

4.2 增量備份 (只復制變化過的塊)

#指定備份根目錄
backup_path=/data/mysqlbackup/2011-06-02_19-05-46/
#指定備份根目錄
incre_path=/data/mysqlbackup/incre001
#開始備份
xtrabackup –defaults-file=/etc/my.cnf –backup –target-dir=$incre_path –incremental-basedir=$backup_path
在/data/mysqlbackup/incre001將產生一些.delta數據文件;
另外可以注意xtrabackup_checkpoints這個文件lsn的變化

4.3 恢復 (先恢復全量備份的日志)
## 用增量備份加入全量數據
xtrabackup –defaults-file=/etc/my.cnf –prepare –target-dir=/data/mysqlbackup/2011-06-02_19-05-46/
xtrabackup –target-dir=/data/mysqlbackup/2011-06-02_19-05-46/ –prepare –incremental-dir=/data/mysqlbackup/incre001
## 應用日志
xtrabackup –defaults-file=/etc/my.cnf –prepare –target-dir=/data/mysqlbackup/2011-06-02_19-05-46/
Copyright © Linux教程網 All Rights Reserved