第一阶段

一、数据的初始化

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 迁移并搭建主从(实践)的更多相关文章

  1. 企业运维 | MySQL关系型数据库在Docker与Kubernetes容器环境中快速搭建部署主从实践

    [点击 关注「 WeiyiGeek」公众号 ] 设为「️ 星标」每天带你玩转网络安全运维.应用开发.物联网IOT学习! 希望各位看友[关注.点赞.评论.收藏.投币],助力每一个梦想. 本章目录 目录 ...

  2. Mysql集群搭建(多实例、主从)

    1 MySQL多实例 一 .MySQL多实例介绍 1.什么是MySQL多实例 MySQL多实例就是在一台机器上开启多个不同的服务端口(如:3306,3307,3308),运行多个MySQL服务进程,通 ...

  3. ubuntu 下 mysql数据库的搭建 及 数据迁移

    1.mysql的安装 我是使用apt-get直接安装的 :sudo apt-get install mysql-server sudo apt-get install mysql-client 2.配 ...

  4. 基于GTID搭建主从MySQL

    目录 基于gtid搭建主从MySQL 一.GTID的使用 二.GTID的简介 三.GTID的构成 四.查看GTID的执行情况 4.1 gtid_executed 4.2 gtid_own 4.3 gt ...

  5. 重要参考文档---MySQL 8.0.29 使用yum方式安装,开启navicat远程连接,搭建主从,读写分离(需要使用到ProxySQL,此文不讲述这个)

    yum方式安装 echo "删除系统默认或之前可能安装的其他版本的 mysql" for i in $(rpm -qa|grep mysql);do rpm -e $i --nod ...

  6. CentOS 7.4 MySQL 5.7.20主从环境搭建(M-S)

    MySQL主从原理: 一,master记录二进制日志,在每个事务更新数据完成之前,master在二进制日志中记录这些改变.mysql将事务写入二进制日志,即使事务中的语句都是交叉执行的.在事件写入二进 ...

  7. MySQL迁移[转]

    http://dbarobin.com/2015/09/15/migration-of-mysql-on-different-scenes/ MySQL 迁移方案概览 MySQL 迁移无非是围绕着数据 ...

  8. 腾讯云-ASP.NET Core+Mysql+Jexus+CDN上云实践

    腾讯云-ASP.NET Core+Mysql+Jexus+CDN上云实践.md 开通腾讯云服务器和Mysql 知识点: ASP.NET Core和 Entity Framework Core的使用 L ...

  9. MySQL集群搭建方案(PXC)

    服务器快过期了,清一点库存,把运维这块的知识复习下 为什么要搭MySQL集群 技术层面上,传统的单节点数据库,万一宕机了,就凉凉了.容灾性能差.抗并发能力有限,数据量大的时候查询有瓶颈.学习层面上,作 ...

随机推荐

  1. torchvision库简介(翻译)

    部分跟新于:4.24日    torchvision 0.2.2.post3 torchvision是独立于pytorch的关于图像操作的一些方便工具库. torchvision的详细介绍在:http ...

  2. sqler sql 转rest api 的docker 镜像构建(续)使用源码编译

    sqler 在社区的响应还是很不错的,已经添加了好多数据库的连接,就在早上项目的包管理还没有写明确, 下午就已经有go mod 构建的支持了,同时也调整下docker 镜像的构建,直接使用git cl ...

  3. memsql kafka集成

    memsql 可以加载s3,文件系统,kafka.hdfs 系统的数据,测试使用kafka 环境使用 docker-compose 运行,新版本的需要申请license,参考链接: https://w ...

  4. create-react-app 搭建的项目中,引入 webpack-bundle-analyzer 打包分析

    安装npm intall webpack-bundle-analyzer --save-dev 在 config/webpack.config.prod.js 文件(推荐)或 config/webpa ...

  5. git add -A /git add -u/git add .的用法

    git的指令详解 在git中有好多的指令,但是今天这几个指令就很容易忘记而且还容易混淆 git add -u <==> git add –update 提交所有被删除和修改的文件到数据暂存 ...

  6. js判斷是否是正整數

    var curt_page = $("input[name='curt_page']").val(); if (!(/(^[1-9]\d*$)/.test(curt_page))) ...

  7. Iris花逻辑回归与实现

    Iris花的分类是经典的逻辑回归的代表:但是其代码中包含了大量的python库的核心处理模式,这篇文章就是剖析python代码的文章. #取用下标为2,3的两个feture,分别是花的宽度和长度: # ...

  8. HanLP代码与词典分离方案与流程

    之前在spark环境中一直用的是portable版本,词条数量不是很够,且有心想把jieba,swcs词典加进来, 其他像ik,ansi-seg等分词词典由于没有词性并没有加进来. 本次修改主要是采用 ...

  9. AXI Quad SPI

    AXI Quad SPI 信息来源

  10. JavaScript学习总结(二、隐式类型转换、eval())

    一.(避免)隐式类型转换 console.log(false == 0);   //logs true; console.log(false === 0);   //logs false; conso ...