面试题答案
一键面试1. 基于事务日志(Redolog 和 Binlog)
- 原理:Redolog 记录数据库物理层面的修改操作,用于崩溃恢复(crash recovery);Binlog 记录数据库逻辑层面的修改操作,用于主从复制和数据备份恢复。在备份时,确保 Redolog 和 Binlog 记录的一致性,恢复时按日志顺序重放操作。
- 适用场景:适用于各种规模的数据库,尤其是对数据一致性和完整性要求极高的生产环境,如金融系统。
2. 一致性快照备份
- 原理:利用存储系统的快照功能,在某一时刻创建数据库文件的一致性副本。数据库在创建快照瞬间,数据处于一致性状态,后续备份基于该快照进行,不影响数据库正常运行。
- 适用场景:适合于大型数据库,对备份窗口时间要求较高,不希望备份过程对业务产生较大影响的场景,如大型电商数据库。
3. 热备份结合锁机制
- 原理:在备份过程中,通过对数据库表加读锁(如
FLUSH TABLES WITH READ LOCK
),使数据处于只读状态,保证备份期间数据不会被修改,从而确保备份数据的一致性。备份完成后释放锁。 - 适用场景:适用于数据库规模较小,业务可以接受短时间只读状态的场景,例如小型企业数据库。
4. 基于 GTID(全局事务标识符)
- 原理:GTID 是在主库上为每个提交的事务分配的唯一标识。在恢复时,从库根据 GTID 来重放事务,确保主从数据一致性。备份时记录事务的 GTID 集合,恢复时按照 GTID 顺序应用事务。
- 适用场景:适用于主从复制架构的数据库环境,能有效保证主从数据一致性,广泛应用于分布式数据库场景。