MySQL高可用架构

MySQL高可用架构
1.主从架构中,从库写数据之后,主库依然能同步数据到从库.
2.忽略的数据库复制:
    在主库的配置文件中添加
        binlog_do_db=dbname(多个)
        binlog_ignore_db=ignoreDB(多个)
    在从库配置(默认全部db):
        replicate-do-db=dbName
        replicate-rewrite-db=masterDbname -> slaveDbname,主从库名不一致,做映射。
        replicate-wild-do-table=db.table(可以配置多个) 复制的数据库表。默认全部表。
3.从库设置read_only=1避免在从库上写数据。这属性只限制普通用户的读写。
4.设置super_read_only=1 限制super用户写从库。
5.开启Gtid在主节点上gtid_mode=on,enforce_gtid_consistency=on
6.默认主库异步发送binlog到从库,导致主从临时的数据不一致。
7.半同步:同步 + 超时机制。
8.半同步需要在master上加上semisync_master.so到plugin目录,在slave上加上semisync_slave.so到plugin目录。
    安装命令:在MySQL的命令行执行install plugin rpl_semi_sync_slave/master soneme 'semisycn_slave.so'
9.主从架构数据延迟问题解决
    原因:单线程dump binlog,多线程写入数据
    方案:slave多线程dump,在slave上设置slave_parallel_workers 设置大于0的值;
         slave_parallel_type设置成LOGIC_CLOCK--将dump线程设置为多线程。
10.高可用方案
    共同点:监控master,对master进行迁移(通过VIP:虚拟ip),重新配置其他slave对新master的复制。
            通过第三方工具搭建。
    MMM:多主复制,只有一个对外提供服务。只监控/切换主节点--用的比较少。不至此GTID方式。
    MHA:监控主节点,主节点挂了切换为slave节点,最大限度保证数据一致性。需要部署master节点和node节点,master节点单独部署,node节点和mysql实例部署在一起。支持GTID方式。需要定制VIP脚本。
    MGR:MySQL官方提供,一个复制组有多个成功后才算成功。

分库分表:
    垂直分片: 不同的数据存放在不同的库表,根据业务分库。
    水平分片: 相同的数据存放在不同的库表,表结构一致。


ShardingSphere
    sqlNum/maxConnections.per.query = 0/1 内存限制模式 >1 链接限制模式 链接限制模式把所有的数据放到内存进行归并,效率高;内存限制模式,每个链接的数据拿到后在放到内存进行归并,效率低下。
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值