コンテンツにスキップ

災害バックアップと復元

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 はバックアップが作成された日時です。

  • Porta On Prem インストールがマシン 1 台のみで実行されている場合、バックアップはこのマシンで作成されます。
  • Porta On Prem インストールが、隔離されたバックアップマシンを備えた単一マシンで実行されている場合、バックアップは両方のマシンで独立して作成されます。
  • メインマシンのデータベースはコンテナ名 porta-db を持ちます。
    • MySQL ポート 3306
    • レプリケーションポート 33061
  • バックアップマシンのデータベースはコンテナ名 porta-db-2 を持ちます。
    • MySQL ポート 3307
    • レプリケーションポート 33062
  • arbiter マシンのデータベースはコンテナ名 porta-db-3 を持ちます。
    • MySQL ポート 3308
    • レプリケーションポート 33063

これらのログには、レプリケーションに関する情報やその他の 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

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 “単一ノードの災害復旧(データ損失)”

復元が必要なメンバーが 1 つだけの場合は、壊れたデータベースを消去して再構築し、新しいメンバーとして再参加させて、レプリケーションに復元させる必要があります。復旧にバックアップを使用する必要はありません。リカバリーガイドの 「Reset Database」セクション を参照してください。

データベースコンテナのリセットが完了すると、データベースは既存のグループに参加し、既存のデータベースからデータのレプリケーションを開始するはずです。レプリケーションが完了すると、復元は完了です。

複数ノードの災害復旧(データ損失)

Section titled “複数ノードの災害復旧(データ損失)”

ほとんどの場合、災害復旧が必要な状況では、ほとんどまたはすべてのデータベースが停止またはオフラインになっています。

いずれかのマシンでデータベースコンテナが停止している場合は、データを検査して復旧手順を実行できるように、それらを起動してください。グループレプリケーションは起動時に失敗しますが、それで問題ありません。データにアクセスするためにデータベースが実行されている必要があるだけです。

  1. 可能であれば、各マシンでバックアップツールを手動で実行します。
  2. 各マシンのデータベースコンテナを停止します。
  3. 復元に使用したいバックアップを含むマシンで、データベースコンテナをリセットします。
  4. データベースコンテナのリセットが完了すると、コンテナは実行状態になり、復元ツールを実行して復元元のバックアップファイルを選択できるようになります。理想的には、これはすべてのマシンの中で最新のバックアップであるべきです。
  5. 復元が完了したら、他のマシンのデータベースコンテナをリセットします。
  6. データベースコンテナのリセットが完了すると、各マシンのデータベースは既存のグループに参加し、復元されたデータベースからデータのレプリケーションを開始するはずです。
  7. データベースコンテナがグループに参加し、データのレプリケーションが完了すると、復元は完了です。

バックアップツールで作成したバックアップからの復元

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-runstop-porta-socket.bat を実行して、Porta のソケットサーバー(porta-socket)を停止します。

デスクトップにある RX バッチファイル make px2 primary.bat を実行して、実行中の Unreal プロジェクトをバックアップ PX に切り替えます。