转到MariaDB备份

如果您一直在备份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完全兼容,那么唯一要改变的就是从xtrabackupmariabackup的命令本身

为了确保备份工作,我们将其复制到另一台服务器并尝试在那里恢复它。要恢复备份,我们首先要准备它:

$ 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上运行。


猜你喜欢

转载自blog.51cto.com/14009535/2328455
今日推荐