ITPub博客

首页 > 数据库 > Oracle > 转到MariaDB备份

转到MariaDB备份

原创 Oracle 作者:Tybyq 时间:2018-12-10 16:03:02 0 删除 编辑

如果您一直在备份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上运行。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31557424/viewspace-2284749/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2018-10-31

  • 博文量
    206
  • 访问量
    212148