温馨提示×

Debian MariaDB如何进行数据备份与恢复测试

小樊
51
2025-10-21 10:59:04
栏目: 云计算

Debian MariaDB数据备份与恢复测试指南

一、备份方法:选择合适的工具

1. mysqldump(逻辑备份,适合中小型数据库)

mysqldump是MariaDB自带的逻辑备份工具,将数据库结构和数据导出为SQL文件,便于跨版本、跨平台恢复。
全量备份命令

mysqldump -u root -p --databases your_database_name > /backup/your_database_backup.sql

说明-u指定用户名(如root),-p提示输入密码,--databases指定要备份的数据库名,输出重定向到/backup/目录下的SQL文件。

2. mariabackup(物理备份,官方推荐,适合大型数据库)

mariabackup是MariaDB官方提供的物理备份工具,支持热备份(不停机)、增量备份和压缩,恢复速度快。
安装工具

sudo apt update && sudo apt install mariadb-backup

全量备份命令

mariabackup --backup --user=root --password=your_password --target-dir=/backup/full_backup

增量备份命令(基于上一次全量或增量备份):

mariabackup --backup --user=root --password=your_password --target-dir=/backup/incr_backup --incremental-basedir=/backup/full_backup

说明--backup表示执行备份,--target-dir指定备份目录,--incremental-basedir指定增量备份的基础目录(全量备份目录)。

二、恢复测试:验证备份有效性

1. 恢复前准备

  • 停止MariaDB服务:避免数据冲突。
    sudo systemctl stop mariadb
    
  • 备份现有数据:防止恢复失败导致数据丢失。
    sudo cp -R /var/lib/mysql /var/lib/mysql_backup
    
  • 清空数据目录:确保恢复时无旧数据干扰(仅恢复全量或增量时需要)。
    sudo rm -rf /var/lib/mysql/*
    

2. 恢复mysqldump备份(逻辑恢复)

使用mysql命令将SQL文件导入数据库:

mysql -u root -p your_database_name < /backup/your_database_backup.sql

说明your_database_name需提前创建(可通过mysql -u root -p -e "CREATE DATABASE your_database_name;"创建)。

3. 恢复mariabackup备份(物理恢复)

(1)全量恢复

# 准备备份(重组数据文件,使其可导入)
mariabackup --prepare --target-dir=/backup/full_backup
# 拷贝备份数据到MariaDB数据目录
sudo rsync -aP /backup/full_backup/ /var/lib/mysql/
# 设置正确权限
sudo chown -R mysql:mysql /var/lib/mysql
# 启动MariaDB服务
sudo systemctl start mariadb

(2)增量恢复(基于全量备份)

# 准备全量备份(同上)
mariabackup --prepare --apply-log-only --target-dir=/backup/full_backup
# 应用增量备份
mariabackup --prepare --apply-log-only --target-dir=/backup/full_backup --incremental-dir=/backup/incr_backup
# 拷贝数据到数据目录
sudo rsync -aP /backup/full_backup/ /var/lib/mysql/
# 设置权限并启动服务(同上)

说明:增量恢复需先恢复全量备份,再依次应用所有增量备份(顺序不可颠倒)。

4. 验证恢复结果

登录MariaDB,检查数据库和表是否存在:

mysql -u root -p -e "SHOW DATABASES;"
mysql -u root -p -e "USE your_database_name; SHOW TABLES;"

查询表数据,确认数据完整性:

mysql -u root -p -e "USE your_database_name; SELECT * FROM your_table LIMIT 10;"

三、注意事项

  • 备份频率:根据数据重要性设置(如每日全量+每小时增量)。
  • 备份存储:将备份文件存放到异地(如云存储)或离线介质(如外接硬盘),防止物理灾难。
  • 权限管理:备份目录需设置为mysql:mysql,避免未授权访问。
  • 日志监控:查看/var/log/mysql/error.log,确认备份/恢复过程无错误。

0