企业实战_07_MyCat 搭建Mysql 一主一从复制环境

接上一篇:企业实战_06_MyCat 常用的分片算法
https://gblfy.blog.csdn.net/article/details/118770261

文章目录

          • 一、 环境准备
            • 1. 主从复制搭建流程
            • 2. 服务器分布
          • 二、 MySql 主机节点操作如下
            • 2.1. 创建数据库
            • 2.2. 初始化表结构及数据
            • 2.3. 验证
            • 2.4. 数据备份
            • 2.5. 脚本同步
            • 2.6. 异常解决方案
          • 三、node2节点
            • 3.1. 创建order_db数据库
            • 3.2. 将bak_imooc.sql导入到order_db数据库中
          • 四、mysql主从复制账号创建
            • 4.1. 登录数据库
            • 4.2. 创建主从复制的账号
            • 4.3. 账号授权
          • 五、 创建复制链路
            • 5.1. 登陆数据库
            • 5.2. 查看复制链路帮助
            • 5.3. 建立复制的链路
            • 5.4. 查看链路
            • 5.5. 截图如下
          • 六、 常规主从复制和非常规主从复制的区别
            • 6.1. 常规主从复制
            • 6.2. 非常规主从复制
            • 6.3. 解决方案
          • 七、设置过滤链路
            • 7.1. 查看change replication filter命令帮助 数据库过滤
            • 7.2. 设置过滤链路 进行数据库名映射
            • 7.3. 查看链路
          • 八、启动复制链路,并监控
            • 8.1. 启动复制链路
            • 8.2. 查看链路
          • 九、主从复制验证
            • 9.1. 验证思路
            • 9.2. 登录node1节点
            • 9.3. 登录node2节点

一、 环境准备
1. 主从复制搭建流程
第1步备份数据库并记录相关事务节点
第2步在源(主机)数据库中,创建主从复制的用户
第3步在新实例上恢复备份的数据库
第4步在新实例上配置复制链路
第5步如果主机上的库名和从机上的库名不一致时,需要建立过滤链路
第6步在新实例上启动复制链路
2. 服务器分布

数据库架构升级为垂直分库,依次搭建mysql主从复制,一主一从、一主二从、一主三从环境

主机名IP地址角色数据库
node1192.168.92.101MYSQL、mycatimooc_db(主机物理)
node2192.168.92.102MYSQLorder_db(从机物理)
node3192.168.92.103MYSQLproduct_db(主机物理)
node4192.168.92.104MYSQLcustomer_db(从机物理)
二、 MySql 主机节点操作如下

声明:提前启动mysql

2.1. 创建数据库
mysql -uroot -p -e"create database imooc_db"
2.2. 初始化表结构及数据
  • 这里为了演示,找了一个点上项目的表和数据,需要初始化一下
mysql -uroot -p imooc_db < imooc_db.sql 
链接https://pan.baidu.com/s/1s2cFK-ZsQKSbpg8CtWdShw
提取码n8bq
2.3. 验证
# 登录mysql
mysql -uroot -p
输入密码:123456# 查看数据库列表
show databases;# 使用imooc_db数据库
use imooc_db;# 查看当前imooc_db数据库下的表列表
show tables;

操作记录

[root@node1 ~]# mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.7.34 MySQL Community Server (GPL)Copyright (c) 2000, 2021, Oracle and/or its affiliates.Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| imooc_db           |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.01 sec)mysql> use imooc_db;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -ADatabase changed
mysql> show tables;
+-----------------------+
| Tables_in_imooc_db    |
+-----------------------+
| customer_balance_log  |
| customer_inf          |
| customer_level_inf    |
| customer_login        |
| customer_login_log    |
| customer_point_log    |
| order_cart            |
| order_customer_addr   |
| order_detail          |
| order_master          |
| product_brand_info    |
| product_category      |
| product_comment       |
| product_info          |
| product_pic_info      |
| product_supplier_info |
| region_info           |
| serial                |
| shipping_info         |
| warehouse_info        |
| warehouse_proudct     |
+-----------------------+
21 rows in set (0.00 sec)mysql> exit
Bye
[root@node1 ~]#
2.4. 数据备份

将imooc_db的表、数据、存储过程、触发器、事件备份成一个名称叫bak_imooc.sql的文件中

mysqldump --master-data=2 --single-transaction --routines --triggers --events -uroot -p imooc_db > bak_imooc.sql

异常解决方案(没遇到就跳过):
bash: mysqldump: command not found
mysqldump备份报Binlogging on server not active的解决

2.5. 脚本同步

将bak_imooc.sql同步到从机node2节点

[root@node1 ~]# scp bak_imooc.sql root@192.168.92.102:/root
2.6. 异常解决方案

mysqldump备份报Binlogging on server not active的解决

三、node2节点
3.1. 创建order_db数据库
# 创建order_db数据库
mysql -uroot -p -e"create database order_db"
3.2. 将bak_imooc.sql导入到order_db数据库中
mysql -uroot -p order_db < bak_imooc.sql 
四、mysql主从复制账号创建

在MySql主机node1节点上,创建mysql 主从复制的账号

4.1. 登录数据库
 mysql -uroot -p #输入密码:123456
4.2. 创建主从复制的账号
 create user 'im_repl'@'192.168.92.%' identified by '123456'; 
4.3. 账号授权

给主从复制的账号赋予操作所有对象的replication slave权限

 grant replication slave on *.* to 'im_repl'@'192.168.92.%'; 
五、 创建复制链路

在node2节点操作

5.1. 登陆数据库
mysql -uroot -p 
5.2. 查看复制链路帮助
\h change master to
5.3. 建立复制的链路
change master to master_host='192.168.92.101',master_user='im_repl',master_password='123456',MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=154;
  • master_host:主节点的ip
  • master_user:在主节点创建数据复制同步的用户
  • master_password:主从复制用户的密码
  • MASTER_LOG_FILE:同步开始的时间点(开始同步的文件名,开始复制日志的事务点),这个记录在备份同步的文件中
[root@node2 ~]# more bak_imooc.sql # 内容
CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=154;

在这里插入图片描述
异常解决方案(没遇到则跳过):
Slave is not configured or failed to initialize properly. You must at least set --server-id

5.4. 查看链路
show slave status \G
5.5. 截图如下

在这里插入图片描述
Slave_IO_Running: No 和Slave_SQL_Running: No2个参数的状态,可以看出,主从复制链路已经建立好了,但是没有启动。尚未启动,启动之前需要做哪些准备?

六、 常规主从复制和非常规主从复制的区别
6.1. 常规主从复制
  • 主机上的数据库名和从机上的数据库名是一致的。
  • 举个栗子:
    主机上的数据库名叫gblfy_db,从机上的数据库名也叫gblfy_db。

声明:如果主从数据库名都一致的话,可以直接启动复制链路,跳过设置过滤链路。

6.2. 非常规主从复制

在垂直拆分中,当主从复制中,主机上的数据库名和从机上的数据库名不一致,从机上的数据库名,按照我们的业务模块名来命名的,应该做哪些操作呢?

举个栗子:
主机上的数据库名叫imooc_db,从机上的数据库名,根据业务模块来命令的叫order_db。

6.3. 解决方案

使用change replication filter设置即可,通过过滤链路把数据库名进行映射

七、设置过滤链路
7.1. 查看change replication filter命令帮助 数据库过滤
\h change replication filter
7.2. 设置过滤链路 进行数据库名映射
# 主从数据库名映射change replication filter replicate_rewrite_db=((imooc_db,order_db));
7.3. 查看链路
# 查看链路show slave status \G# 日志显示过滤链路
Replicate_Rewrite_DB: (imooc_db,order_db)

注:现在已经建立好了过滤,通过率把数据库名进行了重新命名

八、启动复制链路,并监控
8.1. 启动复制链路
start slave;
8.2. 查看链路
show slave status \G

在这里插入图片描述
正常如下图,都是yes才对
在这里插入图片描述
0)
注:如果遇到mysql主从复制之异常解决— Slave_IO_Running: NO,请:
mysql主从复制之异常解决— Slave_IO_Running: NO

到目前为止,一主一从的复制链路已经创建完成,那如何验证复制链路是否将数据同步到从机上呢?

九、主从复制验证
9.1. 验证思路
案例思路:
1. 登录主机上数据库,在主机上新增或者修改一个表的数据,会自动主从复制
2. 登录从机上数据库,查看在主机上修改一个表的数据,在从机上是否也被更改
3. 如果更改则说明复制链路成功,能正常进行主从复制功能;否则,查看日志,定位异常信息及制定解决方案
9.2. 登录node1节点
#登录数据路
mysql -uroot -p# 显示当前mysql中的所有数据库
show databases;# 使用指定数据库
use imooc_db;# 显示当前使用数据库中的所有的表
show tables;# 查看region_info 的数据
select * from region_info ;
注:显示没有数据# 新增一条数据
INSERT INTO `region_info` VALUES (1, 0, '中国', 0);# 再次查看region_info 的数据
select * from region_info ;

在这里插入图片描述

9.3. 登录node2节点
#登录数据路
mysql -uroot -p# 显示当前mysql中的所有数据库
show databases;# 使用指定数据库
use order_db;# 显示当前使用数据库中的所有的表
show tables;# 查看region_info 的数据
select * from region_info ;

在这里插入图片描述

从上面截图可以看出,在node1节点的imooc_db的region_info表中添加的一条数据,node2节点的order_db的region_info表中也同步了这条数据,目前,一主一从的mysql环境搭建完成。

下一篇:企业实战_08_MyCat 搭建Mysql 一主二从复制环境
https://gblfy.blog.csdn.net/article/details/118651265

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/517793.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实操来了!一文告诉你如何用 Streamlit 和 Heroku 开发 Web

作者 | AJ Gordon责编 | Carol头图 | CSDN 付费下载于视觉中国出品 | CSDN云计算&#xff08;ID&#xff1a;CSDNcloud&#xff09;本文主要介绍如何利用Python的Streamlit库和Heroku云平台来做一个交互式数据分析Web应用。开发环境如下&#xff1a;Windows10系统Anaconda3&am…

阿里第一颗芯片问世,平头哥发布最强AI芯片含光800

阿里巴巴第一颗自研芯片正式问世。9月25日的杭州云栖大会上&#xff0c;达摩院院长张建锋现场展示了这款全球最强的AI芯片——含光800。在业界标准的ResNet-50测试中&#xff0c;含光800推理性能达到78563 IPS&#xff0c;比目前业界最好的AI芯片性能高4倍&#xff1b;能效比50…

企业实战_08_MyCat 搭建Mysql 一主二从复制环境

接上一篇&#xff1a;企业实战_07_MyCat 搭建Mysql 一主一从复制环境 https://gblfy.blog.csdn.net/article/details/118640210 文章目录一、解决同步和数据初始化1. 主节点node1脚本同步2. 数据初始化二、创建复制链路2.1. 登陆数据库2.2. 建立复制的链路2.3. 查看链路2.4. 设…

支付宝放出数字化经营新神器,可提升商家60%消费频次

会员经济俨然成为消费领域的“香饽饽”。 听歌、看视频、购物甚至出行&#xff0c;三百六十行&#xff0c;行行有会员。 本质上&#xff0c;“会员”是商家与消费者之间的“信任关系”&#xff0c;消费者愿意相信商家会让渡更多实惠与便利&#xff1b;商家则希望通过让利换取…

终于,我也到了和 Eclipse 说再见的时候,难说再见

作者 | 程序员小跃责编 | 夕颜头图 | CSDN下载自视觉中国出品 | CSDN博客2011-2020&#xff0c;一段旅程的结束&#xff0c;意味着另一端旅程的全新开始。优秀的赛车手&#xff0c;除了过硬的技术之外&#xff0c;拥有一部性能炸裂的赛车驰骋赛道&#xff0c;随之而来的必然是一…

企业实战_09_MyCat 搭建Mysql 一主三从复制环境

接上一篇&#xff1a;企业实战_08_MyCat 搭建Mysql 一主二从复制环境 https://gblfy.blog.csdn.net/article/details/118651265 文章目录一、解决同步和数据初始化1. 主节点node1脚本同步2. 数据初始化二、创建复制链路2.1. 登陆数据库2.2. 建立复制的链路2.3. 查看链路2.4. 设…

Python开发之:Django基于Docker实现Mysql数据库读写分离、集群、主从同步详解 | 原力计划...

作者 | Pythonicc责编 | 王晓曼出品 | CSDN博客简介1、什么是数据库读写分离读写分离&#xff0c;基本的原理是让主数据库处理事务性增、改、删操作&#xff08;INSERT、UPDATE、DELETE&#xff09;&#xff0c;而从数据库处理SELECT查询操作。数据库复制被用来把事务性操作导致…

基于Flink和规则引擎的实时风控解决方案

对一个互联网产品来说&#xff0c;典型的风控场景包括&#xff1a;注册风控、登陆风控、交易风控、活动风控等&#xff0c;而风控的最佳效果是防患于未然&#xff0c;所以事前事中和事后三种实现方案中&#xff0c;又以事前预警和事中控制最好。 这要求风控系统一定要有实时性…

分辨垃圾材质自动分类 支付宝升级垃圾分类AI回收箱

塑料罐、易拉罐、玻璃瓶分别怎么丢&#xff1f;在今天召开的云栖大会现场&#xff0c;支付宝推出了智能垃圾箱&#xff0c;可对各类不同材质的饮料瓶自动识别、分类丢弃&#xff0c;为行业领先。智能垃圾箱是蚂蚁金服首次在业内推出SKU粒度的垃圾识别技术&#xff0c;借助机器视…

结构化大数据分析平台设计

前言 任何线上系统都离不开数据&#xff0c;有些数据是业务系统自身需要的&#xff0c;例如系统的账号&#xff0c;密码&#xff0c;页面展示的内容等。有些数据是业务系统或者用户实时产生的&#xff0c;例如业务系统的日志&#xff0c;用户浏览访问的记录&#xff0c;系统的…

没错,你离分布式搜索只差一个Elasticsearch入门!

来源 | 沉默王二责编 | Carol封图 | CSDN 付费下载自视觉中国学习真的是一件令人开心的事情&#xff0c;上次分享了Redis 入门的文章后&#xff0c;收到了很多小伙伴的鼓励&#xff0c;比如说&#xff1a;“哎呀&#xff0c;不错呀&#xff0c;通俗易懂&#xff0c;十分钟真的入…

蚂蚁金服总裁胡晓明:科技如何驱动金融从离线走向在线

今天&#xff0c;2019阿里云栖大会在杭州云栖小镇开幕。蚂蚁金服的展区吸引到不少关注金融创新的“同道中人”。 除了亲身体验蚂蚁金服在金融科技领域的创新技术&#xff0c;蚂蚁金服集团总裁胡晓明特别在主论坛发表题为《数字经济时代的金融科技》的主题演讲&#xff0c;分享数…

1万亿次、10亿人、10亿张,科技给生活带来多少改变?

云栖大会精彩进行中&#xff0c;今天&#xff0c;是 Day-2。 一早&#xff0c;阿里技术明星团闪亮登场&#xff01; 贾扬清&#xff1a;阿里巴巴副总裁、阿里云智能计算平台事业部总经理、高级研究员 李飞飞&#xff1a;阿里巴巴副总裁、阿里云智能数据库产品事业部总经理、高级…

“编程能力差,90%输在了数学上!”CTO:其实你们都是瞎努力!

01从未得到过重视的问题一流程序员学数学&#xff0c;二流程序员学算法&#xff0c;低端看高端就是黑魔法。可能有人以为这就是个段子&#xff0c;但有过工作经验的都知道&#xff0c;这其实就是程序员的真实写照&#xff01;想一想&#xff0c;我们学习、求职、工作的场景中&a…

云原生时代|分布式系统设计知识图谱(内含22个知识点)

我们身处于一个充斥着分布式系统解决方案的计算机时代&#xff0c;无论是支付宝、微信这样顶级流量产品、还是区块链、IOT等热门概念、抑或如火如荼的容器生态技术如Kubernetes&#xff0c;其背后的技术架构核心都离不开分布式系统。 为什么要懂分布式架构 系统学习分布式架构…

mysq启动失败

文章目录一、一站式解决1. 问题分析定位二、特殊场景2.1. 问题分析定位2.2. 解决方案2.3. 解决方案2一、一站式解决 1. 问题分析定位 # 找到MySQL的配置文件&#xff0c;复制mysql的数据目录 vim /etc/my.cnf# 进入msyql的数据目录 cd /data/mysql# 查看日志文件 vim mysql.e…

藏不住了,这就是阿里 AI 的真正实力!

不好意思&#xff0c;我要放大招了&#xff01; 在今天的杭州云栖大会上&#xff0c;阿里巴巴首次公布人工智能调用规模&#xff1a; 每天调用超 1万亿 次 服务全球 10亿 人 日处理图像 10亿 张 视频 120万 小时 语音 55万 小时 自然语言 5千亿 句 在AI芯片、AI云服务、AI算…

Error和Exception(异常)

Error和Exception&#xff08;异常&#xff09; 掌握以下三种类型的异常&#xff1a;检查性异常&#xff1a;最具代表的检查性异常是用户错误或问题引起的异常&#xff0c;这是程序员无法预见的。例如打开一个不存在文件时&#xff0c;一个异常就发生了&#xff0c;这些异常在…

Kubernetes 是如何调度的?

作者 | 阿文&#xff0c;责编 | 郭芮头图 | CSDN 下载自东方IC出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;自互联网出现以来 &#xff0c;云计算的概念已经提出了有 50 年。从1957 年&#xff0c;John McCarthy 将计算机中的分时共享概念设计成了一种工具。从此…

# Schedulerx正式登陆Ali-k8s应用目录

简介 分布式任务调度 SchedulerX 是阿里巴巴基于 Akka 架构自研的的分布式任务调度平台&#xff0c;今天正式登陆阿里云容器服务Kubernetes应用目录&#xff0c;支持用户以云原生的方式获取定时、工作流任务编排、分布式批量调度等功能&#xff0c;同时具有高可靠、海量任务、…