一、从官网下载 Percona-XtraBackup-2.4.12-r170eb8c-el7-x86_64-bundle.tar
https://www.percona.com/downloads/Percona-XtraBackup-LATEST/
tar xvf解包后,for f in *.rpm; do yum install -y $f;done即可 (该包有一些依赖包,需要先配置好本地源)
二、本地备份:
innobackupex --defaults-file=/etc/my.cnf --user=数据库账户 --password=数据库密码 本地备份目录
三、将备份上传到另一个主机:
1、配置本地rsync配置文件/etc/rsyncd.conf
uid = root #rsync使用的用户,默认nobody
use chroot = no
max connections = 4 # 超时时间
port = 10873 # 端口
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsyncd.lock
log file = /var/log/rsyncd.log
transfer logging = yes
timeout = 300
ignore nonreadable = yes #忽略io错误
dont compress = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2 # 不再压缩的文件类型
[HjyModel] # 模块名称,唯一
path = /data1/backup/ # 模块在服务端的绝对路径
uid = root
ignore errors
read only = true
auth users = hjy # 远程连接的用户名称
secrets file = /etc/rsyncuser.pass # 密码验证的配置文件
hosts allow = 192.168.132.128 # 允许连接的地址
exclude = /log # 排除不需要传的文件类型
2、创建/etc/rsyncuser.pass
vim /etc/rsyncuser.pass
hjylalala:957001360h # 内容必须为“用户名:密码”
修改该文件的权限
chmod 600 /etc/rsyncuser.pass
3、服务端启动rsyncd服务
systemctl start rsyncd
4、配置客户端,在客户端也同样安装Percona-XtraBackup-2.4.12-r170eb8c-el7-x86_64-bundle.tar中的软件
创建/etc/rsyncuser.pass
# 内容第一行是只有密码,没有用户名
957001360h
5、传输日志文件
rsync -vzrtopgl --protocol=29 --progress --contimeout=10 --delete --port=端口号 --password-file=密码文件地址 用户名@192.168.132.164::模块名 本地路径
# 示例:
rsync -vzrtopgl --protocol=29 --progress --contimeout=10 --delete --port=10873 --password-file=/etc/rsyncuser.pass hjy@192.168.132.164::HjyModel /home/hjy
四、恢复
把xtrabackup生成的目录整个scp到恢复的目标主机
scp -r /data1/backup/ddos-db1/2018-07-22_11-32-44 目标主机IP:/data/backup/mysql
(首先需要删除原mysql_data目录下的所有文件,这里是/data1/mysql/mydata)
使用innobackupex恢复数据
innobackupex --defaults-file=/etc/my.cnf --user=root --password=****** --use-memory=4G --apply-log /data1/backup/ddos-db1/2018-07-22_11-32-44
innobackupex --defaults-file=/etc/my.cnf --user=root --password=****** --copy-back /data1/backup/ddos-db1/2018-07-22_11-32-44
修改恢复数据库mysql_data目录权限
chown -R mysql:mysql /data1/mysql/mydata
启动数据库
/etc/init.d/mysqld start