码迷,mamicode.com
首页 > 数据库 > 详细

MySQL 迁移并搭建主从(实践)

时间:2018-10-18 18:05:02      阅读:169      评论:0      收藏:0      [点我收藏+]

标签:root   移除   pos   backup   路径   mysq   开启   数据同步   loader   

第一阶段

一、数据的初始化

1、老主库

关闭sql_log_bin
set sql_log_bin = off;


创建导出用户
grant all privileges on *.* to ‘dump‘@‘10.50.31.37‘ identified by ‘rooT_258‘;
grant all privileges on *.* to ‘dump‘@‘10.1.21.47‘ identified by ‘rooT_258‘;
grant all privileges on *.* to ‘dump‘@‘172.20.30.16‘ identified by ‘rooT_258‘;
grant all privileges on *.* to ‘dump‘@‘10.50.30.32‘ identified by ‘rooT_258‘;


2、新库

创建备份的路径
cd /
mkdir backup
cd backup
mkdir backup20180817


在新库所在服务器上执行备份老库的操作
mydumper -h 172.17.0.3 --regex="aa.*" -u root -p ‘abc123‘ -r 300000 -G -E -R -v 3 -t 5 -o /data/backup20181018 > /data/mydumper20181018.log 2>&1 &
参数说明:
-u --user 备份所使用的用户
-x, --regex 是同正则表达式匹配 ‘db.table‘
-r, --rows 将表按行分块时,指定的块行数,指定这个选项会关闭 --chunk-filesize
-e, --enable-binlog 启用还原数据的二进制日志
-V, --version 显示版本号
-t, --threads 开启的备份线程数,默认是4
-o, --overwrite-tables 如果要恢复的表存在,则先drop掉该表,使用该参数,需要备份时候要备份表结构


检查备份是否有错误
grep -i error /data/mydumper20181018.log


新库上清空数据库(先删表,后drop数据库)
drop database aa;


关闭binlog,修改/etc/my.cnf文件,找到
log-bin=mysql-bin
binlog_format=mixed
再这两行前面加上#,将其注释掉,再执行/etc/init.d/mysqld restart即可。


用从老库备份的数据初始化新库(如果版本不一致,需要手动从老库导出用户信息,再导入新库)
myloader -S /usr/local/mysql/mysql.sock -u root -p ‘abc123‘ -v 3 -t 10 -e y -d /data/backup20181018 >> /data/myloader20181018.log 2>&1 &


检查导入是否有错误
grep -i error /data/myloader20181018.log

二、数据同步

1、老库

关闭sql_log_bin
set sql_log_bin=off;


创建数据同步用户
grant replication slave ,replication client on *.* to ‘replication‘@‘10.1.12.205‘ identified by ‘Replication!2#‘;
grant replication slave ,replication client on *.* to ‘replication‘@‘10.1.21.118‘ identified by ‘Replication!2#‘;
grant replication slave ,replication client on *.* to ‘replication‘@‘10.50.16.102‘ identified by ‘Replication!2#‘;


2、新库

查看备份数据的mater的位置
cat /data/backup20181018/metadata


修改文件/usr/local/mysql/etc/my.cnf,将service-id设置成和老库不一样
vi /usr/local/mysql/etc/my.cnf


修改uuid,文件位置/data/mysql/data/auto.cnf(也就是数据文件的路径下),移除auto.cnf,重启mysql服务重新生成
mv /mysql/data/auto.cnf ..
service mysqld restart


设置主从
CHANGE MASTER TO MASTER_HOST=‘172.17.0.3‘, MASTER_USER=‘repl‘, MASTER_PASSWORD=‘mysql‘, MASTER_PORT=3306,MASTER_LOG_FILE=‘my-bin.000004‘, MASTER_LOG_POS=154 for channel ‘aa‘;


开启主从并观察同步情况
start slave;
show slave status \G


停止复制stop slave,启动binlog,修改/etc/my.cnf,重启mysql服务
log-bin=mysql-bin
binlog_format=mixed
将这两个参数前面的#去掉
service mysqld restart


重新开启复制
start slave

MySQL 迁移并搭建主从(实践)

标签:root   移除   pos   backup   路径   mysq   开启   数据同步   loader   

原文地址:https://www.cnblogs.com/EikiXu/p/9811764.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!