2

[译] percona xtrabackup 示例 -m6米乐安卓版下载

原创 2022-04-07
1168

原文链接:https://www.virtual-dba.com/blog/percona-xtrabackup-example/
原文作者:steve champion

1.jpg

在这个示例中,将使用如下软件版本:

  1. ubuntu v20.04.3
  2. mysql server v5.7.35
  3. percona xtrabackup v2.4.24

需要重点注意的是 percona xtrabackup 8.0 的引入是为了在 mysql 8.0 版本上使用,与 mysql 5.7 版本不兼容。在写本文时,不存在与 mysql 的最新版本(8.0.28)兼容的 percona xtrabackup 版本。详情请参阅。

本文将逐步展示在 mysql 5.7 上使用 percona xtrabackup 建立和恢复增量备份。

本文将使用“$”表示操作系统终端中的命令,并使用“>”表示mysql客户端命令行中的任何命令。

权限

执行 percona xtrabackup 所需的权限可以很容易地在上找到,如下所示(在这个例子中,所有的操作系统权限都使用了root权限):

权限列表 示例 权限使用示例
操作系统 mysql数据文件夹的文件系统级权限:read, write, execute $sudo xtrabackup $sudo -i
mysql reload, lock tables, replication client, create tablespace, process, super >grant reload, lock tables, replication client on . to ‘user’@’localhost’; >grant all on . to ‘user’@’localhost’;(root user)

表1: percona xtrabackup 所需的最小权限。注意:$用于表示操作系统命令行,而>用于表示mysql客户端命令行。

备份

全量备份:

增量备份必须先从一个全量备份开始。命令如此:$xtrabackup --backup --user=bkupusr --password --target-dir=/home/user/fullbackupdestination,这里target-dir是全备的目标文件夹,在这个示例中,目标文件夹是/home/bkupusr/xtra/full。如果目标文件夹不存在,将会被创建。(如图2和图3)

2.png

图1:使用 percona xtrabackup 完成全备。注意,这个例子没有使用--user--password选项,因为已经使用mysql_config_editor程序设置了login-path

图1显示了正在进行的全备,但是没有--user--password选项,因为登录凭证是使用$mysql_config_editor设置的。关于这个主题的教程可以在这里找到: https://www.virtual-dba.com/blog/how-to-use-mysql-config-editor/

3.png
图2:当目标文件夹不存在时进行备份


图3:指定的目标文件夹被新建

增量备份:

在建立了初始的全备之后,接下来是增备。增备的命令与全备的命令非常相似,但是需要一个额外的目录。现在,target-dir将是新的增量文件存放的地方,选项--incremental-basedir是最近进行备份(在本例中是全备份)的位置; 图4展示了一个全备后的第一次增备。

5.png
图4: 第一个增量备份。使用incremental-basedir作为全备,并将target-dir选为新的目标来存储增备。

对于下一个增量备份,命令是相同的,但是现在target-dir将指定为下一个增备的位置,而incremental-basedir将指向最近的增备,如图5所示。

6.png
图5: 第二次增备,使用第一次增备作为incremental-basedir。

现在,存在三个备份(图6-8):一个全备和两个增备。


图6:包含全量备份的目录


图7:包含第一次增备的目录

9.png
图8:包含第二次增备的目录

对于额外的增备,继续以这种方式,将之前的target-dir移动到当前的incremental-basedir

恢复

最后一步是还原备份。在实际执行恢复之前有一些设置:

  1. mysql 服务必须停止。
  2. mysql 数据目录必须为空。

10.png
图9:恢复准备步骤1 – 停止mysql服务


图10:恢复准备步骤2 – 清空mysql数据目录

  1. 首先准备备份:

    • $xtrabackup --prepare --target-dir=/home/usr/full_bkup_directory
      • 注意--prepare选项
  2. 全量备份恢复到空数据路径:

    • $xtrabackup --copy-back --target-dir=/home/usr/full_bkup_directory
      • --copy-back是恢复的命令
  3. 必须检查或设定新的恢复备份集的权限:

    • $chown mysql:mysql mysql
      • 这将递归应用到数据目录的所有文件
  4. 恢复mysql服务:

    • $service mysql start

12.png
图11: 准备恢复全量备份

13.png
图12: 实际恢复完全备份

14.png
图13:恢复后变更权限


图14:恢复mysql服务

对于增备设定和copy-back的步骤是一样的,但是准备步骤不同;出最后一个增备外,需要在语句中增加参数–-apply-log-only--prepare

增备的准备步骤如下:

  1. 准备全备:
    $xtrabackup --prepare --apply-log-only --target-dir=/data/backups/full

  2. 向全备应用第一个增备:
    $xtrabackup --prepare --apply-log-only --target-dir=/data/backups/full --incremental-dir=/data/backups/inc1

  3. 向全备应用第二个增备:
    $xtrabackup --prepare --apply-log-only --target-dir=/data/backups/full --incremental-dir=/data/backups/inc2

16.png
图15:为恢复增备准备全备

17.png
图16:为恢复准备第一个增备

18.png
图17:为恢复准备第二个增备

同样的,复制回步骤将与全量备份一样,使用唯一的准备好的全备。在复制回步骤完成后,恢复完成。


译者注:

考虑到兼容性问题,在使用pxb时需要注意mysql的版本,如果使用的是mariadb,则建议使用mariabackup。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
1人已赞赏
【米乐app官网下载的版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

网站地图