记一次MySQL远程备份恢复,并重新设置主从过程

远程备份

安装percona-xtrabackup:

yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm
yum install perl-DBI perl-DBD-MySQL perl-Digest-MD5 perl-IO-Socket-SSL perl-TermReadKey
yum install percona-xtrabackup-24

备份,将本地的数据库数据备份到远程机器

innobackupex  --defaults-file=/etc/my.cnf  --defaults-group=mysqld4306 --user=backup --socket=/tmp/mysql_4306.sock  --no-lock  --no-timestamp  --stream=tar ./ | ssh root@120.1.100.100 -p22 \ "cat - > /data/service/mysql_4306.tar"

在远程机器上解压,然后恢复数据(恢复完之后会得到binlog文件的名字和当前binlog序号,下面要用)

tar -xvf mysql_4306.tar
innobackupex --user root --password 'your_mysql_pwd'  --apply-log /data/service/mysql_4306

把数据移动到mysql并修改文件夹用户属性

mv /data/service/mysql_4306/* /data/mysql_db/4306/
chown -R mysql:mysql /data/mysql_db/4306/

启动mysql,并设置主从

/etc/rc.d/init.d/mysqld_multi start 4306

用得到的binlog信息在mysql中重新设置主从(InnoDB: xtrabackup: Last MySQL binlog file position 202221999, file name mysql-bin.071479)

CHANGE MASTER TO MASTER_HOST = '172.31.0.1', MASTER_PORT =4306, MASTER_USER='slave_user', MASTER_PASSWORD='slave_user', MASTER_LOG_FILE='mysql-bin.071479', MASTER_LOG_POS=202221999;

启动从服务

start slave;

查看从库状态

show slave status;

看到两个yes表示主从已经正常了。