Postgres Enterprise Manager™サーバーの移動¶
このセクションの手順では、PEMサーバーをあるホストマシンから新しいホストマシンに移動する方法について説明します。新しいホスト(ターゲット)上のPEMサーバーは、元のホスト(ソース)と同じバージョンのPEMサーバーインストーラーでインストールする必要があります。同じインストーラーバージョンを使用しない場合、スキーマ不一致エラーが発生する可能性があることに注意してください。
ターゲットサーバー(PostgreSQLまたはAdvanced Server)のバッキングデータベースは、ソースPEMサーバーのバッキングデータベースと同じタイプとバージョン、または異なるタイプとバージョンである場合があります。 PostgreSQLホスト上にあるPEMサーバーは、Advanced Serverホストに移行できます。その逆も可能です。
サーバーの移行を開始する前に、ソースホスト、ターゲットホスト、およびPEMエージェントのホスト間のファイアウォールがサービス間の接続を許可することを確認する必要があります。
ステップ1-ターゲットホストの準備
ターゲットホストでPEMサーバーのインストーラーを起動します。ソースPEMサーバーのインストール時に使用したものと同じバージョンのPEMサーバーインストーラーを使用する必要があることに注意してください。
ターゲットサーバーのバッキングデータベースは、ソースのバッキングデータベースとは異なるバージョンまたはタイプである場合があります。新しいPEMサーバーが元のサーバーと同じタイプのバッキングデータベースにない場合、新しいバージョンのsslutils拡張機能が新しいサーバーホストにインストールされていることを確認する必要があります。 PEMインストーラーと共に配布されるsslutilsのバージョンは、次のEnterpriseDB Webサイトから無料でダウンロードできます。
PEMサーバーまたはsslutils拡張機能のPEM Installation Guideについては、次の場所にあるPEM Installation Guideを参照してください。
ステップ2 –既存のスキーマを新しいPEMサーバーから削除する
移行プロセスは、ターゲットPEMサーバー上のソースPEMサーバーからpem 、 pemdata 、およびpemhistoryスキーマを再作成します。移動の準備として、 psqlクライアントを使用して、ターゲットホスト上のpemデータベースからこれらのスキーマを削除します。コマンドラインで、またはPostgres Enterprise ManagerメニューからSQL Shell (psql)選択して、 psqlクライアントを開くことができます。
psqlクライアントが開いたら、データベーススーパーユーザーとしてpemバッキングデータベースに接続します。ターゲットホスト上のpemデータベースに接続したら、次のコマンドを使用してスキーマを削除します。
-
DROP SCHEMA pem CASCADE; -
DROP SCHEMA pemdata CASCADE; -
DROP SCHEMA pemhistory CASCADE;
スキーマを削除するときは、 CASCADEキーワードを含めて、すべての依存オブジェクトを削除するようサーバーに指示する必要があります。コマンドを実行すると、 psql`クライアントは依存オブジェクトのリストを表示します。クライアントは、 DROP SCHEMA表示することにより、各スキーマが削除されることを確認します。

PEMスキーマの削除
ステップ3-新しいPEMサーバーでPEMエージェントを準備する
PEMサーバーを移動する前に、ソースPEMサーバーによって監視されているエージェントの数を特定し、ターゲットサーバーでその数のエージェント(1つ未満)のIDを作成する必要があります。 PEMサーバーによって監視されているPEMエージェントの合計数を検出するには、 psqlクライアントを使用してソースホスト上のpemデータベースに接続し、 pem.agentテーブルを照会します。
SELECT id FROM pem.agent WHERE active = true;
元のPEMサーバーに存在するエージェントの数を1つ少なくして手動で作成する必要があります。 PEMサーバーインストーラーは、ターゲットホスト上に既に1つのエージェントを作成しています。たとえば、ソースサーバーに3つのエージェントが含まれている場合、2つの追加エージェントを手動で作成する必要があります。ターゲットサーバー上のpemデータベースとのpsqlセッションを開き、必要なエージェントを作成します。次のコマンドを使用します。
CREATE USER agent <x>;
ここで、 <x>はエージェント番号を指定します。 agent1は、PEMサーバーインストーラーによってターゲットホスト上に作成されます。
次に、 GRANTコマンドを使用して、ターゲットPEMサーバーにある各エージェントにpem_agent権限を割り当てます。
GRANT pem_agent TO agent <x>;
ここで、 <x>はエージェント番号を指定します。
ステップ4-ソースPEMサーバーのバックアップスクリプトを生成する
pg_dumpユーティリティを使用して、ターゲットホストでpemデータベースを再作成するために必要なコマンドを含むスクリプトを生成できます。デフォルトでは、 pg_dumpはPostgresインストールの下のbinディレクトリにインストールされます。 pg_dumpを呼び出すには、コマンドラインを開き、 binディレクトリに移動して、次のように入力します。
pg_dump -U <user_name> <db_name> > <file_name>
どこで:
<user_name>は、PEMバッキングデータベースのデータベーススーパーユーザーの名前を指定します。
<db_name>は、PEMバッキングデータベースの名前を指定します。
<file_name>は、pg_dumpによって生成されたスクリプトの名前を指定します。
プロンプトが表示されたら、指定したユーザーに関連付けられたパスワードを入力します。
示されているコマンドは、 pg_dumpに(実行時に) pemデータベースを再作成するスクリプトを生成するように指示します。スクリプトの名前はbackup.sqlになり、 tmpディレクトリに作成されます。 pg_dumpは、ユーザーpostgres資格情報を使用してサーバーに接続しています。
pg_dumpユーティリティを呼び出しても、現在のデータベースユーザーは中断されないことに注意してください。
ステップ5-バックアップをターゲットホストに移動する
pg_dumpユーティリティによって生成されたスクリプトをPEMサーバーのターゲットホストに移動します。
ステップ6-ターゲットホストでバックアップを復元する
ターゲットホストでコマンドラインを開き、 binディレクトリ(Postgresバッキングデータベースのインストールディレクトリの下)に移動します。
psql起動し、 pg_dumpユーティリティで生成されたスクリプトを実行します。
psql -U <user_name> -d pem -f <file_name>
どこで:
<user_name>は、データベースのスーパーユーザーの名前を指定します。指定されたユーザーは、バッキングデータベースに対する接続特権を持っている必要があります。
<file_name>は、pg_dumpによって生成されたバックアップスクリプトへの完全なパスを指定します。
プロンプトが表示されたら、データベースのスーパーユーザーに関連付けられたパスワードを入力します。

バックアップスクリプトの復元
この例では、 psqlクライアントを使用してbackup.sqlという名前のスクリプトを呼び出し、 pemデータベースを再作成します。スクリプトは、データベーススーパーユーザーpostgres関連付けられた特権を使用して呼び出されます。
ステップ7-ターゲットホストでデータベースサーバーを停止する
LinuxでPEMサーバーを停止するには、次のコマンドを使用します。
/etc/init.d/<service_name> stop
<service_name>は、バッキングデータベースサーバーの名前を指定します。 PostgreSQLバッキングデータベースの場合、サービス名はpostgresql-xxであり、Advanced Serverバッキングデータベースの場合、サービス名はppas-xxで、 xxはバージョン番号を指定します。
Windowsを使用している場合は、[ Services ]ダイアログを使用してServicesを制御できます。 [ Services ]ダイアログを開くには、[ Control Panelから[ System and Security ]メニューに移動します。 [ Administrative Tools ]を選択し、[ Services ]アイコンをダブルクリックします。 [ Services ]ダイアログが開いたら、リスト内のサービス名を強調表示し、ダイアログに表示されるオプションを使用してサービスを停止します。
ステップ8-証明書ファイルをターゲットホストにコピーする
ターゲットホストのインストール時に作成される証明書ファイルを、ソースホストの証明書ファイルに置き換える必要があります。次のファイルをソースPEMサーバーからターゲットPEMサーバーにコピーします。
-
ca_certificate.crt -
ca_key.key -
root.crt -
root.crl -
server.key -
server.crt
ターゲットクラスタのバッキングデータベースを提供するPostgresインストールの下のdataディレクトリにファイルをコピーします。 Linuxでは、デフォルトで、ファイルは次の場所にあります。
/opt/PostgreSQL/<xx>/data/
Windowsでは、ファイルは次の場所にあります。
C:\Program Files\PostgreSQL\<xx>\data
どこで:
<xx>は、システム上のPostgresSQLのバージョンを指定します。
ファイルは既にターゲットクラスタに存在します。コピーを実行する前に既存のファイルを削除するか、既存のファイルをソースサーバーのファイルで上書きします。ターゲットサーバーに配置されたら、ファイルには、以降のセクションで説明する(プラットフォーム固有の)権限が必要です。
Linuxでの権限と所有権
| ファイル名 | オーナー | 許可 |
| ca_certificate.crt | ポストグレス | -rw ——- |
| ca_key.key | ポストグレス | -rw ——- |
| root.crt | ポストグレス | -rw ——- |
| root.crl | ポストグレス | -rw ——- |
| server.key | ポストグレス | -rw ——- |
| server.crt | ポストグレス | -rw-r–r– |
Linuxでは、証明書ファイルはpostgresが所有する必要があります。コマンドラインで次のコマンドを使用して、ファイルの所有権を変更できます。
chown postgres <file_name>
file_nameは、証明書ファイルの名前を指定します。
server.crtファイルは、ファイルの所有者のみが変更できますが、すべてのユーザーが読み取ることができます。次のコマンドを使用して、server.crtファイルのファイル許可を設定できます。
chmod 644 server.crt
他の証明書ファイルは、ファイルの所有者のみが変更または読み取ることができます。次のコマンドを使用して、ファイルのアクセス許可を設定できます。
chmod 600 <file_name>
file_nameは、ファイルの名前を指定します。
Windowsでの権限と所有権
Windowsでは、ソースホストから移動した証明書ファイルは、ターゲットホストでPEMサーバーとバッキングデータベースのインストールを実行したサービスアカウントが所有している必要があります。 [ Run as Administrator ]オプション(インストーラーのコンテキストメニューから選択)を使用してPEMサーバーとPostgresインストーラーを呼び出した場合、証明書ファイルの所有者はAdministratorsます。
Windowsでファイルのアクセス許可を確認および変更するには、ファイル名を右クリックし、[ Properties ]を選択しProperties 。

権限タブ
[ Security ]タブに移動し、 Group or user nameを強調表示して、割り当てられたアクセス許可を表示します。 [ Editまたは[ Advancedを選択して、選択したユーザーに関連付けられている権限を変更できるダイアログにアクセスします。
ステップ9-PEMエージェント証明書ファイルをPEMサーバーホストに移動する
ソースPEMサーバーのPEMエージェントが使用する証明書ファイルをターゲットホストに移動する必要があります。この手順はプラットフォーム固有です。
Linuxの場合
agent1.keyおよびagent1.crtファイルをソースホストからターゲットホストにコピーします。デフォルトでは、Linuxでは、ファイルは/root/.pemインストールされ/root/.pem 。ファイルをターゲットホスト上の同じディレクトリにコピーします。
ファイルのファイル所有権とアクセス許可は、次のように設定する必要があります。
| ファイル名 | オーナー | 許可 |
| agent1.key | ルート | -rw ——- |
| agent1.crt | ルート | -rw-r–r– |
必要に応じて、 /root/.pemに移動し、次のコマンドを使用してagent1.keyファイルの権限と所有権を変更します。
chmod 600 agent1.key
chown root agent1.key
次のコマンドを使用して、 agent1.crtファイルの許可と所有権を変更します。
chmod 644 agent1.crt
chown root agent1.crt
Windows
agent1.keyおよびagent1.crtファイルをソースホストからターゲットホストにコピーします。 Windowsでは、ファイルは次の場所にあります。
C:\Users\<user_name>\AppData\Roaming\pem
user_nameは、PEMインストーラーを呼び出したユーザーの名前です。
ターゲットマシン上の証明書ファイルに関連付けられている所有権と許可は、ソースマシン上の証明書ファイルの所有権と許可と一致する必要があります。 [ Run as Administrator ]オプション(インストーラーのコンテキストメニューから選択)を使用してPEMサーバーとPostgresインストーラーを呼び出した場合、エージェント証明書ファイルの所有者はAdministratorsます。
Windowsでファイルのアクセス許可を確認および変更するには、ファイル名を右クリックし、[ Properties ]を選択しProperties 。 [ Security ]タブに移動し、 Group or user nameを強調表示して、割り当てられたアクセス許可を表示します。 [ Editまたは[ Advancedを選択して、選択したユーザーに関連付けられている権限を変更できるダイアログにアクセスします。
ステップ10-ターゲットホスト上の `` pg_hba.conf``ファイルを更新する
ターゲットホスト上のpg_hba.confファイルを変更して、各PEMエージェントからの接続を許可します。デフォルトでは、 pg_hba.confファイルはPostgresインストールの下のデータディレクトリにあります。
ステップ11-ターゲットホストでサーバーを起動する
pg_hba.confファイルを変更した後、サーバーを再起動して変更を有効にする必要があります。
Linuxでデータベースサーバーを再起動するには、次のコマンドを使用します。
/etc/init.d/<service_name> start
service_nameは、バッキングデータベースサーバーの名前です。
Windowsを使用している場合は、[ Services ]ダイアログを使用してServicesを制御できます。 [ Services ]ダイアログを開くには、[ Control Panelから[ System and Security ]メニューに移動します。 [ Administrative Tools選択してから、
[ Services ]アイコンをダブルクリックします。 [ Services ]ダイアログが開いたら、リスト内のサービス名を強調表示し、ダイアログに表示されるオプションを使用してサービスを開始します。
ステップ12-監視対象エージェントを新しいPEMサーバーホストに接続する
既存のPEMエージェントに新しいPEMサーバーホストに接続するよう指示するには、以下を行う必要があります。
- PEMエージェントホストが新しいPEMサーバーホストに接続できることを確認します。
- 新しいPEMサーバーのIPアドレスとポートを指定して、レジストリ(PEMエージェントを使用する各Windowsホスト)またはエージェント構成ファイル(PEMエージェントを使用する各Linuxホスト)を変更します。
- PEMエージェントのサービスを再起動します。
これらの手順はプラットフォーム固有です。
PEMエージェントがLinux上にある場合
変更するエディタの選択を使用しagent.cfg中でPEMサーバの新しいIPアドレスとポート番号を指定して、ファイルをpem_hostとpem_portパラメータ。
デフォルトでは、 agent.cfgファイルは次の場所にあります。
/opt/PEM/agent/etc/agent.cfg

agent.cfgファイル
agent.cfgファイルを変更した後、PEMエージェントサービスを再起動する必要があります。 Linuxコマンドラインでpemagentサービススクリプトを使用して、サービスを再起動できます。
/etc/init.d/pemagent restart
PEMエージェントがWindows上にある場合
監視対象ノードのWindowsレジストリを変更する前に、PEMエージェントのホスト上のファイアウォールがPEMサーバーへの接続を許可することを確認してください。 PEMエージェントホストがPEMサーバーホストに接続できることを確認した後、Windows Registry Editorを使用してPEM_HOSTおよびPEM_PORTエントリを確認および編集し、PEMサーバーが使用するホストおよびポートを正しく識別できることを確認できます。 Registry Editorを開くには、Windowsの[ Run ]ダイアログまたはWindowsの[スタート]メニューの検索ボックスにregeditします。
レジストリツリーコントロールをナビゲートして、レジストリエントリを表示または変更します。 64ビットWindowsでは、PEMエージェントのレジストリエントリは次の場所にあります。
HKEY_LOCAL_MACHINE SOFTWARE wow6432Mode EnterpriseDB PEM agent
32ビットWindowsでは、PEMエージェントのレジストリエントリは次の場所にあります。
HKEY_LOCAL_MACHINE SOFTWARE EnterpriseDB PEM agent

Windowsレジストリエディター
PEM_HOSTおよびPEM_PORTエントリは、ターゲットホスト上の新しいPEMサーバーのアドレスとポート番号を指定する必要があります。レジストリエントリを変更するには、エントリName右クリックし、コンテキストメニューから[ Modify ]を選択してModify Edit StringのEdit String ]ダイアログを開きます。

Windowsレジストリエディター
[ Edit StringのEdit String ]ダイアログを使用して、エントリの値を変更します。完了したら、[ OK ]をクリックして変更を保存するか、[ Cancel ]をクリックして保存せずに終了します。
レジストリを変更した後、PEMエージェントのサービスを再起動する必要があります。 [ Services ]ダイアログ(Windows Control Panelからアクセス)を使用して、 Postgres Enterprise Manager - pemAgentサービスを再起動Postgres Enterprise Manager - pemAgentます。

PEMエージェントのサービスの再起動
サーバーを移動した後、インストールされているPEMクライアントの接続プロパティを変更して、PEMサーバー、エージェント、監視対象サーバーの新しいホストに接続します。