记一次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表示主从已经正常了。