备份和还原

本章包含需要备份的文件信息。您可以使用内置的备份和恢复解决方案 (mgradm backup) 创建 SUSE Manager 备份。本章还补充说明了当系统发生故障时如何从备份恢复数据。

由于 SUSE Manager 依赖数据库及已安装的程序和配置,因此备份安装的所有组件至关重要。

建议定期备份 SUSE Manager 安装,以防止数据丢失并实现快速恢复。

无论您使用哪种备份方法,可用空间必须是当前安装使用的空间量的至少三倍。空间不足可能导致备份失败,因此请经常检查可用空间。

1. 借助 smdba 禁用旧方法

如果您全新安装了 SUSE Manager 5.0,则可跳过该节内容。

随着内置解决方案的问世,借助 smdba 备份工具的旧方法已被弃用。如果您已从采用 smdba 的旧系统迁移至新解决方案,就必须禁用旧功能并去除旧备份归档。

您可以选择在迁移前禁用 smdba(推荐操作),也可在完成迁移后的 SUSE Manager 5.0 系统中执行该操作。

过程:迁移前禁用已安装 smdba 的旧方法

本过程仅适用于仍安装有 smdba 的场景。

+

此命令会按如下方式更改 /var/lib/pgsql/data/postgresql.conf 文件中的 archive_command 参数:

archive_command = '/bin/true'

至此,您的旧系统已准备就绪,可迁移至 SUSE Manager 5.0。

过程:迁移后在 SUSE Manager 5.0 上禁用旧方法

请在迁移后执行此过程(此时 smdba 已不可用)。

  1. 以 root 用户身份在容器主机中编辑 /var/lib/containers/storage/volumes/var-pgsql/_data/postgresql.conf 文件,并设置以下选项:

    archive_mode = off
    archive_command = '/bin/true'
  2. 重启容器:

    mgradm restart

2. 备份 SUSE Manager

要备份 SUSE Manager 安装,最全面的方法是使用 mgradm backup create 命令。这种方法不仅可以节省备份管理时间,还可以在发生故障时更快地重新安装和重新同步。不过,这种方法需要大量磁盘空间,并且可能要花费很长时间才能完成备份。

命令 mgradm backup create 可备份某个目录。这个目录可以是本地目录或挂载的远程存储空间。

命令 mgradm backup create 允许自定义备份内容。有关所有可用选项,请参见 mgradm backup create --help

2.1. SUSE Manager 的完整备份

SUSE Manager 的完整备份包含以下组件的备份:

  • SUSE Manager 卷

  • 数据库卷

  • podman 网络配置

  • podman 机密

  • SUSE Manager systemd 服务

  • SUSE Manager 容器映像

创建完整备份期间,SUSE Manager 服务会自动停止。

过程:使用 mgradm backup create 创建完整备份
  1. 在容器主机上,以 root 身份执行以下命令创建备份:

    mgradm backup create $path

    请将 $path 替换为备份位置的路径。

2.2. SUSE Manager 的部分备份

mgradm backup create 工具允许创建部分备份。您可以跳过个别卷或所有卷、跳过数据库备份和映像。

特别是,当跳过数据库备份时,系统会创建备份而不停止 SUSE Manager 服务,备份可以作为两阶段备份流程中的一个阶段运行。

部分备份无法保证备份/恢复的一致性。

过程:创建部分备份(跳过数据库备份)
  1. 在容器主机上,以 root 身份执行以下命令创建备份:

    mgradm backup create --skipdatabase $path

请将 $path 替换为备份位置的路径。

过程:创建部分备份(跳过卷)
  1. 在容器主机上,以 root 身份执行以下命令创建备份:

    mgradm backup create --skipvolumes $volumes $path

    请将 $path 替换为备份位置的路径。

    请将 $volumes 替换为备份中要排除的某个卷或一系列以逗号分隔的卷名称。

    使用 all 可以跳过所有卷(数据库卷除外)。

2.3. 备份额外的卷

命令 mgradm backup 可使用 SUSE Manager 卷的内部列表。如果安装期间配置了其他卷,或有其他卷需要添加到备份中,则需使用 --extravolumes $volumes 指定这些卷。

过程:创建包含其他自定义卷的备份
  1. 在容器主机上,以 root 身份执行以下命令创建备份:

    mgradm backup create --extravolumes $volume $path

    请将 $path 替换为备份位置的路径。

    请将 $volumes 替换为备份中要包含的某个卷或一系列以逗号分隔的卷名称。

2.4. 执行手动数据库备份

过程:执行手动数据库备份
  1. 请为备份分配永久存储空间。

  2. 在 SUSE Manager 容器主机的命令提示符处,以 root 身份执行以下命令:

    mgradm backup create --skipvolumes all --skipconfig --skipimages $path

3. 从现有备份恢复 SUSE Manager

从现有备份恢复 SUSE Manager 时,系统将枚举卷、映像和配置的备份以进行恢复。与创建备份的场景不同,恢复操作不使用内部卷列表,而是自动检测备份中存在的所有卷或映像。

收集待恢复项目列表后,会执行存在性和完整性检查。存在性检查用于确保恢复备份时不会意外覆盖现有卷、映像或配置。完整性检查通过计算备份项目的校验和完成。

两项检查均通过后,才会执行实际的备份恢复操作。

恢复操作完成后,SUSE Manager 服务不会自动启动。

过程:从现有备份恢复
  1. 在容器主机上以 root 身份运行以下命令,重新部署 SUSE Manager 服务器:

    mgradm backup restore $path
    mgradm start

    请将 $path 替换为备份位置的路径。

Verification of the backup can be a time-consuming operation. If backup integrity is ensured by other means, verification can be skipped by using --skipverify option.

如果出于某些原因需要跳过恢复备份中的某个卷,可以使用 --skipvolumes $volumes 选项。

3.1. 恢复备份后建议执行的步骤

过程:恢复 SUSE Manager 后建议执行的步骤
  1. 使用 SUSE Manager Web UI 或在容器中的命令提示符处使用 mgr-sync 工具重新同步您的 SUSE Manager 储存库。您可以选择重新注册产品,或跳过注册和 SSL 证书生成部分。

  2. 在容器主机上,检查是否需要恢复 /var/lib/containers/storage/volumes/var-spacewalk/_data/packages/。如果 /var/lib/containers/storage/volumes/var-spacewalk/_data/packages/ 不在您的备份中,则需要恢复它。如果源储存库可用,则您可以通过完整通道同步来恢复 /var/lib/containers/storage/volumes/var-spacewalk/_data/packages/

    mgrctl exec -ti -- mgr-sync refresh --refresh-channels

安排在下次启动 rhn-search 服务时重新创建搜索索引。此命令仅生成调试消息,而不生成错误消息。在容器主机上,输入以下命令:

+

mgrctl exec -ti -- rhn-search cleanindex