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中设置的数据目录下没有任何文件