MST

星途 面试题库

面试题:MariaDB中Binlog与主从复制协同工作的基本流程是什么

请阐述在MariaDB数据库中,Binlog(二进制日志)与主从复制是如何协同工作的,包括主库和从库分别的主要操作步骤。
27.1万 热度难度
数据库MariaDB

知识考点

AI 面试

面试题答案

一键面试

主库操作步骤

  1. 记录Binlog:主库上执行的写操作(如INSERTUPDATEDELETE等)会被记录到二进制日志(Binlog)中。Binlog以追加的方式记录所有修改数据库数据的操作,记录格式有STATEMENT(记录SQL语句)、ROW(记录行数据的变化)、MIXED(以上两种模式的混合)。
  2. 建立连接:当从库发起连接请求时,主库会创建一个线程专门用于与从库进行通信,这个线程被称为Binlog Dump Thread。
  3. 发送Binlog:Binlog Dump Thread根据从库传递过来的日志文件名和位置信息(通常称为master_log_filemaster_log_pos),从指定位置开始向从库发送Binlog内容。

从库操作步骤

  1. I/O线程工作:从库上有一个I/O线程,它负责与主库建立连接,并请求主库发送Binlog。I/O线程会将接收到的Binlog内容写入到本地的中继日志(Relay Log)中。在写入中继日志时,I/O线程会记录当前接收到的Binlog的文件名和位置,以便下次请求时能准确告知主库从何处继续发送。
  2. SQL线程工作:从库还有一个SQL线程,它负责读取中继日志中的内容,并按照日志记录的顺序在从库上重新执行这些操作,从而使从库的数据与主库保持一致。SQL线程执行完中继日志中的一部分内容后,会更新自身记录的中继日志位置信息。