1, 在本地备份数据
innobackupex --defaults-file=/data/config/my3306.cnf --user=root --password=123 --socket=/data/socket/mysql3306.sock /data2/backup/hotbackup/full --no-timestamp
2, 恢复全量备份
#innobackupex --apply-log --use-memory=5G /data2/backupex/hotbackupex/full
恢复备份到MySQL的数据文件目录,这一过程要先关闭MySQL数据库,重命名原数据文件目录,再创建一个新的数据文件目录,将备份数据复制到新的数据文件目录下,赋权,启动MySQL数据库:
#mysqladmin -S /data/socket/mysql3306.sock shutdown
#mv /data/mysql3306/data /data/mysql3306/data_bak
#mkdir /data/mysql3306/data
#innobackupex --defaults-file=/data/config/my3306.cnf --copy-back --rsync /data2/backup/hotbackup/full/
#chown -R mysql.mysql /data/mysql3306/data
#/usr/local/mysql/bin/mysqld_safe --defaults-file=/data/config/my3306.cnf --user=mysql &
检验恢复后的数据库的一致性,查看相应的数据库
3, 增量备份
在mysql中进行增量备份时,首先要进行一次全备,第一次增量备份是基于全备的,在之后的增量备份是基于上一次的增量备份。
创建增量备份incremental_one:【对某个库的表进行数据修改,如插入】
#innobackupex --defaults-file=/data/config/my3306.cnf --user=backup --password=123 --socket=/data/socket/mysql3306.sock --incremental /data2/backup/hotbackup/incremental_one --incremental-basedir=/data2/backup/hotbackup/full --no-timestamp --parallel=2
创建增量备份incremental_two: 【对某个库的表进行数据修改,如插入】
#innobackupex --defaults-file=/data/config/my3306.cnf --user=backup --password=123 --socket=/data/socket/mysql3306.sock --incremental /data2/backup/hotbackup/incremental_two --incremental-basedir=/data2/backup/hotbackup/incremental_one --no-timestamp --parallel=2
- 增量备份恢复。
增量备份的恢复大体分为3个步骤。
1),恢复基础备份 (全备)
2),恢复增量备份到基础备份(开始恢复的增量备份要添加 --redo-only 参数,到最后一次增量备份去掉—redo-only 参数)
3),对整体的基础备份进行恢复,回滚那些未提交的数据
恢复基础备份(注意这里一定要加 --redo-only 参数,该参数的意思是只应用 Xtrabackup日志中已经提交的事务数据,不回滚还未提交的数据):
#innobackupex --apply-log --redo-only --use-memory=5G /data2/backup/hotbackup/full
将增量备份incremental_one 应用到基础备份full:
#innobackupex --apply-log --redo-only --use-memory=5G /data2/backup/hotbackup/full --incremental-dir=/data2/backup/hotbackup/incremental_one/
将增量备份 incremental_two 应用到基础备份base (注意最后一个增量备份时需要去掉 –-redo-only 参数,回滚Xtrabackup日志中那些还未提交的数据)
#innobackupex --apply-log --use-memory=5G /data2/backup/hotbackup/full --incremental-dir=/data2/backup/hotbackup/incremental_two/
把所有合在一起的基础备份整体进行一次apply操作,回滚未提交的数据:
#innobackupex –apply-log --use-memory=5G /data2/backup/hotbackup/full
把恢复完的备份复制到数据文件目录中,赋权,然后启动MySQL数据库:
#mysqladmin -S /data/socket/mysql3306.sock shutdown
#mv /data/mysql3306/data /data/mysql3306/data_bak
#mkdir /data/mysql3306/data
#innobackupex --defaults-file=/data/config/my3306.cnf --copy-back --rsync /data2/backup/hotbackup/full/
#chown -R mysql.mysql /data/mysql3306/data
#/usr/local/mysql/bin/mysqld_safe --defaults-file=/data/config/my3306.cnf --user=mysql &
检验恢复后的数据一致性。
以上是完全恢复。