メインコンテンツへ移動

復元

  • 復元前にディスク使用量を確認してください。復元中の容量不足を防ぐため、バックアップ前のデータ容量と同じか、それ以上の空き容量が必要です。
  • 以下のディレクトリ例では、日時を表す 20221111184140 を使用しています。形式は「年月日時分秒」です。
  • ホストではデフォルトのデータディレクトリ /data/mingdao/ を使用します(cat /etc/pdcaptain.json、または管理ツールのルートディレクトリで cat service.sh | grep installDir= を実行すると確認できます)。

事前準備​

  1. 管理ツールのルートディレクトリで bash ./service.sh stopall を実行し、HDP サービスを停止します(成功すると stoped と表示されます)。
  2. バックアップファイル 20221111184140.tar.gz を復元先サーバーにアップロードします。ここでは /backup/ に配置します。
  3. 現在の環境にある元のデータを移動します(安全のため、まず mv コマンドで退避し、正常に動作することを確認してから完全に削除してください)。
    time=$(date +%Y%m%d%H%M%S) && mkdir -p /backup/$time/ && mv /data/mingdao/script/volume/data/* /backup/$time/

dump によるバックアップ​

  1. /backup/ ディレクトリでバックアップアーカイブを展開します。

    tar -zxvf 20221111184140.tar.gz
  2. 一時コンテナを起動し、データディレクトリをマウントします。

    docker run -it --rm --entrypoint bash -e ENV_MYSQL_HOST="127.0.0.1" -e ENV_MYSQL_PORT="3306" -e ENV_MYSQL_USERNAME="root" -e ENV_MYSQL_PASSWORD="123456" -e ENV_MONGODB_URI="mongodb://127.0.0.1:27017" -e ENV_MONGODB_OPTIONS="" -v /data/mingdao/script/volume/data/:/data/ -v /backup/:/data/backup/ registry.cn-hangzhou.aliyuncs.com/mdpublic/mingdaoyun-sc:3.2.0
    mkdir -p /data/{logs,mysql,mongodb,storage}
    mkdir -p /data/storage/data
  3. 一時コンテナ内でデータリストア用のMySQLサーバーを起動します。

    source /entrypoint.sh && mysqlStartup &
  4. MySQLデータベースを再構築します。重要なデータがある場合は削除前に必ずバックアップしてください。

    source /entrypoint.sh && restore mysql /data/backup/20221111184140/mysql
  5. データリストア用のMongoDBサーバーを一時コンテナ内で起動します。

    source /entrypoint.sh && mongodbStartup &

    起動するとインデックスが自動作成されます。作成が完了したら、手動で Enter キーを押してください。

  6. MongoDBデータベースを再構築します。重要なデータがある場合は削除前に必ずバックアップしてください。

    source /entrypoint.sh && restore mongodb /data/backup/20221111184140/mongodb
  7. ファイルデータを再構築します。

    注意:新しくデプロイしたマイクロサービスのバージョンが 5.2.0 以降の場合(filev2:5.2.0 以降は minio + file 方式を使用)、コンテナ内で minio サービスを手動起動し、bucket を作成する必要があります。
    1. sc の名前解決用 hosts エントリを追加します。
    echo '127.0.0.1 sc' >> /etc/hosts
    1. minio を起動します。
    source /entrypoint.sh && minioStartup &
    1. bucket を作成します。
    source /entrypoint.sh && fileInit &
    1. ファイルデータを復元します。
    source /entrypoint.sh && restore file /data/backup/20221111184140/file
  8. exit を実行し、一時コンテナから抜けます。

  9. redis のキャッシュデータを削除します。

    mv /data/mingdao/script/volume/data/redis/dump.rdb /data/mingdao/script/volume/data/redis/dump.rdb.bak
  10. 管理ツールのルートディレクトリで bash ./service.sh startall を実行し、サービスを起動します。

ファイルコピーによるバックアップ​

  1. 元のバックアップアーカイブを現在のサーバーにアップロードし、データディレクトリに展開します。

    tar -zxvf /backup/20221111184140.tar.gz -C /data/mingdao/script/volume/data/
  2. redis のキャッシュデータを削除します。

    mv /data/mingdao/script/volume/data/redis/dump.rdb /data/mingdao/script/volume/data/redis/dump.rdb.bak
  3. 管理ツールのルートディレクトリで bash ./service.sh startall を実行し、サービスを起動します。