xtrabackup 的工作原理 为什么不用停服?
XtraBackup 的工作原理(基于物理文件复制 + 日志捕获):
-
物理文件复制:
- 直接复制 InnoDB 的数据文件(
.ibd
)、表空间文件(ibdata*
)以及 InnoDB 的日志文件(ib_logfile*
)。 - 同时复制 MyISAM 等其他存储引擎的表文件(
.MYD
,.MYI
,.frm
等)以及数据库的元数据文件。 - 这种复制发生在数据库服务运行期间。
- 直接复制 InnoDB 的数据文件(
-
保持数据一致性 - 关键步骤(利用 InnoDB 机制):
- InnoDB 的 Crash Recovery:InnoDB 引擎设计上能在数据库异常关闭后,通过重放 Redo Log(重做日志)将数据恢复到崩溃前的一致状态。
- LSN(Log Sequence Number):InnoDB 内部使用 LSN 标记所有数据更改和 Redo Log 的位置。数据页和 Redo Log 都包含 LSN。
- 备份期间跟踪 LSN:
- XtraBackup 启动时,记录当前的 LSN (
START LSN
)。 - 在后台线程持续复制数据文件(这些文件可能处于被修改的不同状态)。
- 同时&
- XtraBackup 启动时,记录当前的 LSN (