聊一聊mycat数据库集群系列之双主双重实现的问题

本文介绍了mycat数据库集群中双主多重实现的配置步骤和注意事项,详细讲解了如何设置mysql的安装目录、数据存放目录、主从复制、写入磁盘策略、binlog日志同步等功能,确保两台主机之间的数据同步,以实现高可用性。通过配置多个数据库实例,调整自增长字段增量和起始值,避免冲突,以及设置同步数据库,确保在任何一台数据库出现问题时,系统仍能正常运行。
摘要由CSDN通过智能技术生成

聊一聊mycat数据库集群系列之双主双重实现

最近在梳理数据库集群的相关操作,现在花点时间整理一下关于mysql数据库集群的操作总结,恰好你又在看这一块,供一份参考。本次系列终结大概包括以下内容:多数据库安装、mycat部署安装、数据库之读写分离主从复制、数据库之双主多重、数据库分库分表。每一个点,有可能会对应一篇或者多篇文章,由于还要继续上班工作,所以本系列分享预计持续时间需要10天左右,有兴趣的您可以持续关注。我是一个菜鸟,如果写的不好的地方,望多多指点和包涵。

好了,不逼逼了,直接进入本次的主题:mycat双主双重实现。在前的几篇文章中,我们已经完整的介绍了主从备份,读写分离实现。但是在实际生产中,为了系统的高可用,主从备份是远远不够用的,比如:要是主挂了,那么整个系统的写数据都挂了,如果读数据库挂了,那怎么整个系统的读操作也就挂了,为了实现系统的高可用,在实际项目中,我们会搭建至少搭建双主多重。

一、简介

数据库集群的方式有多种 ,前面的介绍的一种是主从复制,读写分离,这一种方式在一般的系统已经够用了,但是对系统可用性要求很高的系统,这样是会有缺陷的,原因是:主只有一个,万一主挂了呢?那系统的所有读操作都将被中断,系统不能提供写服务,当重挂了,系统不同提高读服务,所以无论那一台数据库挂了,系统都会受到影响。对于高可用的系统,那是不行的,比如:电商系统等等。不急不急,其实也很简单,一台不够,那就多台就解决问题了:双主多重,双主:主要指的是两台主机(一主一备),两台主机相互间要同步数据,其中一台挂了另外一台可以正常运行。这样能够大大提升系统的高可用。

本次以双主4重来做实例练习,在同一台服务器上,通过不同端口来区分不同的数据库,具体的数据配置如下:

服务器名称

端口

备注

Master_3306

3306

第一台主机,需要和第二台主机(主备机)同步数据

Slave1_3307

3307

第一台主机对应的第一台重机

Slave1_3308

3308

第一台主机对应的第二台重机

Master_3309

3309

第二台主机(主备机),需要和第一台主同步数据

Slave1_3310

3310

第二台主机对应的第一台重机

Slave1_3311

3311

第二台主机对应的第二台重机
二、数据库环境准备

     双主多重的在原理上,和上一篇说的主从备份的原理都是一样的,双主双从只是在原来的基础上,针对主机和重机都增加了对于的备机。主机的有两个数据库实例,其实两个的主备的角色是相互的,当一台机器挂了,另外一台机器就充当了主机。所以最终数据的体现效果就是,所有主机和从机都要保持数据一致。为了达到这一目录,在备份上需要策略如下:两台主机间都要相互同步、每一台主机对于的重机都需要同步对应的主机数据。最终的数据同步关系为:

3306 与 3307 相互数据同步

3308、3309 都要同步3306的数据

3310、3311 都要同步3307的数据

在配置文件上和上一篇的配置原理一样,只是针对两个主机需要新增一个配置节点:log-slave-updates:在作为从库的时候,有写入操作也要更新二进制文件。

下面简单罗列每一个数据库的my.ini的配置文件
3306配置文件
复制代码

[Client]
port = 3306
[mysqld]
#设置3306端口
port = 3306

设置mysql的安装目录

basedir=C:\Program Files (x86)\MySQL\MySQL Server 8.0_3306

设置mysql数据库的数据的存放目录

datadir=C:\Program Files (x86)\MySQL\MySQL Server 8.0_3306\data

允许最大连接数

max_connections=200

服务端使用的字符集默认为8比特编码的latin1字符集

character-set-server=utf8

创建新表时将使用的默认存储引擎

default-storage-engine=INNODB

主从复制设置

设置服务id,注意改id值在同一个数据库集群中要保持唯一

server-id = 3306

写入磁盘策略 该参数的有效值有 0、1、2

默认值为1,在实际使用过程中,为了效率,我们一般会在设置为2

innodb_flush_log_at_trx_commit=2

开启binlog日志同步功能

这个参数直接影响mysql的性能和完整性。

sync_binlog=0

在作为从库的时候,有写入操作也要更新二进制文件

log-slave-updates

二进制日志保留天数

expire_logs_days=180

binlog日志文件名(可以任意命名)

log-bin=mysql-bin

表示自增长字段每次递增的量,其默认值是1,取值范围是1 … 65535

auto_increment_increment=2

表示

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值