PostgresEnterpriseManager™サーバーの移動

このセクションの手順では、あるホストマシンから新しいホストマシンにPEMサーバーを移動する方法について説明します。新しいホスト(ターゲット)のPEMサーバーは、元のホスト(ソース)と同じバージョンのPEMサーバーインストーラーでインストールする必要があります。同じインストーラーのバージョンを使用しない場合、スキーマ不一致エラーが発生する可能性があることに注意してください。

ターゲットサーバー(PostgreSQLまたはAdvancedServer)のバッキングデータベースは、ソースPEMサーバーのバッキングデータベースと同じタイプとバージョン、または異なるタイプとバージョンである場合があります。PostgreSQLホスト上にあるPEMサーバーは、AdvancedServerホストに移行できます。その逆も可能です。

サーバーの移行を開始する前に、ソースホスト、ターゲットホスト、およびPEMエージェントのホスト間のファイアウォールがサービス間の接続を許可することを確認する必要があります。

ステップ1-ターゲットホストの準備

ターゲットホストでPEMサーバーのインストーラーを起動します。ソースPEMサーバーのインストール時に使用したものと同じバージョンのPEMサーバーインストーラーを使用する必要があることに注意してください。

The backing database of the target server may be a different version or type than the backing database of the source. If the new PEM server does not reside on the same type of backing database as the original server, you must ensure that the same version of the sslutils extension is installed on the new server host. The version of sslutils that is distributed with the PEM installers is freely available for download from the EnterpriseDB website at:

PEMサーバーまたは sslutils 拡張機能のインストールについては、次の場所にある*PEMインストールガイド*を参照してください。

ステップ2-新しいPEMサーバーから既存のスキーマを削除

移行プロセスは、ターゲットPEMサーバー上のソースPEMサーバーから pem 、 pemdata 、および pemhistory スキーマを再作成します。移動の準備として、 psql クライアントを使用して、ターゲットホスト上のpemデータベースからこれらのスキーマを削除します。コマンドラインで psql クライアントを開くか、 Postgres Enterprise Manager メニューから SQL Shell (psql) を選択します。

psql クライアントが開いたら、データベーススーパーユーザーとして pem バッキングデータベースに接続します。ターゲットホスト上のpemデータベースに接続した後、次のコマンドを使用してスキーマを削除します。

  • DROP SCHEMA pem CASCADE;

  • DROP SCHEMA pemdata CASCADE;

  • DROP SCHEMA pemhistory CASCADE;

スキーマを削除するとき、すべての依存オブジェクトを削除するようサーバーに指示する CASCADE キーワードを含める必要があります。コマンドを実行すると、 psql クライアントは依存オブジェクトのリストを表示します。クライアントは、 DROP SCHEMA を表示することにより、各スキーマが削除されることを確認します。

Dropping the pem 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> はエージェント番号を指定します。PEMサーバーのインストーラーによってターゲットホストに agent1 が作成されることを忘れないでください。

次に、 GRANT コマンドを使用して、ターゲットPEMサーバーに存在する各エージェントに pem_agent 権限を割り当てます。

GRANT pem_agent TO agent <x>;

ここで、 <x> はエージェント番号を指定します。

ステップ4-ソースPEMサーバーのバックアップスクリプトを生成

You can use the pg_dump utility to generate a script that contains the commands required to recreate the pem database on the target host. By default, pg_dump is installed in the bin directory under your Postgres installation. To invoke pg_dump, open a command line, navigate to the bin directory, and enter:

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によって生成されたバックアップスクリプトへの完全なパスを指定します。

プロンプトが表示されたら、データベースのスーパーユーザーに関連付けられたパスワードを入力します。

Restoring a backup script

バックアップスクリプトの復元

この例では、 psql クライアントを使用して backup.sql という名前のスクリプトを呼び出し、 pem データベースを再作成します。スクリプトは、データベースのスーパーユーザー postgres に関連付けられた特権を使用して呼び出されます。

ステップ7-ターゲットホストでデータベースサーバーを停止します

LinuxでPEMサーバーを停止するには、次のコマンドを使用します。

/etc/init.d/<service_name> stop

<service_name> は、バッキングデータベースサーバーの名前を指定します。PostgreSQLバッキングデータベースの場合、サービス名は postgresql-x.x で、AdvancedServerバッキングデータベースの場合、サービス名は ppas-x.x です。ここで、 x.x はバージョン番号を指定します。

If you are using Windows, you can use the Services dialog to control the service. To open the Services dialog, navigate through the Control Panel to the System and Security menu. Select Administrative Tools, and then double-click the Services icon. When the Services dialog opens, highlight the service name in the list, and use the option provided on the dialog to Stop the service.

ステップ8-証明書ファイルをターゲットホストにコピー

ターゲットホストのインストール時に作成される証明書ファイルを、ソースホストの証明書ファイルで置き換える必要があります。次のファイルをソースPEMサーバーからターゲットPEMサーバーにコピーします。

  • ca_certificate.crt

  • ca_key.key

  • root.crt

  • root.crl

  • server.key

  • server.crt

ターゲットクラスタのバッキングデータベースを提供するPostgresインストールの下の data ディレクトリにファイルをコピーします。Linuxでは、デフォルトで、ファイルは次の場所にあります。

/opt/PostgreSQL/<x.x>/data/

Windowsでは、ファイルは次の場所にあります。

C:/Program Files/PostgreSQL/<x.x>/data

どこで:

<x.x> はシステム上の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 を選択します。

The Permissions tab

[権限]タブ

Security タブに移動し、 Group or user name を強調表示して、割り当てられた権限を表示します。 Edit または Advanced を選択して、選択したユーザーに関連付けられた権限を変更できるダイアログにアクセスします。

ステップ9-PEMエージェント証明書ファイルをPEMサーバーホストに移動

ソースPEMサーバーのPEMエージェントが使用する証明書ファイルをターゲットホストに移動する必要があります。この手順はプラットフォーム固有です。

Linuxで

agent1.key および agent1.crt ファイルをソースホストからターゲットホストにコピーします。デフォルトでは、Linuxでは、ファイルは /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 を選択します。 Security タブに移動し、 Group or user name を強調表示して割り当てられた権限を表示します。 Edit または Advanced を選択して、選択したユーザーに関連付けられた権限を変更できるダイアログにアクセスします。

ステップ10-ターゲットホスト上の ``pg_hba.conf`` ファイルを更新します

Modify the pg_hba.conf file on the target host to allow connections from each PEM agent. By default, the pg_hba.conf file is located in the data directory under your Postgres installation.

ステップイレブン-ターゲットホストでサーバーを起動

pg_hba.conf ファイルを変更した後、変更を有効にするにはサーバーを再起動する必要があります。

Linuxでデータベースサーバーを再起動するには、次のコマンドを使用します。

/etc/init.d/<service_name> start

ここで、 service_name はバッキングデータベースサーバーの名前です。

If you are using Windows, you can use the Services dialog to control the service. To open the Services dialog, navigate through the Control Panel to the System and Security menu. Select Administrative Tools, and then double-click the Services icon. When the Services dialog opens, highlight the service name in the list, and use the option provided on the dialog to Start the service.

ステップ12-監視対象エージェントを新しいPEMサーバーホストに接続

既存のPEMエージェントに新しいPEMサーバーホストに接続するよう指示するには、以下を行う必要があります。

  • PEMエージェントホストが新しいPEMサーバーホストに接続できることを確認します。

  • 新しいPEMサーバーのIPアドレスとポートを指定して、レジストリ(PEMエージェントを使用する各Windowsホスト)またはエージェント構成ファイル(PEMエージェントを使用する各Linuxホスト)を変更します。

  • PEMエージェントのサービスを再起動します。

これらの手順はプラットフォーム固有です。

PEMエージェントがLinux上にある場合

エディターの選択を使用して、 agent.cfg ファイルを変更し、 pem_host および pem_port パラメーターでPEMサーバーの新しいIPアドレスとポート番号を指定します。

デフォルトでは、 agent.cfg ファイルは次の場所にあります。

/opt/PEM/agent/etc/agent.cfg

The agent.cfg file

agent.cfgファイル

agent.cfg ファイルを変更した後、PEMエージェントサービスを再起動する必要があります。Linuxコマンドラインで pemagent サービススクリプトを使用して、サービスを再起動できます。

/etc/init.d/pemagent restart

PEMエージェントがWindowsに存在する場合

Before modifying the Windows registry on the monitored node, confirm that the firewall on the host of the PEM agent will allow connections to the PEM server. After confirming that the PEM agent host can connect to the PEM server host, you can use the Windows Registry Editor to review and edit the PEM_HOST and PEM_PORT entries to ensure that they correctly identify the host and port used by the PEM server. To open the Registry Editor, enter regedit in the Windows Run dialog or in the Windows start menu search box.

レジストリツリーコントロール内を移動して、レジストリエントリを表示または変更します。64ビットWindowsでは、PEMエージェントのレジストリエントリは次の場所にあります。

HKEY_LOCAL_MACHINE SOFTWARE wow6432Mode EnterpriseDB PEM agent

32ビットWindowsでは、PEMエージェントのレジストリエントリは次の場所にあります。

HKEY_LOCAL_MACHINE SOFTWARE EnterpriseDB PEM agent

The Windows Registry Editor

Windowsレジストリエディター

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

The Windows Registry Editor

Windowsレジストリエディター

エントリの値を変更するには、 Edit String ダイアログを使用します。終了したら、 OK をクリックして変更を保存するか、 Cancel をクリックして保存せずに終了します。

レジストリを変更した後、PEMエージェントのサービスを再起動する必要があります。 Services ダイアログ(Windows Control Panel からアクセス)を使用して Postgres Enterprise Manager - pemAgent サービスを再起動できます。

Restarting the PEM Agent's service

PEMエージェントのサービスの再起動

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