MST

星途 面试题库

面试题:MariaDB中Binlog日志的主要作用及写入时机

请阐述在MariaDB数据库里,二进制日志binlog的主要作用有哪些?它在数据库操作的什么时机进行写入?
26.0万 热度难度
数据库MariaDB

知识考点

AI 面试

面试题答案

一键面试

二进制日志 binlog 的主要作用

  1. 数据备份与恢复:可以基于 binlog 进行数据的增量备份和恢复。在全量备份的基础上,利用 binlog 记录的从备份时间点之后的所有数据库修改操作,可将数据库恢复到故障前的某一时刻,确保数据的完整性。
  2. 主从复制:在主从复制架构中,主库将数据库的修改操作记录到 binlog 中,然后将 binlog 发送给从库,从库通过重放 binlog 中的记录来保持与主库的数据一致性。这使得主库的更新操作能够实时同步到从库,实现数据的多副本存储和负载均衡等功能。
  3. 数据审计:通过查看 binlog 可以了解数据库的所有修改历史,包括执行的 SQL 语句、操作时间、操作账号等信息,有助于进行数据操作的审计和追踪,方便排查问题和保障数据安全。

binlog 的写入时机

  1. 事务提交时:对于使用事务的操作,在事务执行过程中,相关修改操作并不会立即写入 binlog,而是先记录在 InnoDB 存储引擎的重做日志(redo log)中。当事务执行完成并提交时,会将该事务涉及的所有修改操作一次性写入 binlog 中,这确保了事务的原子性和持久性。
  2. 非事务语句执行完成时:对于不涉及事务的语句(如 DDL 语句),在语句执行完成后立即将其记录到 binlog 中。因为这类操作本身不具备事务特性,所以一旦执行成功就需要及时记录,以便后续进行数据备份、恢复以及主从复制等操作。