Red Hat Training

A Red Hat training course is available for Red Hat Satellite

15.2. 故障恢复

15.2.1. Red Hat Satellite 备份步骤

过程 15.2. Red Hat Satellite 备份步骤

本示例使用 /backup 目录作为保存备份归档的目标目录。请使用 root 系统帐户执行以下命令。

注意

启用 SELinux 后,用户需要保证将要同步的本地内容标记为 "httpd_sys_content_t"。
  1. 准备备份位置:
    umask 0027
    export BDIR=/backup
    mkdir $BDIR
    chgrp postgres $BDIR
    chmod 770 $BDIR
    cd $BDIR
    
  2. 备份配置和数据文件:
    # tar --selinux -czvf config_files.tar.gz \
    /etc/katello \
    /etc/elasticsearch \
    /etc/candlepin \
    /etc/pulp \
    /etc/gofer \
    /etc/grinder \
    /etc/pki/katello \
    /etc/pki/pulp \
    /etc/qpidd.conf \
    /etc/sysconfig/katello \
    /etc/sysconfig/elasticsearch \
    /root/ssl-build \
    /var/www/html/pub/* \ 
    
    # tar --selinux -czvf elastic_data.tar.gz /var/lib/elasticsearch
  3. 备份存储库。存储库中的 RPM 文件已经是压缩文件,无法再进一步压缩。因此,根据实例大小,得到的备份归档(pulp_data.tar)可能会非常大。
    备份存储库有两个选项。
    选项一:在线存储库备份

    为所有时间戳执行 checksum,备份存储库,并再执行 checksum。

    # find /var/lib/pulp -printf '%T@\n' | md5sum
    # tar --selinux -cvf pulp_data.tar /var/lib/pulp /var/www/pub
    # find /var/lib/pulp -printf '%T@\n' | md5sum
    如果两个 checksum 匹配,则在线备份是正确且可用的。如果 checksum 不匹配,则请再次执行存储库备份。

    注意

    使用 rsync 加速文件复制以便 checksum 匹配。
    选项二:离线存储库备份

    停止 Pulp 服务器并执行备份。备份完成后重启 Pulp 服务器。

    # service pulp-server stop
    # tar --selinux -cvf pulp_data.tar /var/lib/pulp /var/www/pub
    # service pulp-server start

    注意

    Pulp 服务器停机后,Red Hat Satellite 和 yum 客户端就无法保持连接。因此所有在 Red Hat Satellite 中进行的存储库操作都将失败。
  4. 备份数据库:
    离线数据库备份

    使用这些命令执行离线备份:

    tar --selinux -czvf mongo_data.tar.gz /var/lib/mongodb
    tar --selinux -czvf pgsql_data.tar.gz /var/lib/pgsql/data/
    

    警告

    Red Hat Satellite 必须完全不活跃方可执行离线备份。Satellite 运行时执行这个步骤将导致数据被破坏。
    这个方法可将 PostgreSQL 和 MongoDB 数据库中的所有数据归档。建议在维护阶段执行这个备份。
    PostgreSQL 数据库备份

    查看 Red Hat Satellite PostgreSQL 数据库名称。默认数据库名称为 foremanschemacandlepin。在 katello-configure 手册页或者 /usr/share/katello/install/default-answer-file 中可找到所有默认值。如果 Red Hat Satellite 实例没有使用默认名称,则请查看 katello-configure.conf,该文件中保存所有为 katello-configure 命令提供的选项,查找 db_name 即可。

    # grep db_name /etc/katello/katello-configure.conf
    运行 pg_dump 命令创建在线数据库备份。不需要停止 PostgreSQL 或者 Red Hat Satellite,且该过程不会阻断已登录用户。根据数据库大小的不同这个过程需要几分钟完成。
    # runuser - postgres -c "pg_dump -Fc foremanschema > /backup/foreman.dump"
    # runuser - postgres -c "pg_dump -Fc candlepin > /backup/candlepin.dump"

    注意

    有关 PostgreSQL 备份的详情请参考 pg_dump manual page 或者访问 http://www.postgresql.org/docs/8.4/static/backup.html
    MongoDB 数据库备份

    该数据库正在运行时,请使用在线工具备份 pulp 数据库(MongoDB)。请在备份目录中执行以下命令:

    # mongodump --host localhost --out $BDIR/mongo_dump
    这个工具生成 /backup/mongo_dump/pulp_database 目录,其中包括 JSON 文件。

    注意

    有关详情请参考 mongodump man page 或者访问 http://www.mongodb.org/display/DOCS/Backups
  5. 查看备份进程。该进程生成以下归档文件和目录:
    # ls $BDIR
    candlepin.dump    
    config_files.tar.gz    
    elastic_data.tar.gz    
    katello.dump
    mongo_dump/
    pulp_data.tar
    
    如果您执行自选的数据库离线备份,则会出现以下文件:
    mongo_data.tar.gz
    pgsql_data.tar.gz
    
    已备份 Red Hat SatelliteRed Hat Satellite 应为在线。
22921%2C+User+Guide-6.008-10-2014+13%3A34%3A52Red+Hat+Satellite+6Docs+User+Guide报告 bug