MariaDB数据库备份及恢复

`mariadb-backup` 是 MariaDB 提供的官方备份工具,用于执行全量备份和增量备份。以下是使用 `mariadb-backup` 备份的文件进行恢复的步骤:


**1. 准备工作**

  • 确保目标 MariaDB 实例已停止。

  • 确保备份文件完整且可用。

  • 确保恢复的目标目录(如数据目录)是空的,或者备份文件可以覆盖现有数据。


**2. 恢复全量备份**

**步骤:**

  1. 停止 MariaDB 服务:

```bash

systemctl stop mariadb

```

  1. 清空目标数据目录(通常为 `/var/lib/mysql`):

```bash

rm -rf /var/lib/mysql/*

```

  1. 使用 `mariadb-backup` 恢复备份文件:

```bash

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

```

其中:

  • `--copy-back`:将备份文件恢复到数据目录。

  • `--target-dir`:指定备份文件的路径。

  1. 确保数据目录的权限正确:

```bash

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

```

  1. 启动 MariaDB 服务:

```bash

systemctl start mariadb

```

  1. 验证恢复是否成功:

```bash

mysql -u root -p -e "SHOW DATABASES;"

```


**3. 恢复增量备份**

如果使用了增量备份,需要先恢复全量备份,再依次应用增量备份。

**步骤:**

  1. 停止 MariaDB 服务:

```bash

systemctl stop mariadb

```

  1. 清空目标数据目录:

```bash

rm -rf /var/lib/mysql/*

```

  1. 恢复全量备份:

```bash

mariadb-backup --copy-back --target-dir=/path/to/full-backup

```

  1. 应用增量备份:

```bash

mariadb-backup --copy-back --incremental-dir=/path/to/incremental-backup --target-dir=/path/to/full-backup

```

其中:

  • `--incremental-dir`:指定增量备份的路径。
  1. 确保数据目录的权限正确:

```bash

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

```

  1. 启动 MariaDB 服务:

```bash

systemctl start mariadb

```

  1. 验证恢复是否成功:

```bash

mysql -u root -p -e "SHOW DATABASES;"

```


**4. 恢复压缩备份**

如果备份文件是压缩的(如 `.xbstream` 或 `.gz`),需要先解压,再恢复。

**步骤:**

  1. 解压备份文件:

```bash

mbstream -x -C /path/to/backup < backup.xbstream

```

或

```bash

gunzip -c backup.gz | mbstream -x -C /path/to/backup

```

  1. 使用 `mariadb-backup` 恢复:

```bash

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

```

  1. 确保数据目录的权限正确:

```bash

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

```

  1. 启动 MariaDB 服务:

```bash

systemctl start mariadb

```


**5. 注意事项**

  • **备份文件完整性**:确保备份文件未被损坏。

  • **数据目录权限**:恢复后确保数据目录的权限为 `mysql:mysql`。

  • **测试恢复**:在生产环境恢复前,建议在测试环境中验证恢复流程。

  • **日志文件**:恢复后可能需要清理或重新生成日志文件(如 `ib_logfile0` 和 `ib_logfile1`)。


相关推荐
ss2734 小时前
为什么PostgreSQL适合AI场景?
数据库·人工智能·postgresql
瑞克-桑切斯4 小时前
7、MySQL 慢查询排查与优化实战指南
java·服务器·数据库
z06.5 小时前
MySQL索引
数据库·mysql
考虑考虑5 小时前
Posrgresql恢复.backup文件
数据库·后端·postgresql
云祺vinchin5 小时前
中小企业备份软件选型从恢复需求到总体成本评估
数据库·数据备份·中小企业备份·容灾备份软件
Zenova EdgeOS5 小时前
Go 工业边缘错误处理实战:用 errors 构建可追溯错误链
开发语言·数据库·golang
KKKlucifer5 小时前
国内数据安全服务的产品智能化转型:大模型赋能下的技术能力重构分析
大数据·数据库·重构
字节跳动开源6 小时前
OpenViking 上线原生 3D 内容理解模型
数据库·开源
CCIE-Yasuo8 小时前
网络安全-学习数据库-Mysql-2
数据库·学习·mysql
这个DBA有点耶9 小时前
内核级AI与多模融合:AI数据库在海外场景的落地要点
数据库·人工智能·架构