復元
- 復元前にディスク使用量を確認してください。復元中の容量不足を防ぐため、バックアップ前のデータ容量と同じか、それ以上の空き容量が必要です。
- 以下のディレクトリ例では、日時を表す 20221111184140 を使用しています。形式は「年月日時分秒」です。
- ホストではデフォルトのデータディレクトリ
/data/hap/を使用します(cat /etc/pdcaptain.json、または管理ツールのルートディレクトリでcat service.sh | grep installDir=を実行すると確認できます)。
事前準備
- 管理ツールのルートディレクトリで
bash ./service.sh stopallを実行し、HDP サービスを停止します(成功すると stoped と表示されます)。 - バックアップファイル
20221111184140.tar.gzを復元先サーバーにアップロードします。ここでは/backup/に配置します。 - 現在の環境にある元のデータを移動します(安全のため、まず mv コマンドで退避し、正常に動作することを確認してから完全に削除してください)。
time=$(date +%Y%m%d%H%M%S) && mkdir -p /backup/$time/ && mv /data/hap/script/volume/data/* /backup/$time/
dump によるバックアップ
-
/backup/ディレクトリでバックアップアーカイブを展開します。tar -zxvf 20221111184140.tar.gz -
一時コンテナを起動し、データディレクトリをマウントします。
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.0mkdir -p /data/{logs,mysql,mongodb,storage}mkdir -p /data/storage/data -
一時コンテナ内でデータリストア用のMySQLサーバーを起動します。
source /entrypoint.sh && mysqlStartup & -
MySQLデータベースを再構築します。重要なデータがある場合は削除前に必ずバックアップしてください。
source /entrypoint.sh && restore mysql /data/backup/20221111184140/mysql -
データリストア用のMongoDBサーバーを一時コンテナ内で起動します。
source /entrypoint.sh && mongodbStartup &起動するとインデックスが自動作成されます。作成が完了したら、手動で Enter キーを押してください。
-
MongoDBデータベースを再構築します。重要なデータがある場合は削除前に必ずバックアップしてください。
source /entrypoint.sh && restore mongodb /data/backup/20221111184140/mongodb -
ファイルデータを再構築します。
- マイクロサービスバージョン >=5.2.0
- マイクロサービスバージョン <5.2.0
注意:新しくデプロイしたマイクロサービスのバージョンが 5.2.0 以降の場合(filev2:5.2.0 以降は minio + file 方式を使用)、コンテナ内で minio サービスを手動起動し、bucket を作成する必要があります。- sc の名前解決用 hosts エントリを追加します。
echo '127.0.0.1 sc' >> /etc/hosts- minio を起動します。
source /entrypoint.sh && minioStartup &- bucket を作成します。
source /entrypoint.sh && fileInit &- ファイルデータを復元します。
source /entrypoint.sh && restore file /data/backup/20221111184140/filesource /entrypoint.sh && restore file /data/backup/20221111184140/file -
exit を実行し、一時コンテナから抜けます。
-
redis のキャッシュデータを削除します。
mv /data/hap/script/volume/data/redis/dump.rdb /data/hap/script/volume/data/redis/dump.rdb.bak -
管理ツールのルートディレクトリで
bash ./service.sh startallを実行し、サービスを起動します。
ファイルコピーによるバックアップ
-
元のバックアップ アーカイブを現在のサーバーにアップロードし、データディレクトリに展開します。
tar -zxvf /backup/20221111184140.tar.gz -C /data/hap/script/volume/data/ -
redis のキャッシュデータを削除します。
mv /data/hap/script/volume/data/redis/dump.rdb /data/hap/script/volume/data/redis/dump.rdb.bak -
管理ツールのルートディレクトリで
bash ./service.sh startallを実行し、サービスを起動します。