mysql MySQL高可用集群
2020-10-28 本文已影响0人
dylan丶QAQ
起因:在工作中常常要用到mysql,平常只是对数据库crud,并没有认真的了解过她,sql语句也只是会一些最基本的,和常用的,一些不常用的都要去网上百度,即决定学习一下mysql,来了解她,虽然开发很多都是黑盒,但追本溯源总是我们想要的。
1.双主复制
image.png为什么,网上有很多的教程,讲keepalived,都是在局域网或虚拟机上?阿里云ECS不支持浮动IP
- 阿里云提工单,让其开通havip(高可用虚拟ip)
- 到专有VPC网络高可用虚拟IP去创建高可用虚拟IP
- 这个虚拟IP使用在keepalived里,keepalived在阿里服务器上只能设置单播方式
GTID主从同步,从库会和主库进行GTID的⽐比对,如果从库里没有就会从主库的Binlog里取,如果有就不会同步了
双主的情况下会出现什么问题?
需要将双主的自增id初始值设置成不一样
auto_increment_offset=1 #初始值
auto_increment_increment=2 #增长量
- 双主一定要都开启从库binlog写⼊入
log_slave_updates=on
双主配置1
server_id=106
log_bin=/usr/local/binlog/mysql-bin
binlog_format=row
expire_logs_days=10
max_binlog_size=500m
relay_log=/usr/local/relaylog/relay-bin
relay_log_recovery=1
skip_slave_start=on
master_info_repository=TABLE
relay_log_info_repository=TABLE
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
binlog-ignore-db=sys
replicate-ignore-db=information_schema replicate-ignore-db=mysql
replicate-ignore-db=performance_schema replicate-ignore-db=sys
slow_query_log=on slow_query_log_file=/usr/local/slowlog/slow.log slow_launch_time=5
gtid_mode=on enforce_gtid_consistency=on
auto_increment_offset=1 auto_increment_increment=2
双主配置2
server_id=107
log_bin=/usr/local/binlog/mysql-bin
binlog_format=row
expire_logs_days=10
max_binlog_size=500m
relay_log=/usr/local/relaylog/relay-bin
relay_log_recovery=1
#read_only=on
skip_slave_start=on
master_info_repository=TABLE
relay_log_info_repository=TABLE
slow_query_log=on
slow_query_log_file=/usr/local/slowlog/slow.log
slow_launch_time=5
gtid_mode=on
enforce_gtid_consistency=on
binlog-ignore-db=information_schema
binlog-ignore-db=mysql
binlog-ignore-db=performance_schema
binlog-ignore-db=sys
replicate-ignore-db=mysql
replicate-ignore-db=performance_schema
replicate-ignore-db=sys
auto_increment_offset=2
auto_increment_increment=2
log_slave_updates=on
2.MHA集群结构
Master High Availiability 是⼀一款开源的MySQL高可用程序
3.MMM集群结构
MMM Master-Master repliaciton manger for MySQL
是一套支持双主的故障切换管理的第三方软件,是Perl开发的,虽然是双主模式,但同一业务时间只允许一个节点进行写入操作
4.其他集群结构
- MySQL+DRDB
- MySQL+MGR架构
- MySQL官方Cluster架构
不要以为每天把功能完成了就行了,这种思想是要不得的,互勉~!