美文网首页
使用 mariabackup 完整备份和恢复数据库

使用 mariabackup 完整备份和恢复数据库

作者: fbckf | 来源:发表于2022-02-08 12:49 被阅读0次

官方文档:https://mariadb.com/kb/en/full-backup-and-restore-with-mariabackup/

一、权限与配置

创建用户与授权

使用 mariabackup 工具备份时需要用一个具有全局权限的用户来执行备份操作

-- 创建用户
CREATE USER 'mariabackup'@'localhost' IDENTIFIED BY 'mypassword';
-- 授权
GRANT RELOAD, PROCESS, LOCK TABLES, REPLICATION CLIENT ON *.* TO 'mariabackup'@'localhost';

指定用户信息

备份时有两种方式指定用户信息,一种是使用命令行参数:--user --password

mariabackup --backup \
   --target-dir=/var/mariadb/backup/ \
   --user=mariabackup --password=mypassword

另一种是在配置文件中配置客户端参数组

[mariabackup]
user=mariabackup
password=mypassword

文件系统权限

mariabackup 工具基于文件进行备份,在备份过程中需要读取到文件系统中的文件,因此需要确保执行 mariabackup 命令的用户具有读取这些文件的权限

数据库文件位置

在 MariaDB 10.1.36,MariaDB 10.2.18,MariaDB 10.3.10 之前,如果在执行命令时没有指定数据库的文件位置,MariaDB 将不会读取默认的值,并且返回一个错误

Error: datadir must be specified.

配置数据文件地址的方式也有两种,命令行

# -h, --datadir
mariabackup --backup -h /var/lib/mysql

配置文件

[mysqld]
datadir=/var/lib/mysql

二、备份

备份指定数据库

mariabackup --backup \
   --target-dir=/var/mariadb/backup/ \
   --user=mariabackup --password=mypassword
  • --target-dir 指定备份文件存放地址

三、还原

准备还原文件

需要注意,mariabackup 在 target-dir 目录生成的文件时间点是不一致的,如果直接使用这些文件进行恢复的话,InnoDB会以数据损坏的方式拒绝执行
所以,在使用这些文件恢复数据库前,需要先使用命令进行处理

mariabackup --prepare \
   --target-dir=/var/mariadb/backup/

还原备份

在进行还原备份之前,需要确保以下条件:

  • 停止 MariaDB Server 进程
  • 确保 datadir 目录为空

确认没有问题之后可以使用命令进行还原

mariabackup --copy-back \
   --target-dir=/var/mariadb/backup/

或者使用以下命令

rsync -avrP /var/mariadb/backup /var/lib/mysql/
chown -R mysql:mysql /var/lib/mysql/
# 如果 mariabackup 是 10.2.10 之前的版本,需要删除所有已存在的 InnoDB 重做日志文件
rm /var/lib/mysql/ib_logfile*

相关文章

网友评论

      本文标题:使用 mariabackup 完整备份和恢复数据库

      本文链接:https://www.haomeiwen.com/subject/qjywkrtx.html