教程 mariadb tutorial

PITR 时间点恢复

1. 什么是 PITR(Point-In-Time Recovery)

PITR 指通过恢复完整备份加上应用指定时间段的二进制日志,实现将数据库恢复到某个具体时间点的技术,常用于恢复误操作或数据损坏。

2. PITR 基本步骤

2.1 准备工作

  • 定期使用 mariabackup 备份数据。
  • 保留 MariaDB 的二进制日志(binlog),确保能覆盖恢复时间段。

2.2 恢复备份

停止 MariaDB,准备并恢复最近一次完整备份:

bash
systemctl stop mariadb

mariabackup --prepare --target-dir=/path/to/backup

mariabackup --copy-back --target-dir=/path/to/backup

chown -R mysql:mysql /var/lib/mysql

`

2.3 启动 MariaDB 并应用二进制日志

启动数据库,但先不要对外开放:

bash
systemctl start mariadb

使用 mysqlbinlog 工具从二进制日志中导出指定时间点之前的日志:

bash
mysqlbinlog --start-datetime="2025-05-18 10:00:00" --stop-datetime="2025-05-18 12:30:00" /var/lib/mysql/binlog.[数字] > /tmp/binlog.sql

根据需要调整开始和结束时间,导出的 SQL 文件包含了这段时间内的所有事务。

2.4 导入二进制日志

将导出的日志导入 MariaDB,完成时间点恢复:

bash
mysql -u root -p < /tmp/binlog.sql

导入完成后,数据库即恢复到指定时间点。

3. 注意事项

  • 备份和 binlog 文件路径及命名根据实际情况调整。
  • 保证备份和二进制日志的完整性,避免数据缺失。
  • 恢复前请在测试环境确认流程,防止误操作导致数据丢失。

PITR 技术是保障数据库数据安全的重要手段,能灵活恢复到任意时间点,适合关键业务场景。