MySQL主从,双主,半同步及SSL复制

本文涉及的产品
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS AI 助手,专业版
简介:























1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
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 信息登陆主服务器





     本文转自My_King1 51CTO博客,原文链接:http://blog.51cto.com/apprentice/1396672 ,如需转载请自行联系原作者




相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
安全 关系型数据库 MySQL
如何将数据从MySQL同步到其他系统
【10月更文挑战第17天】如何将数据从MySQL同步到其他系统
1817 0
|
3月前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
584 5
|
10月前
|
关系型数据库 MySQL Shell
MySQL 备份 Shell 脚本:支持远程同步与阿里云 OSS 备份
一款自动化 MySQL 备份 Shell 脚本,支持本地存储、远程服务器同步(SSH+rsync)、阿里云 OSS 备份,并自动清理过期备份。适用于数据库管理员和开发者,帮助确保数据安全。
|
9月前
|
存储 Oracle 关系型数据库
MySQL 8.4 配置SSL组复制(八个步骤)
MySQL 8.4 配置SSL组复制(八个步骤)
653 0
|
监控 关系型数据库 MySQL
Flink CDC MySQL同步MySQL错误记录
在使用Flink CDC同步MySQL数据时,常见的错误包括连接错误、权限错误、表结构变化、数据类型不匹配、主键冲突和
527 17
|
消息中间件 canal 关系型数据库
Maxwell:binlog 解析器,轻松同步 MySQL 数据
Maxwell:binlog 解析器,轻松同步 MySQL 数据
1536 11
|
SQL 存储 关系型数据库
Mysql主从同步 清理二进制日志的技巧
Mysql主从同步 清理二进制日志的技巧
190 1
|
消息中间件 关系型数据库 MySQL
实时计算 Flink版产品使用问题之使用CTAS同步MySQL到Hologres时出现的时区差异,该如何解决
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
SQL 存储 关系型数据库
实时计算 Flink版产品使用问题之同步MySQL多张表的过程中,内存释放依赖于什么
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
7月前
|
安全 数据建模 应用服务中间件
阿里云SSL证书价格、证书类型及免费版证书申请和证书部署教程参考
阿里云SSL证书有收费版也有免费版,收费版DV域名级SSL类型405元起,免费版证书为DV域名级SSL类型,每个实名个人和企业主体在一个自然年内可以一次性领取20张免费证书。本文为大家详细介绍阿里云SSL证书价格情况,包括不同域名类型、证书类型、证书等级和证书品牌的相关收费标准,以及免费版证书的申请和部署教程参考。

推荐镜像

更多