mysqldump是MariaDB自带的逻辑备份工具,将数据库结构和数据导出为SQL文件,便于跨版本、跨平台恢复。
全量备份命令:
mysqldump -u root -p --databases your_database_name > /backup/your_database_backup.sql
说明:-u指定用户名(如root),-p提示输入密码,--databases指定要备份的数据库名,输出重定向到/backup/目录下的SQL文件。
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指定增量备份的基础目录(全量备份目录)。
sudo systemctl stop mariadb
sudo cp -R /var/lib/mysql /var/lib/mysql_backup
sudo rm -rf /var/lib/mysql/*
使用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;"创建)。
# 准备备份(重组数据文件,使其可导入)
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
# 准备全量备份(同上)
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/
# 设置权限并启动服务(同上)
说明:增量恢复需先恢复全量备份,再依次应用所有增量备份(顺序不可颠倒)。
登录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,确认备份/恢复过程无错误。