MySQL 集群(一)

一、概述

一主多从,可以缓解读的压力,但是一旦主宕机了,就不能写了,所以我们可以采用双主双从架构来改进它的不足。

二、双主双重架构图

架构规划

  • 主master 3307 —> 从slave 3309
  • 主master 3308 —> 从slave 3310
  • 3307 <—> 3308 互为主从
  • 2个写节点,每个写节点下又是2个读节点
  • 三、环境配置

    A、在MySQL主服务器3307配置文件my.cnf里面加入

  • log-bin=mysql-bin
    server-id=3307

  • B、在MySQL主服务器3308配置文件my.cnf里面加入
  • log-bin=mysql-bin
    server-id=3308
  • C、在MySQL从服务器3309配置文件my.cnf里面加入
  • server-id=3309
  • D、在MySQL从服务器3310配置文件my.cnf里面加入
  • server-id=3310
  • E、在第一台主服务器3307的my.cnf文件增加如下配置
  • auto_increment_increment=2
    auto_increment_offset=1 #不一样的点 相当于起始值
    log-slave-updates
    sync_binlog=1
  • F、在第二台主服务器3308的my.cnf文件增加如下配置
  • auto_increment_increment=2
    auto_increment_offset=2 #不一样的点 相当于起始值
    log-slave-updates
    sync_binlog=1
  • G、配置项说明

    auto_increment_increment

  • 控制主键自增的自增步长,用于防止 Master 与 Master 之间复制出现重复自增字段值,通常auto_increment_increment=n,有多少台主服务器,n 就设置为多少
  • auto_increment_offset=1
  • 设置自增起始值,这里设置为1,这样 Master 的 auto_increment 字段产生的数值是:1, 3, 5, 7, …等奇数ID

    注意 auto_increment_offset 的设置,不同的 master 设置不应该一样,否则就容易引起主键冲突,比如 master1 的 offset=1,则 master2 的 offset=2,master3的 offset=3
    log-slave-updates

  • 在双主模式中,log-slave-updates 配置项一定要配置,否则在master1(3307)上进行了更新数据,在 master (3308) 和 slave1 (3309) 上会更新,但是在 slave2 (3310) 上不会更新
  • sync_binlog
  • 表示每几次事务提交,MySQL把binlog缓存刷进日志文件中,默认是0,最安全的是设置为1。sync_binlog=0,当事务提交之后,MySQL不做fsync之类的磁盘同步指令刷新binlog_cache中的信息到磁盘,而让Filesystem自行决定什么时候来做同步,或者cache满了之后才同步到磁盘。sync_binlog=n,当每进行n次事务提交之后,MySQL将进行一次fsync之类的磁盘同步指令来将binlog_cache中的数据强制写入磁盘。
  • 注意

        从库只开启 log-bin 功能,不添加 log-slave-updates 参数,从库从主库复制的数据不会写入log-bin日志文件里。
        开启 log-slave-updates 参数后,从库从主库复制的数据会写入 log-bin 日志文件里。这也是该参数的功能。
        直接向从库写入数据时,是会写入log-bin日志的。
        在自动生成主键的时候,会在已生成主键的基础上按照规则生成,即比存在的值大

    四、服务启动

    进入 /usr/local/mysql-5.7.24/bin 目录,重启四个 MySQL 服务,启动时指定配置文件

  • ./mysqld_safe --defaults-file=/usr/local/mysql-5.7.24/data/3307/my.cnf &
    ./mysqld_safe --defaults-file=/usr/local/mysql-5.7.24/data/3308/my.cnf &
    ./mysqld_safe --defaults-file=/usr/local/mysql-5.7.24/data/3309/my.cnf &
    ./mysqld_safe --defaults-file=/usr/local/mysql-5.7.24/data/3310/my.cnf &

文章链接: https://www.mfisp.com/21061.html

文章标题:MySQL 集群(一)

文章版权:梦飞科技所发布的内容,部分为原创文章,转载请注明来源,网络转载文章如有侵权请联系我们!

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

给TA打赏
共{{data.count}}人
人已打赏
建站教程

mysql8双主双从搭建(二)

2023-6-5 13:13:03

建站教程

MySQL 集群(二)

2023-6-6 16:31:22

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
客户经理
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索

梦飞科技 - 最新云主机促销服务器租用优惠