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インストールガイド*を参照してください。
ステップ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¶
ステップ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サーバーのバックアップスクリプトを生成
pg_dump ユーティリティを使用して、ターゲットホストでpemデータベースを再作成するために必要なコマンドを含むスクリプトを生成できます。デフォルトでは、Postgresインストールの bin ディレクトリに pg_dump がインストールされます。 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-x.x であり、Advanced Serverバッキングデータベースの場合、サービス名は ppas-x.x です。ここで、 x.x はバージョン番号を指定します。
Windowsを使用している場合、 Services ダイアログを使用してサービスを制御できます。 Services ダイアログを開くには、 Control Panel から System and Security メニューに移動します。 Administrative Tools を選択し、 Services アイコンをダブルクリックします。 Services ダイアログが開いたら、リスト内のサービス名を強調表示し、ダイアログに表示されるオプションを使用してサービスを停止します。
ステップ8-証明書ファイルをターゲットホストにコピー
ターゲットホストのインストール時に作成される証明書ファイルを、ソースホストの証明書ファイルに置き換える必要があります。次のファイルをソースPEMサーバーからターゲットPEMサーバーにコピーします。
ca_certificate.crtca_key.keyroot.crtroot.crlserver.keyserver.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
Where user_name is the name of the user that invoked the PEM installer.
ターゲットマシン上の証明書ファイルに関連付けられた所有権と許可は、ソースマシン上の証明書ファイルの所有権と許可と一致する必要があります。 Run as Administrator オプション(インストーラーのコンテキストメニューから選択)を使用してPEMサーバーとPostgresインストーラーを呼び出した場合、エージェント証明書ファイルの所有者は Administrators になります。
Windowsでファイルのアクセス許可を確認および変更するには、ファイル名を右クリックし、 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 ダイアログを開くには、 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_host および pem_port パラメーターでPEMサーバーの新しいIPアドレスとポート番号を指定します。
デフォルトでは、 agent.cfg ファイルは次の場所にあります。
/opt/PEM/agent/etc/agent.cfg
The agent.cfg file¶
agent.cfg ファイルを変更した後、PEMエージェントサービスを再起動する必要があります。 Linuxコマンドラインで pemagent サービススクリプトを使用して、サービスを再起動できます。
/etc/init.d/pemagent restart
PEMエージェントがWindowsに存在する場合
Registry Editor 。 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
The Windows Registry Editor¶
PEM_HOST および PEM_PORT エントリは、ターゲットホスト上の新しいPEMサーバーのアドレスとポート番号を指定する必要があります。レジストリエントリを変更するには、エントリ Name を右クリックし、コンテキストメニューから Modify を選択して Edit String ダイアログを開きます。
The Windows Registry Editor¶
エントリの値を変更するには、 Edit String ダイアログを使用します。終了したら、 OK をクリックして変更を保存するか、 Cancel をクリックして保存せずに終了します。
レジストリを変更した後、PEMエージェントのサービスを再起動する必要があります。 Services ダイアログ(Windowsの Control Panel からアクセス)を使用して、 Postgres Enterprise Manager - pemAgent サービスを再起動できます。
Restarting the PEM Agent's service¶
サーバーを移動した後、インストールされているPEMクライアントの接続プロパティを変更して、PEMサーバー、エージェント、監視対象サーバーの新しいホストに接続します。