xtrabackup备份恢复

Posted by wukaiqiang; tagged with none

生产环境使用最新版本的xtrabackup版本,鉴于xtrabackup 8.0版本移除命令,推荐使用xtrabackup命令进行备份和还原。

安装

在percona官方下载centos版本的rpm包,使用yum安装(示例):
yum -y localinstall percona-xtrabackup-80-8.0.1-2.alpha2.el7.x86_64.rpm
sudo yum install https://repo.percona.com/centos/7/RPMS/noarch/percona-release-0.1-8.noarch.rpm

sudo percona-release enable tools testing
yum install percona-xtrabackup

  • 全量备份:

1.全量备份
xtrabackup --defaults-file=/etc/my.cnf --host=172.16.1.52 --user=root --password=xxxyyy --port=3310 --backup --target-dir=/data/backup/
或者:使用参数--datadir替换掉参数--defaults-file.
# xtrabackup --host=172.16.1.52 --user=root --password=xxxyyy --port=3310 --datadir=/data/crm/ --backup --target-dir=/data/backup/

2.数据恢复:
2.1停止掉运行的数据库实例:
# /etc/init.d/mysqld_multi stop 3310
2.2 准备:
xtrabackup --host=172.16.1.52 --user=root --password=xxxyyy --port=3310 --prepare --target-dir=/data/backup/
2.3 拷回数据:
xtrabackup --host=172.16.1.52 --user=root --password=xxxyyy --port=3310 --datadir=/data/crm --copy-back --target-dir=/data/backup/
2.3 修改目录属性启动数据库:
chown -R mysql.mysql /data/crm
chmod -R 755 /data/crm
2.4 启动数据库实例:
/etc/init.d/mysqld_multi start 3310

2.5 若有主从的问题可以查看备份目录下的文件:
# cat xtrabackup_binlog_pos_innodb
crm_bin.001282 1049711778

  • 增量备份:

全量备份的目录为:mkdir -p /data/backup
增量备份的目录为: mkdir -p /data/backupIncr

  1. 备份操作之前需要停止掉数据库:

1.备份操作:
1.1.全量备份:
xtrabackup --defaults-file=/etc/my.cnf --host=172.16.1.52 --user=root --password=xxxyyy --port=3310 --backup --parallel=3 --target-dir=/data/backup/
1.2.增量备份:
xtrabackup --defaults-file=/etc/my.cnf --host=172.16.1.52 --user=root --password=xxxyyy --port=3310 --backup --parallel=3 --target-dir=/data/backupIncr --incremental-basedir=/data/backup

2.恢复操作:
2.1 准备全备份的日志:
xtrabackup --prepare --apply-log-only --target-dir=/data/backup
2.2 准备增量备份的日志:
xtrabackup --prepare --apply-log-only --target-dir=/data/backup --incremental-dir=/data/backupIncr
2.3 全备份准备:
xtrabackup --prepare --target-dir=/data/backup
2.4 拷回数据:
xtrabackup --host=172.16.1.52 --user=root --password=xxxyyy --port=3310 --datadir=/data/crm --copy-back --target-dir=/data/backup/

2.5 修改数据目录的权限和属性:
chown -R mysql:mysql /data/crm
chmod -R 755 /data/crm

2.6 启动实例:
/etc/init.d/mysqld_multi start 3310