简介
记录一下自己用xtrabackup恢复从库的经过
一、备份
1.用到的参数介绍
--backup: 指明为备份
--target-dir: 备份的目录
--defaults-file:指明服务器的配置文件,此参数必须作为innobackupex的第一个参数,否则报错
--login-path: 从登录文件中读取此路径,适用于快捷登录如果没有的话需要用到以下参数
--user:该选项表示备份账号。
--password:该选项表示备份的密码。
--port:该选项表示备份数据库的端口。
--host:该选项表示备份数据库的地址。
--prepare:xtrabackup在一份通过--backup 生成的备份进行还原操作,以便准备使用。
--move-back:这个选项与--copy-back相似,唯一的区别是它不拷贝文件,而是移动文件到目的地。这个选项移除backup文件,用时候必须小心。使用场景:没有足够的磁盘空间同事保留数据文件和Backup副本
2.备份
xtrabackup --defaults-file=/etc/mysql/default.my.cnf --login-path=default-root --backup --target-dir=/data/backups/
3.准备备份
xtrabackup --defaults-file=/etc/mysql/default.my.cnf --login-path=default-root --prepare --target-dir=/data/backups/
二、传输备份到从库
scp -rp /data/backups/* IP:/data/backups/
三、清理从库数据
1.停止数据库
systemctl stop mysql@defautl.service
2.清理数据
空间不够的话可以rm
mv /data/bkee/public/mysql/default/data/* /data/dbbak/
四、还原备份并启动数据库
1.还原备份
xtrabackup --defaults-file=/etc/mysql/default.my.cnf --login-path=default-root --move-back --target-dir=/data/backups/
2.授权
chown -R mysql.mysql /data/bkee/public/mysql/default/data/
3.启动数据库
systemctl start mysql@default.service
五、重构主从
1.获取备份最后的binlog文件及position
cat /data/backups/xtrabackup_info|grep position
2.把上述获取到的信息填入change master to
unlock tables;CHANGE MASTER TO MASTER_HOST='master_ip',MASTER_USER='repl',MASTER_PASSWORD='password',MASTER_LOG_FILE='binlog.006011',MASTER_LOG_POS=35382360;start slave;