第 5 章 备份和恢复
本章论述了确保在出现灾难时确保 Red Hat Satellite 部署以及相关数据的连续性所需的最低备份和恢复程序。如果您的部署使用自定义配置,在规划备份和恢复策略时应考虑这些配置。
5.1. 备份 Satellite 服务器或 Capsule 服务器 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
本节论述了使用 katello-backup 脚本创建 Satellite 服务器或 Capsule 服务器的备份以及所有相关数据。建议备份到独立位置。强烈建议您备份到独立系统上的独立存储设备。因为备份过程中没有 Satellite 服务可用,可以调度备份时间(例如,使用 cron)。
您还可以使用传统备份方法,如 Red Hat Enterprise Linux 7 系统管理员指南的 System Backup and Recovery 部分中所描述。
注意
- 在规划调度的备份时,请确保其他管理员不会同时调度其他任务。当管理员在不同位置和时区中工作时,这尤其重要。
- 在创建快照或传统备份时,请停止所有服务(如果使用 katello-backup 脚本,则不要执行此操作):
katello-service stop
# katello-service stop
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在创建快照或传统备份后启动服务:katello-service start
# katello-service start
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Red Hat Satellite 6.2 使用 katello-backup 脚本进行和恢复备份。要查看 usage 语句,请输入以下命令:
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
katello-backup --help
# katello-backup --help
从 Satellite 6.2.8,katello-backup 在您指定的备份目录中创建一个时间戳的子目录。katello-backup 脚本不会覆盖备份,在从备份或增量备份中恢复时必须选择正确的目录或子目录。该脚本将根据需要停止并重新启动服务。
已知问题
katello-backup 脚本有以下已知问题:
- 在 Satellite 6.2.7 及更早版本中:
- 对于完整备份,该脚本不支持多次使用相同的目录。如果可能,请更新到 Satellite 6.2.8 或更新版本。或者,每次使用新目录或将之前备份移到安全位置,直到新备份成功完成为止。
- 如果将现有目录用作备份目标目录,该脚本会将组更改为
postgres
组。如果其他进程也使用 目录,这可能会造成意外的后果。如果可能,请更新到 Satellite 6.2.8 或更新版本。或者,使用专门用于备份的新目录或子目录。
- 在 Satellite 6.2.8 和更早版本中,使用
-online-backup
选项会使 Satellite 服务停止。如果可能,请更新到 Satellite 6.2.9 或更新版本。另外,在 Red Hat Bug 1432013 解决前,只使用/tmp/
或/var/tmp/
目录来创建在线备份。 - 在 Satellite 6.2.9 及更早版本中,使用--
incremental
选项创建了完整备份。这个问题 在红帽程序错误 1445989 中解决,它包括在异步勘误 RHBA-2017:1234 - 程序错误修复公告 中。在 Satellite 6.2.9 上,如果可能,应用勘误或升级到更新的版本。
检查 Satellite 或 Capsule 版本
要检查 Satellite 6 的版本,请使用如下命令:
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
yum info satellite
# yum info satellite
Red Hat Satellite 6 不支持更新单个软件包。要更新到最新的次版本,请参阅 Red Hat Satellite 6.2 安装指南中的更新 Satellite 服务器、胶囊式服务器和内容主机。要升级到下一个主版本,请参阅升级 Satellite 服务器和 Capsule 服务器。
过程 5.1. 要执行 Satellite 服务器或 Capsule 服务器的完整备份:
这个过程执行完整的离线备份。备份过程中没有 Satellite 服务可用。
- 确定您的备份位置有足够的磁盘空间包含以下目录的副本:
/etc/
/var/lib/pulp/
/var/lib/mongodb/
/var/lib/pgsql/
在 Satellite 6.2.7 及更早版本中,备份目标目录必须是专门为备份创建的新目录或子目录。您可以使用 du -sh directory_name 命令检查目录使用的空间。 - 请求 Satellite 服务器或胶囊服务器的其他用户以保存任何更改,并警告它们在备份期间,没有 Satellite 服务可用。确保没有调度其他任务与备份相同的时间。
- 运行备份脚本:
katello-backup backup_directory
# katello-backup backup_directory
Copy to Clipboard Copied! Toggle word wrap Toggle overflow katello-backup 脚本停止可能会影响备份的所有服务,执行备份,然后重新启动所需的服务。如果尝试创建备份文件时目标目录不存在,则脚本将创建该文件。注意从 Satellite 6.2.13 中,katello-backup 脚本提示确认备份要继续。要在不提示的情况下运行备份,请添加 parameter-assumeyes
。这个过程可能需要很长时间才能完成,因为要复制的数据量。
过程 5.2. 在没有 Pulp 内容的情况下执行备份:
此流程执行脱机备份,但排除 Pulp 目录的内容。此备份可用于调试目的,仅用于提供配置文件的访问权限,而无需花费时间备份 Pulp 数据库。您无法从不包含 Pulp 内容的目录恢复。
- 确定您的备份位置有足够的磁盘空间包含以下目录的副本:
/etc/
/var/lib/mongodb/
/var/lib/pgsql/
您可以使用 du -sh directory_name 命令检查目录使用的空间。 - 请求 Satellite 服务器或胶囊服务器的其他用户以保存任何更改,并警告它们在备份期间,没有 Satellite 服务可用。确保没有调度其他任务与备份相同的时间。
- 运行备份脚本:
katello-backup --skip-pulp-content backup_directory
# katello-backup --skip-pulp-content backup_directory
Copy to Clipboard Copied! Toggle word wrap Toggle overflow katello-backup 脚本停止可能会影响备份的所有服务,执行备份,然后重新启动所需的服务。如果尝试创建备份文件时目标目录不存在,则脚本将创建该文件。注意从 Satellite 6.2.13 中,katello-backup 脚本提示确认备份要继续。要在不提示的情况下运行备份,请添加 parameter-assumeyes
。
过程 5.3. 要执行增量备份:
这个过程对之前备份以来的任何更改进行在线备份。使用完整备份作为参考,进行序列的第一个增量备份。至少保留最后一个已知良好完整备份以及从中恢复的完整增量备份序列。
- 确定您的备份位置有足够的磁盘空间来包含以下目录中所有更改的副本:
/etc/
/var/lib/pulp/
/var/lib/mongodb/
/var/lib/pgsql/
您可以使用 du -sh directory_name 命令检查目录使用的空间。 - 请求 Satellite 服务器或胶囊服务器的其他用户以保存任何更改,并警告它们在备份期间,没有 Satellite 服务可用。确保没有调度其他任务与备份相同的时间。
- 运行备份脚本:使用 Pulp 内容:
katello-backup backup_directory --incremental backup_directory/previous_time-stamped_subdirectory
# katello-backup backup_directory --incremental backup_directory/previous_time-stamped_subdirectory
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 没有 Pulp 内容:katello-backup backup_directory --skip-pulp-content --incremental backup_directory/previous_time-stamped_subdirectory
# katello-backup backup_directory --skip-pulp-content --incremental backup_directory/previous_time-stamped_subdirectory
Copy to Clipboard Copied! Toggle word wrap Toggle overflow katello-backup 脚本停止可能会影响备份的所有服务,执行备份,然后重新启动所需的服务。如果尝试创建备份文件时目标目录不存在,则脚本将创建该文件。可以使用之前备份的旧备份作为起点进行增量备份,但有相应增加时间进行备份。注意从 Satellite 6.2.13 中,katello-backup 脚本提示确认备份要继续。要在不提示的情况下运行备份,请添加 parameter-assumeyes
。
过程 5.4. 执行在线备份:
此流程在 Satellite 服务器或 Capsule 服务器运行时执行完整备份。如果有影响 Pulp 数据库的流程,则会重复备份过程的 Pulp 部分,直到它不再被更改。由于 Pulp 数据库的备份是备份 Satellite 的最耗时部分,因此强烈建议不要在此时间更改 Pulp 数据库。将重启备份的 Pulp 部分时,该过程会延长。
注意
重要
Satellite 6 使用两个数据库系统,Postgres 和 Mongo。Postgres 和 Mongo 中都存在一些需要保持同步的记录。
--online-backup
选项保留所有服务运行,这意味着可以在备份时修改数据。有基本的检查来查看在备份过程中是否修改了数据库。如果发生这种情况,该脚本将再次启动备份的数据库部分。此检查是不便的,不能确保备份脚本运行时对数据库没有修改的 100%。如果数据库出现连续修改,此检查也可能会导致重复循环。
如果您仍然希望在生产环境中使用
--online-backup
方法,请确保在备份过程中不会进行任何修改。
- 确保您已更新至 Satellite 6.2.9 或更高版本。要检查 Satellite 6 的版本,请使用如下命令:
yum info satellite
# yum info satellite
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 确定您的备份位置有足够的磁盘空间包含以下目录的副本:
/etc/
/var/lib/pulp/
/var/lib/mongodb/
/var/lib/pgsql/
您可以使用 du -sh directory_name 命令检查目录使用的空间。 - 请求其他 Satellite 服务器或胶囊服务器用户以保存任何更改,并要求他们在备份期间对存储库和内容视图进行更改。确保没有其他任务(如同步存储库)被调度与备份相同。
- 运行备份脚本:
katello-backup --online-backup /tmp/backup_directory
# katello-backup --online-backup /tmp/backup_directory
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意从 Satellite 6.2.13 中,katello-backup 脚本提示确认备份要继续。要在不提示的情况下运行备份,请添加 parameter-assumeyes
。
例 5.1. Daily Full Backup Followed by Daily Incremental Backups
一个示例脚本,在周的所有其他天的星期一和增量备份上进行完整备份:
只有在 Satellite 版本为 6.2.13 及更高版本时,才添加--
assumeyes
参数。