修改主从复制模式

主从同步有三种复制模式分别是:异步复制、全同步复制、半同步复制。复制模式关系到主从的数据一致性。

异步复制:(Asynchronous replication)主库执行完一次事务后,立即将结果返回给客户端,并不关心从库是否已经接受并处理。

全同步复制:(Fully synchronous replication) 当主库执行完一次事务,而且必须要从库执行了该事务后才将结果返回给客户端。

半同步复制(Semisynchronous replication)介于异步复制和全同步复制之间,当主库执行完一次事务后,等待至少一个从库接收并写入到relay log中财将结果返回给客户端。

综合下来列一张表格进行整理其优点和缺点:

复制模式 优点 缺点
异步复制(Asynchronous replication)(默认) 返回给客户端速度极快。 可靠性低
全同步复制(Fully synchronous replication) 返回给客户端速度较慢 可靠性极高
半同步复制(Semisynchronous replication) 返回给客户端速度快 可靠性高

综合情况来看,建议使用半同步复制模式,既可以保证我们数据的一致性的情况下,也能够保证其速度。

默认是使用的异步复制模式,接下来就进行修改复制模式。

  • 第一步:检查是否允许动态加载模块。

    mysql> show virables like "%have_dynamic_loading%";
    +----------------------+-------+
    | Variable_name        | Value |
    +----------------------+-------+
    | have_dynamic_loading | YES   |
    +----------------------+-------+
    1 row in set (0.00 sec)

    YES :则为允许动态加载模块,如果是NO则不允许,需要修改配置文件指定其为YES即可。

  • 第二步: 安装该插件并设置启用插件(在数据库以命令行设置为临时启用,写入到数据库配置文件则为永久启用)。

    注意需要以root用户进行启用模块,模块共有两个模块,分别是“rpl_semi_sync_master” master模块用于修改主服务器的复制模式,“rpl_semi_sync_slave” 模块用于修改从服务器的复制模式。

    如果主从结构是链式复制(主从从结构)、或者互为主从(主主结构)情况下既为主又为从的服务器需要设置master模块和slave模块。

    在master上安装插件并启用,然后验证是否开启。

    mysql> install rpl_semi_sync_master soname "semisync_master.so";
    mysql> set global rpl_semi_sync_master_enabled=1;
    mysql> show variables like "rpl_semi_sync_master_enabled";
    +------------------------------+-------+
    | Variable_name                | Value |
    +------------------------------+-------+
    | rpl_semi_sync_master_enabled | ON    |
    +------------------------------+-------+
    1 row in set (0.00 sec)

    slave 从节点上安装插件并启用。(这里我这边是主主结构所以这边我需要安装启用master和slave。)

    mysql> install rpl_semi_sync_slave soname "semisync_slave.so";
    mysql> set global rpl_semi_sync_slave_enabled=1;
    mysql> show variables like "rpl_semi_sync_slave_enabled";
    +-----------------------------+-------+
    | Variable_name               | Value |
    +-----------------------------+-------+
    | rpl_semi_sync_slave_enabled | ON    |
    +-----------------------------+-------+
    1 row in set (0.00 sec)

    虽然在命令行中设定了启用但是还是临时的,需要在主配置文件中设置为永久启用,并重新启动mysqld服务。

    sed -i '4a plugin-load="rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so"' /etc/my.cnf
    sed -i '5a rpl-semi-sync-master-enabled = 1' /etc/my.cnf
    sed -i '6a rpl-semi-sync-slave-enabled = 1' /etc/my.cnf
    systemctl restart mysqld

    如果是单独的master则只需要启用master。

    sed -i '4a plugin-load="rpl_semi_sync_master=semisync_master.so;' /etc/my.cnf
    sed -i '5a rpl-semi-sync-master-enabled = 1' /etc/my.cnf

    如果是单独的slave则只需要单独启用slave

    sed -i '4a plugin-load="rpl_semi_sync_master=semisync_slave.so;' /etc/my.cnf
    sed -i '5a rpl-semi-sync-slave-enabled = 1' /etc/my.cnf

原文地址:https://www.cnblogs.com/lqinghua/p/11687636.html

时间: 2024-07-30 06:20:05

修改主从复制模式的相关文章

企业级-Mysql双主互备高可用负载均衡架构(基于GTID主从复制模式)

前言: 原理与思想 这里选用GTID主从复制模式Mysql主从复制模式,是为了更加确保主从复制的正确性.健康性与易配性.这里做的是两服务器A,B各有Mysql实例3310,两个实例间互为主从 主从复制模式采用GTID主从复制模式,在服务器A,B上配置keepalived负载均衡,通过VIP连接数据库,目的是一旦有某数据库宕机,keepalived 就会立即建VIP执行另外一台 健康的数据库实例上,实现快速切换,避免单点故障,从而保证业务的正常运行. 这里只做了 双主+keepalived  ,

取消基本数据的修改——备忘录模式的应用

模式应用背景 在机房收费系统中,有一个修改基本数据的窗体: 因为在文本框中修改数据之后,只要不点击修改按钮,就不会更新到数据库中,所以,个人版中这里的取消按钮是从数据库读取原始数据,再重新加载到窗体上来.这次合作的时候,加入了备忘录模式重新处理这个取消按钮. 如何加入模式 基本思路是这样的: 1,将要保存的BaseData(基本数据类的实体名)作为成员变量放到备忘录类里面,并在备忘录类初始化的时候传入要保存的基本数据. 2,定义发起者用来创建和回恢复备忘录的数据,如果点击了取消后,就用这个类来恢

如何修改情景模式的默认值

一,针对每个情景模式的默认值修改: 1,默认铃声是统一在alps/build/target/product/core.mk文件中设置,其中ro.config.notification_sound表示通知的默认铃声,ro.config.ringtone表示语音来电和视频来电的铃声,若希望语音来电和视频来电分开设置,请参考FAQ08273 [Audio Profile]如何设置视频来电铃的默认铃声: PRODUCT_PROPERTY_OVERRIDES:=\ ro.config.notificati

Linux_修改永久模式命令行

1.终端窗口切换普通用户为root用户 su root 2.进入命令行模式 init 3 3.修改启动模式:命令行模式为永久模式 vi  /etc/inittab 输入i 进入编辑模式 通过上下键或非编辑模式下的快速索引/initdefault,找到 id:5:initdefault: 把数字5修改为数字3 按Esc键 shift+: 输入wq 保存成功

linux用户管理(2)----修改用户模式(usermod,sudo权限等)

修改使用者模式可以使用usermod命令实现. 一.usermod常用命令介绍: -a:              仅和-G一块使用,将用户添加到附属组群. -d:          修改用户登入时的目录,例如一般的用户登录时,默认进入预先设定的主目录,某些时候为了方便登录时就需要进入比较复杂的路径时,可以使用这个选项设置进入时目录. -g:           修改用户所属群组. -G:           修改用户所属的附加群组:在改变用户sudo权限时就可以使用这个选项. -s:    

Linux下破解root口令以及修改用户模式

-----------------------实验一:破解root口令---------------------------- 1.init  1 2.进入图一界面,再进入图二界面,输入single .s.S.1,进入单用户模式. 3.未输入命令就进入了系统,可以更改passwd ,则破解成功.init  5,重新启动. 防止被破解方法: 一.vim /boot/grub/grub.conf 隐藏菜单下添加口令:passwd  magedu (明文的,安全度低) 默认选择启动项title中,在k

在线修改GTID模式

在线修改GTID模式 1. 在每一台机器上执行命令 SET @@GLOBAL.ENFORCE_GTID_CONSISTENCY = WARN; 这是很重要的一步,必须确保服务器上没有违反GTID规范的SQL,否则当设置为GTID模式后, 这些业务SQL会被拒绝执行,建议设置上面变量值间隔一天后errorLog没有警告,才可进行下一步. 2. 在每一台服务器上执行 SET @@GLOBAL.ENFORCE_GTID_CONSISTENCY = ON; 上面参数表示GTID模式下一些SQL会被拒绝执

ALTER SCHEMA - 修改一个模式的定义

SYNOPSIS ALTER SCHEMA name RENAME TO newname DESCRIPTION 描述 ALTER SCHEMA 修改一个模式的定义. 现在它唯一的功能就是重命名模式. 要重命名模式,你必须拥有这个这个模式并且有在该数据库里 CREATE 的权限. PARAMETERS 参数 name  模式的名字 newname  模式的新名字  原文地址:https://www.cnblogs.com/fanweisheng/p/11076150.html

RAC 环境下修改归档模式

RAC环境下的归档模式切换与单实例稍有不同,主要是共享存储所产生的差异.在这种情况下,我们可以将RAC数据库切换到非集群状态下,仅仅在一个实例上来实施归档模式切换即可完成RAC数据库的归档模式转换问题.本文主要描述了由非归档模式切换到归档模式,而由非归档切换的归档步骤相同,不再赘述. [sql] view plain copy print? 1.主要步骤: 备份spfile,以防止参数修改失败导致数据库无法启动 修改集群参数cluster_database为false 启动单实例到mount状态