1. 程式人生 > >xtrabackup的簡單用法及其原理

xtrabackup的簡單用法及其原理

read mysql數據庫 copy 時間 文件目錄 sql數據庫 con fig password

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的簡單用法及其原理