メインコンテンツへ移動

リストア

  • 以下のディレクトリは例として「20221111184140」という日時を使用しています(形式:年・月・日・時・分・秒)。
  • ホストはデフォルトのデータディレクトリ /data/hap/ を使用します(マネージャーのルートディレクトリで cat /etc/pdcaptain.json または cat service.sh | grep installDir= を実行すると確認できます)。

準備作業

  1. HAPサービスを停止します。マネージャーのルートディレクトリで bash ./service.sh stopall を実行します。
  2. バックアップファイル 20221111184140.tar.gz をデータリストアサーバー(例 /backup/ ディレクトリ)へアップロードします。
  3. 現在の環境から元のデータを削除します(安全のため、まずは mv コマンドで移動し、問題なければ完全に削除してください)。
    time=$(date +%Y%m%d%H%M%S) && mkdir -p /backup/$time/ && mv /data/hap/script/volume/data/* /backup/$time/

ダンプ(v3.7.1以降で利用可能)​

  1. /backup/ ディレクトリでバックアップファイルのZIPパッケージを解凍します。
    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/hap/script/volume/data/:/data/ -v /backup/:/data/backup/ nocoly/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. ファイルデータを再構築します。
    source /entrypoint.sh && restore file /data/backup/20221111184140/file
  8. 一時コンテナを終了します。
  9. マネージャーのルートディレクトリで bash ./service.sh startall を実行し、サービスを再起動します。

ファイルコピー​

  1. 元のバックアップファイルのZIPパッケージを現在のサーバーにアップロードし、データディレクトリに解凍します。
    tar -zxvf /backup/20221111184140.tar.gz -C /data/hap/script/volume/data/
  2. マネージャーのルートディレクトリで bash ./service.sh startall を実行し、サービスを再起動します。