政务信息系统网站建设规范,品牌推广营销方案,江苏省住房和城乡建设局网站,东莞网站排名优化seo接上一篇#xff1a;企业实战_06_MyCat 常用的分片算法 https://gblfy.blog.csdn.net/article/details/118770261 文章目录一、 环境准备1. 主从复制搭建流程2. 服务器分布二、 MySql 主机节点操作如下2.1. 创建数据库2.2. 初始化表结构及数据2.3. 验证2.4. 数据备份2.5. 脚本… 接上一篇企业实战_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 -ecreate database imooc_db2.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;操作记录
[rootnode1 ~]# 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
[rootnode1 ~]#2.4. 数据备份
将imooc_db的表、数据、存储过程、触发器、事件备份成一个名称叫bak_imooc.sql的文件中
mysqldump --master-data2 --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节点
[rootnode1 ~]# scp bak_imooc.sql root192.168.92.102:/root2.6. 异常解决方案
mysqldump备份报Binlogging on server not active的解决
三、node2节点
3.1. 创建order_db数据库
# 创建order_db数据库
mysql -uroot -p -ecreate database order_db3.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_repl192.168.92.% identified by 123456; 4.3. 账号授权
给主从复制的账号赋予操作所有对象的replication slave权限 grant replication slave on *.* to im_repl192.168.92.%; 五、 创建复制链路
在node2节点操作
5.1. 登陆数据库
mysql -uroot -p 5.2. 查看复制链路帮助
\h change master to5.3. 建立复制的链路
change master to master_host192.168.92.101,master_userim_repl,master_password123456,MASTER_LOG_FILEmysql-bin.000001, MASTER_LOG_POS154;master_host:主节点的ipmaster_user在主节点创建数据复制同步的用户master_password主从复制用户的密码MASTER_LOG_FILE同步开始的时间点(开始同步的文件名开始复制日志的事务点)这个记录在备份同步的文件中
[rootnode2 ~]# more bak_imooc.sql # 内容
CHANGE MASTER TO MASTER_LOG_FILEmysql-bin.000001, MASTER_LOG_POS154; 异常解决方案(没遇到则跳过) Slave is not configured or failed to initialize properly. You must at least set --server-id
5.4. 查看链路
show slave status \G5.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 filter7.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