Data Restore
障害や災害の発生時、あるいはデータ損失時には、PMPデータベースのバックアップから復元することができます。そのため、データを復旧するためのスクリプトが用意されています。
1. 必要となる手順
PostgreSQL、もしくはMySQLをバックエンド データベースとして使用している場合のディザスタ リカバリ手順
重要メモ:
- データを復元する前に、PMPサーバーを停止してください。サーバーの動作中に復元処理を実行すると、データの破損の原因となります。
- Windows版のPMPからバックアップしたデータは、Windows版のPMPにのみ復元可能です。
- バックアップからリストアする際に、現在のPMPと同じビルド番号、同じアーキテクチャのPMPを再インストールしてください。例えば:PMP32-bit版ビルド10500を使用しているならば、同様の32-bit版ビルド10500をインストールしてください。
- restoreDBコマンドを使用する前にサービスを起動、停止させてください。
i. Windowsの場合
- [PMP_Home]\binフォルダーへ移動します。
- 次のスクリプトを実行します。restoreDB.bat <backup file name> -p <Key path>。.zip形式のバックアップファイルのファイル名を指定してください。バックアップファイルとpmp_key.keyファイルはPMPサーバー内の同じパス、同じフォルダーへ配置されている必要があります。
- バックアップされたコンテンツがPMPのデータベースに復元されます。
- [PMP_Installation_Folder]/confフォルダーへ移動し、manage_key.confをテキストエディタで開きます。pmp_key.key(AES 256の暗号化マスター鍵)の場所を確認します。PMPを起動させるためには、PMPからアクセス可能な場所に配置された pmp_key.key ファイルのフルパス情報が必要です。起動に成功すると、マスター鍵へのアクセスは必要ありませんので、鍵を格納したデバイスまたはネットワーク ドライブは切り離すことができます。
ii. For Linux
- [PMP_Home]\binフォルダーへ移動します。
- 次のスクリプトを実行します。restoreDB.sh <backup file name> -p <Key path>。.zip形式のバックアップファイルのファイル名を指定してください。バックアップファイルとpmp_key.keyファイルはPMPサーバー内の同じパス、同じフォルダーへ配置されている必要があります。
- バックアップされたコンテンツがPMPのデータベースに復元されます。
- [PMP_Installation_Folder]/confフォルダーへ移動し、manage_key.confをテキストエディタで開きます。pmp_key.key(AES 256の暗号化マスター鍵)の場所を確認します。PMPを起動させるためには、PMPからアクセス可能な場所に配置された pmp_key.key ファイルのフルパス情報が必要です。起動に成功すると、マスター鍵へのアクセスは必要ありませんので、鍵を格納したデバイスまたはネットワーク ドライブは切り離すことができます。
2. MS SQL Serverでのディザスタリカバリ手順
2.1 必要条件
PMPは、データ暗号化のためにSQL Serverの暗号化機能を利用します。暗号化マスター鍵は、<PMPインストールフォルダー>/confディレクトリにmasterkey.keyという名前で保存されます。セキュリティ上の理由により、Microsoft SQL Serverのインストール中には、暗号化キーを既定のフォルダから別の安全なフォルダにコピーしておくことを推奨します。障害復旧(ディザスタリカバリ)の際には、マスター鍵を利用します。
ステップ 1
MS SQLをバックエンドとして使用するPMPのインスタンスを別途インストールします。バックアップのリストア先となるMS SQL Serverの新しいインスタンスを指定します。MSSQL Serverの新規インスタンスには、SSLを有効に設定してください。SSLを有効にする方法は、詳細についてはMS SQLサーバーの設定のステップ 10.1.1 to 10.1.3を参照してください。
ステップ 2
PMPのバックアップファイルをSQL Serverからコピーします。デフォルトでは<MS SQL Server>/Backupフォルダーに、pmpbackup_pmpversion_backupdate-time.bakというような名前のファイルで保存されています。(例:pmpbackup_6400_110721-1159.bak).
ステップ 3
バックアップを復元する先のマシン上で、"Microsoft SQL Server Management Studio" を起動し、データベース エンジンに接続します。
ステップ 4
データベースを右クリックし、表示されたメニューにてデータベースをリストアをクリックする
ステップ 5
[データベースをリストア]ウインドウ上で、デバイスからオプションを選択し、 [...] ボタンをクリックしてPMPバックアップ ファイルを指定します。
ステップ 6
[バックアップを決定]画面が表示されるので、バックアップメディアとして[ファイル]オプションを選択し、[追加]をクリックします。
ステップ 7
[バックアップファイルを検索]ウィンドウにて、PMPバックアップファイルを選択し、[OK]をクリックします。
ステップ 8
- [データベースをリストア]ウインドウにて、[データベースへ]フィールドを使用してバックアップの復元先を指定します。
- [リストア用バックアップセットを選択]の画面から、必要な[リストアカラム]を選択します。
- [OK]をクリックし、データベースの復元を開始します。
- 復元処理が完了すると、状態を示すウインドウがポップアップします。
ステップ 9
次に、マスター鍵を復元する必要があります。必要条件の項目で説明した通り、暗号化マスター鍵はデフォルトでは<PMPインストールフォルダ>/confディレクトリに、masterkey.keyというファイル名で保存されます。セキュリティ対策のためにファイルを別のセキュアな場所に保管している場合は、それを指定します。[master_key.key]ファイルを開き、パスワードをコピーします。
ステップ 10
PMPバックアップ ファイルを復元したSQL Serverに接続します。
"Microsoft SQL Server Management Studio" を開き、データベース エンジンに接続します。
次のクエリを実行します:
use write_the_name_of the restored_database;
OPEN MASTER KEY DECRYPTION BY PASSWORD = 'type_the_master_key_password';
alter master key regenerate with encryption by password = 'type_the_master_key_password';
例:
use passtrix;
OPEN MASTER KEY DECRYPTION BY PASSWORD = 'secret';
alter master key regenerate with encryption by password = 'secret';
上記クエリを実行することにより、データが復号化されます。
ステップ 11
<PMPインストールフォルダ>/confフォルダーへ移動し、manage_key.confファイルをテキストエディタで開きます。そしてpmp_key.key (暗号化されたマスター鍵)の保管場所を確認します。 PMPを起動させるためには、PMPからアクセス可能な場所に配置された pmp_key.key ファイルのフルパス情報が必要です。起動に成功すると、マスター鍵へのアクセスは必要ありませんので、鍵を格納したデバイスまたはネットワーク ドライブは切り離すことができます。
重要事項:
- .bakファイルのデータベースのリストアを実行し、PMPがデータベースへ接続するのと同じアカウントを利用してマスター鍵をセットする上記のクエリを実行します。
- SQL Studioにてデータベースのリストアを実行したアカウントとマスター鍵のクエリを実行したアカウントが異なる場合、PMPアカウントがマスター鍵の参照権限を有するために必要な以下の追加のクエリを実行します。
GRANT VIEW DEFINITION ON CERTIFICATE::PMP_CERT TO [user]
GRANT VIEW DEFINITION ON SYMMETRIC KEY::PMP_SYM_KEY TO [user]
GRANT CONTROL ON CERTIFICATE::PMP_CERT TO [user]
- 上記のクエリにおける[user]はSQLデータベースへ接続するためにPMPが使用する実際のアカウントのログイン名を言及しています。Windows認証に使用しているアカウントでなければ、<PMPインストールフォルダ>/conf/database_params.confファイル内のJDBC URLにてこのアカウント名を確認できます。
- 以下のクエリを実行し、CERTIFICATE、SYMMETRIC KEYの名前が正しいかどうか検証してください:
select * from sys.certificates
select * from sys.symmetric_keys