災害バックアップと復元
バックアップ
Section titled “バックアップ”3 時間ごとに、Porta データベースのバックアップが非プライマリマシン(おそらく Arbiter)で作成され、porta コンテナの storage/app/Porta-Backups ディレクトリに保存されます。バックアップは、データベースの SQL ダンプを含む ZIP アーカイブです。
バックアップアーカイブ名の形式は machine_type-machine-connection_name-backup-Y-m-d-H-i-s.zip で、Y-m-d-H-i-s はバックアップが作成された日時です。
代替セットアップ
Section titled “代替セットアップ”- Porta On Prem インストールがマシン 1 台のみで実行されている場合、バックアップはこのマシンで作成されます。
- Porta On Prem インストールが、隔離されたバックアップマシンを備えた単一マシンで実行されている場合、バックアップは両方のマシンで独立して作成されます。
クイックリファレンス
Section titled “クイックリファレンス”- メインマシンのデータベースはコンテナ名
porta-dbを持ちます。- MySQL ポート
3306 - レプリケーションポート
33061
- MySQL ポート
- バックアップマシンのデータベースはコンテナ名
porta-db-2を持ちます。- MySQL ポート
3307 - レプリケーションポート
33062
- MySQL ポート
- arbiter マシンのデータベースはコンテナ名
porta-db-3を持ちます。- MySQL ポート
3308 - レプリケーションポート
33063
- MySQL ポート
データベースログの表示
Section titled “データベースログの表示”これらのログには、レプリケーションに関する情報やその他の MySQL ログが含まれます。
- ヘルパー:
porta-onprem-bundle\porta-helpers\porta-database\view-database-log.bat
このマシンが報告するデータベースレプリケーショングループのメンバーを表示する
Section titled “このマシンが報告するデータベースレプリケーショングループのメンバーを表示する”- ヘルパー:
porta-onprem-bundle\porta-helpers\porta-database\view-group-repl-status.bat
各マシンが報告するデータベースレプリケーショングループのメンバーを表示する
Section titled “各マシンが報告するデータベースレプリケーショングループのメンバーを表示する”- ヘルパー:
porta-onprem-bundle\porta-helpers\porta-database\view-ALL-group-repl-status.bat
グループレプリケーションの開始
Section titled “グループレプリケーションの開始”- ヘルパー:
porta-onprem-bundle\porta-helpers\porta-database\actions\START-repl.bat
グループレプリケーションの停止
Section titled “グループレプリケーションの停止”- ヘルパー:
porta-onprem-bundle\porta-helpers\porta-database\actions\STOP-repl.bat
手動でのバックアップ作成
Section titled “手動でのバックアップ作成”Porta は自動的にバックアップを作成しますが、リセットのような破壊的なレプリケーション復旧操作を実行する前など、手動でバックアップを作成したい場合は、porta-onprem-bundle\porta-helpers\porta-database\action に移動して create-backup.bat を実行することで作成できます。
作成されたバックアップは、porta コンテナの /var/www/storage/app/Porta-Backups ディレクトリに、machine_type-machine-connection_name-backup-Y-m-d-H-i-s.zip のような名前で配置されます。
データ損失からの復旧
Section titled “データ損失からの復旧”単一ノードの災害復旧(データ損失)
Section titled “単一ノードの災害復旧(データ損失)”復元が必要なメンバーが 1 つだけの場合は、壊れたデータベースを消去して再構築し、新しいメンバーとして再参加させて、レプリケーションに復元させる必要があります。復旧にバックアップを使用する必要はありません。リカバリーガイドの 「Reset Database」セクション を参照してください。
データベースコンテナのリセットが完了すると、データベースは既存のグループに参加し、既存のデータベースからデータのレプリケーションを開始するはずです。レプリケーションが完了すると、復元は完了です。
複数ノードの災害復旧(データ損失)
Section titled “複数ノードの災害復旧(データ損失)”ほとんどの場合、災害復旧が必要な状況では、ほとんどまたはすべてのデータベースが停止またはオフラインになっています。
いずれかのマシンでデータベースコンテナが停止している場合は、データを検査して復旧手順を実行できるように、それらを起動してください。グループレプリケーションは起動時に失敗しますが、それで問題ありません。データにアクセスするためにデータベースが実行されている必要があるだけです。
- 可能であれば、各マシンでバックアップツールを手動で実行します。
- 上記の 「手動でのバックアップ作成」セクション を参照してください。
- 各マシンのデータベースコンテナを停止します。
- 復元に使用したいバックアップを含むマシンで、データベースコンテナをリセットします。
- リカバリーガイドの 「Reset Database」セクション を参照してください。
- データベースコンテナのリセットが完了すると、コンテナは実行状態になり、復元ツールを実行して復元元のバックアップファイルを選択できるようになります。理想的には、これはすべてのマシンの中で最新のバックアップであるべきです。
- 下記の 「バックアップツールで作成したバックアップからの復元」セクション を参照してください。
- 復元が完了したら、他のマシンのデータベースコンテナをリセットします。
- リカバリーガイドの 「Reset Database」セクション を参照してください。
- データベースコンテナのリセットが完了すると、各マシンのデータベースは既存のグループに参加し、復元されたデータベースからデータのレプリケーションを開始するはずです。
- データベースコンテナがグループに参加し、データのレプリケーションが完了すると、復元は完了です。
バックアップツールで作成したバックアップからの復元
Section titled “バックアップツールで作成したバックアップからの復元”porta-onprem-bundle\porta-helpers\porta-database\actions に移動して restore-from-backup.bat を実行します。
最終的に、復元に使用するバックアップファイルを選択するよう求められます。復元したいバックアップに対応する番号を入力して Enter を押します。
Unreal Engine でのフェイルオーバー復旧
Section titled “Unreal Engine でのフェイルオーバー復旧”注: メイン PX が復旧した後、使用中の PX をメイン PX に戻すには、RX のデスクトップにある
make px1 primary.batバッチファイルを実行します。
マシンの完全な障害 - 電源またはネットワークの喪失
Section titled “マシンの完全な障害 - 電源またはネットワークの喪失”RX のデスクトップにある RX バッチファイル make px2 primary.bat を実行して、実行中の Unreal プロジェクトをバックアップ PX に切り替えます。
マシンの部分的な障害 - サービス/パフォーマンスの喪失
Section titled “マシンの部分的な障害 - サービス/パフォーマンスの喪失”障害が発生した PX で、porta-onprem-bundle/porta-helpers/porta-run の stop-porta-socket.bat を実行して、Porta のソケットサーバー(porta-socket)を停止します。
デスクトップにある RX バッチファイル make px2 primary.bat を実行して、実行中の Unreal プロジェクトをバックアップ PX に切り替えます。