持久化存储-MySql拓展-Master-Master

为了尽可能的降低系统停止写入的时间,最佳的方案就是采用Dual-Master架构,即Master-Master架构。


所谓的Dual-Master,实际上就是两台MySQL互相作将对方作为Master,自己作为对方的Slave。

这样任何一台数据库服务器上的数据变更,都会通过MySQL的复制机制同步到另一台服务器上。

由于MySQL在记录Binary log时,记录了当前的server-id,server-id在我们配置MySQL时就已经设置好了。

一旦有了server-id,MySQL就能够很容易的判断最初的写入是在那台服务器上发生的,MySQL不会将复制所产生的变更记录到Binary Log,这样就避免了服务器间数据的循环复制。

当然,我们搭建Dual-Master架构,并不是让两台Master都提供写入服务,因为这样会导致一些数据写入时数据不一致的问题。例如:加入Master A和Master B几乎同时对一条数据进行了更新,对Master A的更新比对Master B的稍微快一点点,当对Master A的更新最终同步到Master B时, 老版本的数据会把版本更新的数据覆盖,而且不会抛出异常,从而导致数据不一致的现象发生。

在通常情况下,我们只开启一台Master的写入,另一台Master仅仅Stand By或者作为读库开放,这样可以避免数据写入的冲突,防止数据不一致的情况发生。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
sentinel-mysql规则持久化是指将sentinel对mysql实例所设置的规则信息进行持久化存储,以便在重启sentinel或发生故障时能够恢复规则配置。 sentinel是一个监控和管理mysql主从复制集群的工具,通过对主从节点进行心跳监测、故障切换等操作来保证系统的高可用性。在配置了sentinel后,我们可以通过sentinel命令行工具或API对mysql实例设置一些规则,如故障切换策略、实例监控参数等。 然而,如果sentinel的规则配置信息无法进行持久化存储,那么在重启sentinel或发生故障时,之前设置的规则信息将会丢失,导致系统的稳定性和安全性受到影响。因此,持久化sentinel-mysql规则是非常重要的。 持久化sentinel-mysql规则的方法有多种,比较常用的有以下几种: 1. 将规则配置信息存储在磁盘文件中:可以将sentinel配置文件中的规则信息保存在一个磁盘文件中,当sentinel启动时会读取该文件,并根据其中的配置信息进行规则设置。这样就可以实现规则的持久化存储和恢复。 2. 利用数据库进行规则持久化:可以将sentinel的规则配置信息存储在一个专门的数据库中,比如将规则信息存储MySQL或Redis数据库中。当sentinel启动时,会从数据库中读取规则配置信息,并进行相应的规则设置。 3. 使用外部存储系统进行规则持久化:可以利用一些外部存储系统,如etcd、ZooKeeper等,将sentinel的规则配置信息存储在其中。这样可以实现规则信息的高可用性和分布式管理,同时可以通过监听机制及时感知配置的变化并及时更新规则。 无论使用哪种方法,持久化sentinel-mysql规则是非常重要的,它可以保证系统在重启和故障恢复时能够及时恢复原有的规则配置,确保系统的稳定性和可用性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值