xtrabackup的簡單用法及其原理
xtrabackup
全備:
innobackupex --defaults-file=$mysql_config --user=$user --password=$password --all-databases --no-lock --no-timestamp --stream=tar $backup_dir 2>$backup_dir/$log|gzip 1>$backup_dir/$str
恢復全備:
innobackupex --apply-log --user-memory /backup/full
恢復備份到MySQL的數據文件目錄,要先關閉MySQL數據庫,恢復、賦權、啟動
增量:(指定在誰的基礎上進行增量)
全備:innobackupex --defaults-file=/etc/my.cnf --user=root --password=root --no-timestamp /xtrabackpex/full
第一次增量:進行第一次增量備份,需要在有一次完整備份的基礎上進行
--incremental /root/one 指定增量備份存放的目標目錄
--incremental-basedir=/tmp 指定完整備份的目錄
innobackupex --defaults-file=/etc/my.cnf --user=root --password=root --no-timestamp --incremental /xtrabackpex/full/incr_1 --incremental-basedir=/xtrabackpex/full
第二次增量:進行第二次增量備份,需要指定上一次增量備份的目錄
--incremental /root/two 指定這次增量備份目錄
--incremental-basedir=/root/one 知道上次增量備份目錄
innobackupex --defaults-file=/etc/my.cnf --user=root --password=root --no-timestamp --incremental /xtrabackpex/full/incr_2 --incremental-basedir=/xtrabackpex/full/incr_1
增量備份恢復:
還原一個增量備份,創建好的完整備份不能直接用來還原數據庫,需要對數據做一些準備工作,其中包括一些已經提交的事務的重放,未提交事務的回滾。
--apply-log 準備還原備份的選項
--use-memory=4G 設置準備還原數據時使用的內存,可以提高準備所花費的時間
增量備份的恢復大體分為3個步驟:
恢復基礎備份(全備)
恢復增量備份到基礎備份(開始恢復的增量備份要添加--read-only參數,到最後一個增量備份去掉--read-only參數):
對整體的基礎備份進行恢復,回滾哪些未提交的數據
恢復基礎備份:(註意這裏一定要加上--read-only參數,只應用xtrabackupx日誌中已經提交的事務日誌,不回滾還未提交的數據):
innobackupx --apply-log --read-only --use-memory=4G /xtrabackpex/full
將增量備份incr_1應用到基礎備份
innobackupx --apply-log --read-only --use-memory=4G /xtrabackpex/full --incremental-dir=/xtrabackpex/full/incr_1
將增量備份incr_2應用到基礎備份(恢復最後一個增量備份時需要去掉--read-only參數,回滾xtrabackup中那些還未提交的數據)
innobackupex --apply-log --use-memory=4G /xtrabackpex/full/ --incremental-dir=/xtrabackpex/full/incr_2
把所有合並一起的基礎備份整體進行一次apply操作,回滾未提交的數據:
innobackupex --apply-log --use-memory=4G /xtrabackpex/full
把恢復玩的備份復制到數據文件目錄中,賦權,然後啟動MySQL數據庫:
service MySQL stop
mkdir /mysql/3306/data_bak/
mv /mysql/3306/data/* /mysql/3306/data_bak/
mv /mysql/3306/logs/redo/* /mysql/3306/logs/redo_bak
mv /mysql/3306/logs/undo/* /mysql/3306/logs/undo_bak
innobackupex --defaults-file=/etc/my.cnf --copy-back /xtrabackpex/full
chown -R mysql:mysql /mysql/3306
service mysql start
還原數據,需要指定配置文件,默認會還原到/var/lib/mysql,並且保證,my.cnf中設置的數據目錄下沒有任何文件
xtrabackup的簡單用法及其原理