阿里云服务器ECS    
弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新 [咨询更多]
阿里云存储OSS
简单易用、多重冗余、数据备份高可靠、多层次安全防护安全性更强、低成本 [咨询更多]
阿里云数据库RDS
稳定可靠、可弹性伸缩、更拥有容灾、备份、恢复、监控、迁移等方面的全套解决方案 [咨询更多]
阿里云安全产品
DDoS高防IP、web应用防火墙、安骑士、sll证书、态势感知众多阿里云安全产品热销中 [咨询更多]
阿里云折扣优惠    
云服务器ECS、数据库、负载均衡等产品新购、续费、升级联系客服获取更多专属折扣 [咨询更多]
数据库环境准备
2020-8-19    点击量:

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

  • 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
# 写入磁盘策略 该参数的有效值有 012
# 默认值为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
# 表示自增长字段从那个数开始,他的取值范围是1 .. 65535
auto_increment_offset=1
# 在主主同步配置时,需要将两台服务器的auto_increment_increment增长量都配置为2,而要把auto_increment_offset分别配置为1和2.
# 这样才可以避免两台服务器同时做更新时自增长字段的值之间发生冲突。
# 同步的数据库设置方式有两种:
# binlog_do_db:设置需要同步的数据库
# binlog-ignore-db:设置不需要同步的数据库
#同步的数据库,除此之外别的不同步(和下面binlog-ignore-db二选一)
# binlog_do_db=testdb 
#不同步数据库,除此之外都同步
binlog-ignore-db = information_schema
binlog-ignore-db = mysql
binlog-ignore-db = performance_schema
binlog-ignore-db = sys
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8

3307置文件

 


[Client]
port = 3307
[mysqld]
#设置3307端口
port = 3307
# 设置mysql的安装目录
basedir=C:\Program Files (x86)\MySQL\MySQL Server 8.0_3307
# 设置mysql数据库的数据的存放目录
datadir=C:\Program Files (x86)\MySQL\MySQL Server 8.0_3307\data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 主从复制设置
# 设置服务id,注意改id值在同一个数据库集群中要保持唯一
server-id = 3306
# 写入磁盘策略 该参数的有效值有 012
# 默认值为1,在实际使用过程中,为了效率,我们一般会在设置为2
innodb_flush_log_at_trx_commit=2  
# 开启binlog日志同步功能
# 这个参数直接影响mysql的性能和完整性。
sync_binlog=0
# 表示自增长字段每次递增的量,其默认值是1,取值范围是1 .. 65535
auto_increment_increment=2
# 表示自增长字段从那个数开始,他的取值范围是1 .. 65535
auto_increment_offset=2
# 在主主同步配置时,需要将两台服务器的auto_increment_increment增长量都配置为2,而要把auto_increment_offset分别配置为1和2.
# 这样才可以避免两台服务器同时做更新时自增长字段的值之间发生冲突。
# 在作为从库的时候,有写入操作也要更新二进制文件
log-slave-updates
# 二进制日志保留天数
expire_logs_days=180
# binlog日志文件名(可以任意命名)
log-bin=mysql-bin
# 同步的数据库设置方式有两种:
# binlog_do_db:设置需要同步的数据库
# binlog-ignore-db:设置不需要同步的数据库
#同步的数据库,除此之外别的不同步(和下面binlog-ignore-db二选一)
# binlog_do_db=testdb 
#不同步数据库,除此之外都同步
binlog-ignore-db = information_schema
binlog-ignore-db = mysql
binlog-ignore-db = performance_schema
binlog-ignore-db = sys
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8

3308配置文件


[Client]

port = 3308

 

[mysqld]

#设置3308端口

port = 3308

# 该id主要要保持唯一,后面在设置主从同步的时候会用到

server-id = 3308

# 设置mysql的安装目录

basedir=C:\Program Files (x86)\MySQL\MySQL Server 8.0.21_3308

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

datadir=C:\Program Files (x86)\MySQL\MySQL Server 8.0.21_3308\data

# 允许最大连接数

max_connections=200

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

character-set-server=utf8

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

default-storage-engine=INNODB

 

[mysql]

# 设置mysql客户端默认字符集

default-character-set=utf8

3309配置文件


[Client]
port = 3309
 
[mysqld]
#设置3309端口
port = 3309
# 该id主要要保持唯一,后面在设置主从同步的时候会用到
server-id = 3309
# 设置mysql的安装目录
basedir=C:\Program Files (x86)\MySQL\MySQL Server 8.0.21_3309
# 设置mysql数据库的数据的存放目录
datadir=C:\Program Files (x86)\MySQL\MySQL Server 8.0.21_3309\data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
 
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8

3310配置文件


[Client]
port = 3308
 
[mysqld]
#设置3310端口
port = 3310
# 该id主要要保持唯一,后面在设置主从同步的时候会用到
server-id = 3310
# 设置mysql的安装目录
basedir=C:\Program Files (x86)\MySQL\MySQL Server 8.0.21_3310
# 设置mysql数据库的数据的存放目录
datadir=C:\Program Files (x86)\MySQL\MySQL Server 8.0.21_3310\data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
 
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8

3311配置文件


[Client]
port = 3311
 
[mysqld]
#设置3311端口
port = 3311
# 该id主要要保持唯一,后面在设置主从同步的时候会用到
server-id = 3308
# 设置mysql的安装目录
basedir=C:\Program Files (x86)\MySQL\MySQL Server 8.0.21_3311
# 设置mysql数据库的数据的存放目录
datadir=C:\Program Files (x86)\MySQL\MySQL Server 8.0.21_3311\data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
 
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8

  数据库配置验证    

       数据库双主多重配置验证,主要验证两个主机数据更新是否所有集群中的是所有数据是否都发送对应的改变,如果发送说明配置成功。    

       1、 在3306中创建一个数据test和一个表user    查看其它的库是否都创建了一个库test和一个表user    

       2、 在3307中对表user插入一条数据    查看其余所有库对于的表是否也新增了该数据

联系客服免费领取更多阿里云产品新购、续费升级折扣,叠加官网活动折上折更优惠