不停机迁移数据库方案

一、方案思路

使用xtrabackup做全量备份,然后使用主从复制进行同步

https://www.percona.com/doc/percona-xtrabackup/2.4/installation/yum_repo.html

参考博客:https://segmentfault.com/a/1190000003063874?utm_medium=referral&utm_source=tuicool

参考博客:https://www.cnblogs.com/chenqs/p/7799417.html

参考博客:https://www.cnblogs.com/superfat/p/5267449.html

二、准备

1、安装xtrabackup(数据库源服务器和目标服务器都要安装)

 

三、实施

1、源服务器备份

innobackupex --defaults-file=/etc/my.cnf --socket=/tmp/mysql.sock --user=root --password=123456 --parallel=4 --database=dyb.liveniao.com /data/test

2、保持事务一直性

innobackupex --defaults-file=/etc/my.cnf --socket=/tmp/mysql.sock --user=root --password=123456 --parallel=4 --database=dyb.liveniao.com --apply-log /data/test/{备份的文件夹}

3、将备份好的文件夹复制到目标服务器上

4、目标服务器关闭mysql:systemctl stop mysqld

5、目标服务器数据库数据文件夹清空

mv /data/mysql  /data/mysql_bak

6、创建mysql文件夹

mkdir /data/mysql

chown -R mysql:mysql mysql

7、目标恢复备份

innobackupex --defaults-file=/etc/my.cnf --socket=/tmp/mysql.sock --user=root --password=Mysql123456@  --copy-back /data/test/2019-06-19_18-22-00/

恢复备份以后,再运行:chown -R mysql:mysql mysql

防止服务器启动不起来

8、进行主从复制

(1)、先在源服务器上授权同步账号

GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%' IDENTIFIED BY 'slave_passport';

(2)、获取二进制日志信息

cat /data/test/{备份文件夹}/xtrabackup_binlog_info

(3)、设置从服务器

CHANGE MASTER TO
MASTER_HOST='****',
MASTER_USER='slave',
MASTER_PASSWORD='****',
MASTER_PORT=3306,
MASTER_LOG_FILE='mysql-bin.000347',
MASTER_LOG_POS=444732;

(4)、启动slave

start slave;

show slave status\G;

验证

注意:在配置主从的时候,两台服务器的sever_id一定不能一样,否则主从有问题!

你可能感兴趣的:(mysql)