AI写作智能体 自主规划任务,支持联网查询和网页读取,多模态高效创作各类分析报告、商业计划、营销方案、教学内容等。 广告
[TOC] ## 主从 Binlog 复制 1. 主库 binlog 存储线程(binlog writer thread) 该线程负责将主库的所有数据更改(例如 INSERT、UPDATE、DELETE 操作)记录到 binary log 中。这个线程是主库复制的核心,保证所有的写操作都会被记录到 binlog。 1. binlog 事件发送线程(binlog sender thread): 当**从库连接到主库时**,主库会启动一个发送线程,该线程负责将 binlog 中的新事件传输到连接的从库。它将从 binary log 中读取事件并通过网络将这些事件发送给从库。 2. 从库:I/O 线程 从库的 I/O 线程负责与主库建立连接和通信。 功能:这个线程是连接到主库的客户端,负责拉取 Binlog 数据。 3. 从库:SQL 线程 从库的 SQL 线程负责执行从主库拉取到的操作。 功能:这个线程负责解析并执行 Relay Log 中的 SQL 语句或数据变更事件。 ## 主从复制的同步,异步,半同步 1. 同步复制 - 主数据库需要等待所有备数据库均操作成功才可以响应用户,影响用户体验。这种方式保证了系统的一致性,但牺牲了数据的可用性。 2. 异步复制 - 当用户请求更新数据时,主数据库处理完请求后可直接给用户响应,而不必等待备数据库完成同步,备数据库会异步进行数据的同步,用户的更新操作不会因为备数据库未完成数据同步而导致阻塞。这种方式保证了系统的可用性,但牺牲了数据的一致性。 3. 半同步复制 - 用户发出写请求后,主数据库会执行写操作,并给备数据库发送同步请求,但主数据库不用**等待所有备数据**库回复数据同步成功便可响应用户,也就是说主数据库可以等待**一部分备数据库同步**完成后响应用户写操作执行成功。