mysql 主从复制

一、通过二进制文件binlog进行主从同步

开启防火墙3306端口

1.设置主服务器:/etc/my.cnf

log-bin=binlog #二进制文件名称,需要开启

binlog-format=ROW ; # row,statement,mixed mysql默认采用statement

**statement:**主要记录了sql。日志量小。在某些情况如下,会导致数据不一致

**row:**日志会记录每一行的修改,不会出现数据不一致的问题。缺点:批量操作时会产生大量日志。

**mixed:**一般情况下使用statement保存binlog,对于statement无法复制的操作,使用row模式来保存

企业使用:

1.如果生产中使用mysql的特殊功能相对较少(存储过程、触发器、函数)。选择默认的语句模式,statement。

2.如果特殊功能使用的比较少,可以选择mixed模式。

3.如果特殊功能使用的多,并且希望数据最大化一致,使用statement

binlog-do-db=db;需要同步的数据库的名称

show master status:查看主库的二进制文件名称,位置

从库配置:

查看主从状态:

show replica status\G;

查看主从复制是否正常:

Replica_IO_Running:yes

Replica_SQL_Running:yes

1.如何保证主从一致:

bin-log改成row行格式

2.主库在同步到从库时,网络慢导致了主从延迟,从库查不到最新的数据:

主从机器配置一样;

一主多从;

大事务分批操作;

binlog:

binlog会记录所有的逻辑操作,并且采用的是"追加写"的形式,不会像redolog一样去覆盖日志文件

什么情况会使用主从复制:

1.读写分离 2.做数据的热备 3.业务量越来越大,减少磁盘的I/O;

mysql主从同步的三种模式:

1.异步复制:默认的就是异步复制,主库执行完客户端提交的事务后会立即将结果返回给客户端,并不关心从库是否已经接收并处理。

2.同步复制:当主库提交事务之后,所有的从库节点必须收到、apply并且提交这些事务,然后主库线程才能继续做后续的操作。

3.半同步复制:主库执行完客户端提价的事务后不是立刻返回给客户端,而是至少等待一个从库接受并写到relay log中才返回给客户端。

二、基于全局事务标识符GTID

my.cnf:

主库

mysqld

从库:

相关推荐
三不原则12 分钟前
故障案例:数据库慢查询导致交易延迟,AIOps 如何自动定位?
运维·数据库
Elieal16 分钟前
MybatisPlus难懂点
数据库·mybatis
一只专注api接口开发的技术猿24 分钟前
微服务架构下集成淘宝商品 API 的实践与思考
java·大数据·开发语言·数据库·微服务·架构
AC赳赳老秦30 分钟前
Dify工作流+DeepSeek:运维自动化闭环(数据采集→报告生成)
android·大数据·运维·数据库·人工智能·golang·deepseek
明洞日记31 分钟前
【软考每日一练009】计算机系统性能评价:基准程序分类与 TPC 实战案例详解
大数据·数据库
Hoxy.R1 小时前
海量数据库安装部署初体验
服务器·网络·数据库
癫狂的兔子1 小时前
【Python】【爬虫】爬取虎扑网NBA排行数据
数据库·爬虫·python
迷路剑客1 小时前
ES-7.10-高亮HighLight知识点总结
java·数据库·mybatis
程序边界1 小时前
解锁时序数据新玩法:金仓数据库实战体验分享
数据库
汉堡go1 小时前
python_chapter6
前端·数据库·python