mysql8.0 主从架构模式【0到1架构系列】

打印 上一主题 下一主题

主题 790|帖子 790|积分 2370

前提条件



  • 准备3,4,5台虚拟机
  • 祼装mysql8.0








主从架构


常见两种模式“一主多从”和“级联复制”两种,根本都很简朴,都是依赖binlog日志文件举行同步,binlog日志会记载DDL和部分DDL语句,举行同步时从库会重新执行这些语句从而实现主从同步。







步骤1:


设置主/从服务器的server_id,如果不清楚mysql服务器server_id,使用命令SHOW VARIABLES LIKE 'server_id';可以查询,server_id的值没有严格规定,保证全局唯一性即可,server_id值默认是1。
debian服务器编辑命令如下:nano /etc/mysql/my.conf ,参加下面节点,假设主库设置1,从库设置2,保存之后重启数据库systemctl restart mysql

  1. [mysqld]
  2. server-id=1 #主库配置加入
复制代码

  1. [mysqld]
  2. server-id=2 #从库配置加入
复制代码

步骤2(非必要):

主机上执行show master status;显示最新的日志文件和当前位置。




File当前正在写入的二进制日志文件名。

Position当前二进制日志文件的偏移量,表现下一个要写入的位置。

Binlog_Do_DB主服务器上设置的需要记载到二进制日志中的数据库。

Binlog_Ignore_DB主服务器上设置的不需要记载到二进制日志中的数据库。

Executed_Gtid_Set在 GTID 模式下,该属性表现已经执行过的全局事件标识符的集合

步骤3:

从服务器毗连主服务器举行主从同步,在从服务器上面执行如下代码:

  1. CHANGE REPLICATION SOURCE to
  2. SOURCE_HOST='192.168.3.107',
  3. SOURCE_USER='root',
  4. SOURCE_PASSWORD='1234',
  5. SOURCE_LOG_FILE='binlog.000009',
  6. SOURCE_LOG_POS=0;
复制代码

SOURCE_HOST:主库毗连地址

SOURCE_USER:账号

SOURCE_PASSWORD:密码

SOURCE_LOG_FILE:主库当前二进制文件名

SOURCE_LOG_POS:当前二进制日志文件的偏移量

执行完成之后可以通过show REPLICA status;可以查看复制集群状态,通过如下命令可以启动,停息,删除集群。

  1. show REPLICA status; #查看
  2. start REPLICA;       #开始
  3. stop REPLICA;        #暂停
  4. RESET REPLICA ALL;   #删除
复制代码

通过设置SOURCE_HOST地址毗连主库或从库,就可以轻松实现一主多从,或一主一从一从的链式架构。

GTID 模式(推荐)

主从复制中mysql提供一种GTID 模式,SHOW GLOBAL VARIABLES LIKE 'gtid_mode';查看Gtid模式的状态。gtid是一种新的日志格式,gtid每个事件都有一个唯一的GTID,保证了事件在整个复制拓扑中的唯一性,主要与传统日志格式区别就是以事件为单位而传统日志是基于日志位置。

RESET MASTER;重置主库的binlog日志,注意一旦重置日志将丢失所有日志数据,将从00001开始,编辑nano /etc/mysql/my.cnf,各个数据库的server_id按1-5排序下去,主库和从库都需要设置。

  1. [mysqld]
  2. server-id=1
  3. gtid_mode=on
  4. enforce_gtid_consistency=true
复制代码

gtid_mode:开启gtid模式。

enforce_gtid_consistency:欺压GTID同等性,这有助于进步数据的可靠性和同等性,防止数据丢失或损坏。

从库执行如下代码:

  1. CHANGE REPLICATION SOURCE to
  2. SOURCE_HOST='192.168.3.107',
  3. SOURCE_USER='root',
  4. SOURCE_PASSWORD='123',
  5. SOURCE_AUTO_POSITION=1;
复制代码

你会发现SOURCE_LOG_FILE和SOURCE_LOG_POS将不再需要填写,由于gtid的好处之一就是会自动定位日志文件和位置,淘汰设置复杂性。别的的集群管理与传统的命令同等。

  1. #主库常用命令
  2. show master status  #查看主库状态
  3. reset master;       #重置主库binlog日志
  4. #从库常用命令
  5. show replica status;    #查看从库状态
  6. start replica;          #开始同步
  7. stop replica;           #暂停同步
  8. reset replica all;      #重置(删除)全部同步
  9. select * from performance_schema.replication_applier_status_by_worker; #查看同步线程的信息(主要用于查看具体报错信息)
  10. #其它
  11. show variables like 'server_id';         #查看server_id
  12. show global variables like 'gtid_mode';  #查看gtid状态
复制代码

   文章转载自:老猿新码
  原文链接:https://www.cnblogs.com/netcore3/p/18355396
  体验地址:引迈 - JNPF快速开辟平台_低代码开辟平台_零代码开辟平台_流程计划器_表单引擎_工作流引擎_软件架构

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

tsx81428

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表