MySQL 迁移并搭建主从(实践)
第一阶段
一、数据的初始化
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 迁移并搭建主从(实践)的更多相关文章
- 企业运维 | MySQL关系型数据库在Docker与Kubernetes容器环境中快速搭建部署主从实践
		[点击 关注「 WeiyiGeek」公众号 ] 设为「️ 星标」每天带你玩转网络安全运维.应用开发.物联网IOT学习! 希望各位看友[关注.点赞.评论.收藏.投币],助力每一个梦想. 本章目录 目录 ... 
- Mysql集群搭建(多实例、主从)
		1 MySQL多实例 一 .MySQL多实例介绍 1.什么是MySQL多实例 MySQL多实例就是在一台机器上开启多个不同的服务端口(如:3306,3307,3308),运行多个MySQL服务进程,通 ... 
- ubuntu 下 mysql数据库的搭建 及 数据迁移
		1.mysql的安装 我是使用apt-get直接安装的 :sudo apt-get install mysql-server sudo apt-get install mysql-client 2.配 ... 
- 基于GTID搭建主从MySQL
		目录 基于gtid搭建主从MySQL 一.GTID的使用 二.GTID的简介 三.GTID的构成 四.查看GTID的执行情况 4.1 gtid_executed 4.2 gtid_own 4.3 gt ... 
- 重要参考文档---MySQL 8.0.29 使用yum方式安装,开启navicat远程连接,搭建主从,读写分离(需要使用到ProxySQL,此文不讲述这个)
		yum方式安装 echo "删除系统默认或之前可能安装的其他版本的 mysql" for i in $(rpm -qa|grep mysql);do rpm -e $i --nod ... 
- CentOS 7.4 MySQL 5.7.20主从环境搭建(M-S)
		MySQL主从原理: 一,master记录二进制日志,在每个事务更新数据完成之前,master在二进制日志中记录这些改变.mysql将事务写入二进制日志,即使事务中的语句都是交叉执行的.在事件写入二进 ... 
- MySQL迁移[转]
		http://dbarobin.com/2015/09/15/migration-of-mysql-on-different-scenes/ MySQL 迁移方案概览 MySQL 迁移无非是围绕着数据 ... 
- 腾讯云-ASP.NET Core+Mysql+Jexus+CDN上云实践
		腾讯云-ASP.NET Core+Mysql+Jexus+CDN上云实践.md 开通腾讯云服务器和Mysql 知识点: ASP.NET Core和 Entity Framework Core的使用 L ... 
- MySQL集群搭建方案(PXC)
		服务器快过期了,清一点库存,把运维这块的知识复习下 为什么要搭MySQL集群 技术层面上,传统的单节点数据库,万一宕机了,就凉凉了.容灾性能差.抗并发能力有限,数据量大的时候查询有瓶颈.学习层面上,作 ... 
随机推荐
- Properties 类的使用
			定义: 表示一个持久的集合,可以存在流中,或者从流中加载.是Hashtable子类,map集合方法都可以用. 方法的使用: /* * 集合对象 properties继承Hashtable实现了Map接 ... 
- ksonnet 一个简化编写以及部署kubernetes的工具
			ksonnet 是一个基于jsonnet的快速简化kubernetes yaml 配置的工具,可以实现配置的复用 同时也包含一个registry 的概念,可以实现可复用组件的分发,同时支持helm 环 ... 
- e的故事.一个常数的传奇 (Eli Maor 著)
			第1章 约翰*纳皮尔 (已看) 第2章 认知 (已看) 对数运算 第3章 财务问题 (已看) 第4章 若极限存在,则达之 (已看) 一些与e有关的奇妙的数 第5章 发现微积分的先驱 (已看) 第6章 ... 
- lch 儿童围棋课堂 初级篇2  (李昌镐 著)
			第1章 吃子 第2章 死活:实战演练 第3章 劫争 第4章 布局:定式篇 第5章 布局:三线,四线和大场 第6章 布局:布局类型与形势判断 第7章 中盘:分断 第8章 官子:价值的计算 第9章 对杀技 ... 
- C#遍历菜单项
			(1)横向遍历 ToolStripMenuItem foreach (ToolStripMenuItem con in this.MainMenuStrip.Items) { ... 
- promise对象的回调函数resolve的参数为另一个promise对象
			/*如果调用resolve函数和reject函数时带有参数,那么它们的参数会被传递给回调函数. reject函数的参数通常是Error对象的实例,表示抛出的错误: resolve函数的参数除了正常的值 ... 
- LoadRunner手写脚本、检查点、集合点、事务、思考时间
			手写脚本 什么时候要手写? 可以有条件手写脚本的场景有两类: 有接口说明文档 没有借口说明文档,要去录制,录制不了,抓包手写 所需函数 我们这里讲的例子是基于 http 协议的,也是常见的两种请求类型 ... 
- java 中 heap(堆)和stack(栈)的区别
			总结在Java里面Heap和Stack分别存储数据的不同. 区别项 Heap(堆) Stack(栈) JVM中的功能 内存数据区 内存指令区 存储数据 对象实例(注1) 基本数据类型, 指令代码,常量 ... 
- virtualBox 虚拟机下nginx设置不缓存静态文件不起作用解决办法
			最近开发的时候,调整js时会一直使用缓存文件,无法显示改动!nginx配置静态文件add_header Cache-Control no-cache;也不起作用,很苦恼! nginx配置代码:even ... 
- scrapy 项目通过scrapyd部署
			年前的时候采用scrapy 爬取了某网站的数据,当时只是通过crawl 来运行了爬虫,现在还想通过持续的爬取数据所以需要把爬虫部署起来,查了下文档可以采用scrapyd来部署scrapy项目,scra ... 
