面试题答案
一键面试binlog日志在主从复制架构里的角色
- 记录主库数据变更:在MariaDB主库中,binlog(二进制日志)会记录所有修改数据库数据的操作,包括数据的增删改等。这些记录是主从复制的基础,从库需要依据这些记录来同步数据,确保与主库的数据一致性。
- 数据备份与恢复依据:除了主从复制,binlog在数据库备份恢复场景中也很重要。可以利用全量备份加上binlog日志来恢复到某个时间点的数据库状态。
主从复制过程中binlog的利用和数据传递
- 主库操作与日志记录:当主库上有数据修改操作时,MariaDB会将这些操作记录到binlog中。例如执行一条
INSERT INTO users (name, age) VALUES ('John', 25);
的语句,主库会把这条插入操作以特定的格式记录到binlog。 - 从库连接主库:从库配置好主库的连接信息(如主库IP、端口、复制账号等)后,会主动连接到主库。
- 主库发送binlog事件:从库连接成功后,主库会创建一个dump线程,用于向从库发送binlog事件。从库也会创建一个I/O线程,用于接收主库发送过来的binlog日志,并将其保存到从库的中继日志(relay log)中。
- 从库应用中继日志:从库的SQL线程会读取中继日志中的内容,按照记录的顺序在从库上重新执行这些操作,从而使从库的数据与主库保持一致。例如从库的SQL线程读取到主库记录的
INSERT INTO users (name, age) VALUES ('John', 25);
操作,会在从库上执行同样的插入语句。