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 的 man page 或是 /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 man 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 Satellite 現在已備份。Red Hat Satellite 應已連上線。
22921%2C+User+Guide-6.008-10-2014+13%3A34%3A52Red+Hat+Satellite+6Docs+User+Guide回報錯誤