转到MariaDB备份

来源:这里教程网 时间:2026-03-03 12:44:29 作者:

如果您一直在备份XtraBackup并尝试对MariaDB Server 10.3运行相同的命令,您将收到一条错误消息: $ innobackupex ~/backup_to_dir --user=username --password=password ... InnoDB: Unsupported redo log format. The redo log was created with MariaDB 10.3.9.

最后一条消息中的第一句话是它的内容。 XtraBackup不理解10.3的重做日志中的文件。 请注意,我们使用旧版本的XtraBackup,这就是命令仍然是 innobackupex 的原因

由于这个以及下面提到的其他一些原因,MariaDB Server现在附带了支持新的重做日志格式的MariaDB Backup。 使用MariaDB Backup,您可以使用与XtraBackup相同的功能,但支持改进的重做日志格式并支持MariaDB的静态数据加密。 另一个非常需要的方面是MariaDB Backup也适用于Windows,XtraBackup不是。 如果您有兴趣了解有关重做日志更改的更多信息,请阅读。

在本文开头,我提到我们最近将Jira升级到最新版本,将MariaDB Server升级到10.3。 在那个旧环境中,我们使用了XtraBackup。 要获得MariaDB Server 10.3的备份,我们必须更新备份脚本以使用MariaDB Backup。

切换到MariaDB Backup后,备份命令如下所示: $ mariabackup --backup --target-dir /backup/to/dir --user=username --password=password --parallel=4

我们不得不将命令本身从 innobackupex更改 mariabackup ,我们添加了两个选项;  告诉 mariabackup 我们希望它创建一个备份和-target-dir来指定给定目录是备份文件应该去的位置。 应该注意的是,如果我们一直在使用更新版本的XtraBackup,命令行选项将与XtraBackup完全兼容,那么唯一要改变的就是从 xtrabackup mariabackup 的命令本身

为了确保备份工作,我们将其复制到另一台服务器并尝试在那里恢复它。 要恢复备份,我们首先要准备它: $ mariabackup --prepare --target-dir full-2018-09-11_09-38-32

请注意,我有一个MariaDB Server实例的完整备份,它将替换我正在恢复到的实例中存在的任何内容。 因此,我将停止服务器并删除它所拥有的任何数据文件。 $ sudo service mariadb stop $ sudo rm -rf /var/lib/mysql/*

现在,备份文件可以放在此服务器实例的数据目录中。 应该使用mariabackup来完成它。 它做了一些与上面解释的重做日志格式相关的事情。 $ sudo mariabackup --copy-back --target-dir full-2018-09-11_09-38-32

确保权限正确。 在我的情况下,普通用户和组正在使用中。 然后启动服务器。 $ sudo chown mysql:mysql /var/lib/mysql -R $ sudo service mariadb start

然后让我们连接到服务器并验证它是否具有应有的数据。 我决定查询Jira中的最大问题编号。 # connect to mariadb $ mysql -uusername -ppassword # query the database MariaDB [(none)]> USE jiradb MariaDB [jiradb]> SELECT MAX(issuenum) FROM jiraissue;

瞧! 我们现在有备份在MariaDB Server 10.3上运行。

相关推荐