Incremental Backup and Restore with Mariabackup - MariaDB Knowledge Base
mariabackup
是MariaDB官方推荐的开源备份工具,用于创建和恢复MariaDB数据库的物理备份。
一、备份操作
1. 安装mariabackup
: 确保您已经安装了mariabackup
工具。在Debian/Ubuntu系统中,可以通过以下命令安装:
bash
sudo apt install mariadb-backup
在RHEL/CentOS系统中:
bash
sudo yum install mariadb-backup
2. 创建全量备份: 执行以下命令创建全量备份。请替换<backup_dir>
为备份存放路径,<mysql_user>
和<mysql_password>
为具有备份权限的MySQL用户及其密码。
bash
mariabackup --user=<mysql_user> --password=<mysql_password> --backup --target-dir=<backup_dir>
3. 创建增量备份: 基于上一次备份(全量或增量)创建增量备份。这里假设您已有一个全量备份在<base_backup_dir>
,现在创建增量备份到<incr_backup_dir>
:
bash
mariabackup --user=<mysql_user> --password=<mysql_password> --backup --target-dir=<incr_backup_dir> --incremental-basedir=<base_backup_dir>
二、恢复操作
1. 准备全量备份: 首先,将全量备份数据解密、解压并重组,使其处于可导入数据库的状态:
bash
mariabackup --prepare --target-dir=<full_backup_dir>
2. 恢复全量备份: 将准备好的全量备份数据导入到目标数据库:
bash
# 停止数据库服务 sudo systemctl stop mariadb # 移动数据文件到数据库数据目录 sudo rsync -aP <full_backup_dir>/ /var/lib/mysql/ # 更新属主和权限 sudo chown -R mysql:mysql /var/lib/mysql/ # 启动数据库服务 sudo systemctl start mariadb
3. 准备并恢复增量备份: 对于每个增量备份,先进行--prepare
,然后将其合并到已恢复的全量备份数据中。假设已有一个增量备份在<incr_backup_dir>
:
bash
# 准备增量备份 mariabackup --prepare --target-dir=<incr_backup_dir> --incremental-dir=<incr_backup_dir> # 将增量备份合并到全量备份 rsync -aP <incr_backup_dir>/ /var/lib/mysql/
三、常用选项说明
--user
和--password
:指定用于备份的MySQL用户及其密码。--backup
:执行备份操作。--target-dir
:指定备份数据的保存路径。--incremental-basedir
:对于增量备份,指定基于哪个全量或增量备份进行。--prepare
:对备份数据进行预处理,使其可导入数据库。--copy-back
(恢复时):简化恢复过程,直接将备份数据复制回数据库数据目录(替代手动移动文件步骤)。
注意事项:
- 执行备份和恢复操作前,请确保有足够的磁盘空间。
- 备份期间,尽量避免对数据库进行写操作,以保持备份一致性。
- 恢复数据前,建议停止数据库服务并备份现有数据,防止数据丢失或混淆。
- 对于生产环境,建议定期进行备份验证,确保备份数据的完整性和可恢复性。