028-86922220

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

MySQL主从复制怎样实现高可用

MySQL主从复制怎样实现高可用,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

十多年的沙湾网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。营销型网站的优势是能够根据用户设备显示端的尺寸不同,自动调整沙湾建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联从事“沙湾网站设计”,“沙湾网站推广”以来,每个客户项目都认真落实执行。

1. MySQL主从复制实现高可用

1.1. 数据库永远是系统最脆弱的环节

1.2. 数据库的HA实现的方式

1.2.1. 高可以计算方式

1.2.2. 数据库高可用的三种方式

1.2.3. 主从实现的逻辑

MySQL主从复制怎样实现高可用

1.3. 配置主从复制

# 慢查询开关
slow_query_log=ON
slow_query_log_file=/usr/local/slowlog/slow.log
slow_launch_time=4
long_query_time=3
# chown -R mysql:mysql /usr/local/slowlog/

binlog设置

server_id=213
log_bin=/usr/local/binlog/mysql-bin  # 只需要给名字前缀
binlog_format=row
expire_logs_days=3
max_binlog_size=200m
# 慢查询开关
slow_query_log=ON
slow_query_log_file=/usr/local/slowlog/slow.log
slow_launch_time=4
long_query_time=3
# chown -R mysql:mysql /usr/local/slowlog/

从库的主从设置

server_id=214
relay_log=/usr/local/relaylog/relay-bin
relay_log_recovery=1 #确保完整性

read_only=on #从服务器只读
skip_slave_start=on #slave重启后不会自己启动复制链路,需要手动启动,建议手动启动,好处是检查无误后启动

master_info_repository=TABLE # 将主从服务的信息保存进表
relay_log_info_repository=TABLE # 将主从服务的信息保存进表
# Master
# 不同步数据库
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
# 只同步某一些数据库
binlog-do-db=icoding_admin

# Slave
# 复制哪些数据库
replicate-do-db=icoding_admin
replicate-do-db=game
# 不复制哪些数据库
replicate-ignore-db=mysql
replicate-ignore-db=information_schema
# Master授权给slave
mysql> use mysql;
mysql> grant replication slave on *.* to 'synuser'@'192.168.0.214' identified by '123456';
mysql> flush privileges;
# Master和Slave的数据库版本要一致,Master<=Slave
mysqldump -uroot -p123456 -h227.0.0.1 --flush-logs --master-data=2 --routines --triggers --events --single-transaction --databases icoding_admin > mydb.sql
#CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000004', MASTER_LOG_POS=154; 就用导出的日志pos
# 在slave上执行
mysql> 
change master to master_host='192.168.0.213',
master_port=3306,
master_user='synuser',
master_password='123456',
master_log_file='mysql-bin.000004',
master_log_pos=154;
主从复制的时候主从数据库的UUID不能一样,如果是镜像方式,启动前将UUID文件删除,会重新创建
cd /var/lib/mysql
cat auto.cnf  # 将他删除
server-uuid=890980d9-b072-11ea-8ab8-00163e03668d
# show slave status \G 可以查看主从复制的状态和日志错误
# 启动slave
mysql> start slave;
# 停止slave
mysql> stop slave;

作业1:搭建一个双主的结构

# 默认GTID是不开启的
# 如果开启以下操作不可用
# create table ..... select * from xxx; 不可用
# 在一个事务里不能创建和删除表
# 在一个事务里更新innodb引擎和myisam不可用
# 从库做备份就无法做到数据的及时恢复
# 让我的从库做到延时同步
mysql> stop slave;
mysql> change master to master_delay=10; # 延时10秒
mysql> start slave;
mysql> show slave status \G;

master(实时slave,延时slave)

看完上述内容,你们掌握MySQL主从复制怎样实现高可用的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读!


本文名称:MySQL主从复制怎样实现高可用
文章网址:http://www.tsicrk.com/article/ipceoe.html

其他资讯

让你的专属顾问为你服务

1.7386s