mysql主从断网可以用半同步_MySQL主从,双主,半同步及SSL复制

本文详细介绍了MySQL的主从复制,包括主从配置、双主复制、GTID主从、半同步复制以及安全复制。重点讨论了半同步复制在高并发环境下的作用,并提及了多级和安全复制的实现,以确保数据一致性与安全性。
摘要由CSDN通过智能技术生成

1. 主从复制 (主写从读)

主服务器:

1、改server-id 配置文件中

server-id = 10

2、启用二进制日志 与数据目录分离与权限

log-bin=/tmp/binlogs/mysql-bin

3、创建有复制权限的帐号

grant replication client, replication slave on *.* to repl@'172.16.%.%' identified by 'repl';

flush privileges;

.

从服务器:

1、改server-id 配置文件中

server-id = 200

2、启用中继日志

relay-log=/tmp/relaylogs/relay-bin

# 关闭二进制日志

3、连接主服务器

change master to master_host='172.16.43.200',master_user='repl', master_password='repl', master_log_file='mysql-bin.000001', master_log_pos=312;

4、启动复制线程

start slave;

.

使用场景:

常见,适合于多重应用场景,从服务器位置的变化而变化

.

主从复制演进

--多从复制(演进多个从服务器,从服务器server-id一定要不一样)

使用场景: 1 台远程容灾 1 台关键本地主备 1 台开发测试学习之用

.

2. 双主复制 (互为主从,可读可写)

配置注意:

service-id 不可相同

均开启二进制日志与中继日志

log-bin=/data/binlogs/mysql-bin

relay-log=/data/relaylogs/relay-log

均授权复制账号给对方

grant replication client, replication slave on *.* to repl@'172.16.%.%' identified by 'repl';

flush privileges;

均连接对方服务器

change master to master_host='172.16.43.200',master_user='repl', master_password='repl', master_log_file='mysql-bin.000001', master_log_pos=312;

均启动复制线程

start salve;

.

*** 自动增长列的配置要隔开

auto-increment-offset = 1

auto-increment-increment = 2

*** 数据不一致时,需要手动同步(利用二进制)

.

使用场景:

远程办公,两地职权相等

.

双主复制演进

--多源复制 -- mysql 5.6

多源需要加入不同的connection_name

例: change master 'connection_name' ...

多源复制操作需要在不同库之间操作

使用场景:

数据收集,中央集权式

.

--环形复制

注意双主模型的配置即可

.

3. GTID主从 -- mysql 5.6+ MariaDB 10.0+

配置过程

主服务器:

1. 配置文件中新增

log-slave-updates=true

master-info-repository=TABLE

relay-log-info-repository=TABLE

sync-master-info=1

slave-parallel-threads=2

binlog-checksum=CRC32

master-verify-checksum=1

slave-sql-verify-checksum=1

binlog-rows-query-log_events=1

report-port=3306

report-host=master.king.com

2. 创建有复制权限的帐号

grant replication client, replication slave on *.* to repl@'172.16.%.%' identified by 'repl';

flush privileges;

.

从服务器:

1. 配置文件中

与主服务器无异,唯一不同server-id

2. 连接主服务器

change master to master_host='172.16.43.200', master_port=3306, master_user='repl', master_use_gtid=cuurent_pos;

3. 启动从服务器

start slave;

.

4. 半同步复制 (在一主多从的场景中,多从的一致复制状态回馈变成了不小的延迟

为了解决这个问题,出现了半同步的快速响应)

.

主服务器:

install plugin rpl_semi_sync_master soname 'semisync_master.so';

show global variables like '%semi%';

set global rpl_semi_sync_master_enabled=ON;

set global rpl_semi_sync_master_timeout=1000;

.

从服务器:

install plugin rpl_semi_sync_slave soname 'semisync_slave.so';

set global rpl_semi_sync_slave_enabled=ON;

stop slave;

start slave;

.

在主服务器验正半同步复制是否生效:

show global status like '%semi%';

.

使用场景:

适合高并发快速响应用户的环境

.

5. 多级复制 (中间节点必须开启二进制日志与中继日志)

.

多级复制演进

--多级分发复制

中间分发节点的库类型为blackhole,仅保存二进制,为其他从复制节点做分发

.

6. 安全复制 (主服务器(CA)开启需求验证,客户端发送由服务器颁发的证书)

主服务器:

1. 配置文件中加入

ssl-ca=/usr/local/mysql/ssl/cacert.pem

ssl-cert=/usr/local/mysql/ssl/master.crt

ssl-key=/usr/local/mysql/ssl/master.key

2. 配置文件注意修改 server-id

3. 登陆服务器并授权

grant replication client, replication slave on *.* to repl@'172.16.%.%' identified by 'repl' require ssl;

flush privileges;

.

从服务器:

1. 配置文件中

与主服务器无异,不同是server-id与证书信息

2. 连接服务器时指明证书信息

change master to master_host='172.16.43.200',master_user='repl', master_password='repl', master_log_file='mysql-bin.000001', master_log_pos=312, master_ssl=1, master_ssl_ca='/usr/local/mysql/ssl/cacert.pem',master_ssl_cert='/usr/local/mysql/ssl/slave.crt',master_ssl_key='/usr/local/mysql/ssl/slave.key';

3. 启动服务器

start slave

.

测试:

查看ssl状态在主从上

show slave status\G -> ssl这些项

使用mysql --ssl-ca=/path --ssl-cert=/path --ssl-key=/path信息登陆主服务器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值