Moving the Postgres Enterprise Manager Server

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

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

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

  1. ターゲットホストを準備する

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

    ターゲットサーバーのバックエンドデータベースは、ソースのバックエンドデータベースとは異なるバージョンまたはタイプである場合があります。新しいPEMサーバーが元のサーバーと同じタイプのバックエンドデータベースに存在しない場合は、新しいサーバーホストに同じバージョンの sslutils 拡張機能がインストールされていることを確認する必要があります。PEMインストーラーと共に配布される sslutils のバージョンは、EDBWebサイトから無料でダウンロードできます。

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

  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 を表示して、各スキーマが削除されることを確認します。

  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> はエージェント番号を指定します。

  1. ソース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 ユーティリティを呼び出しても、現在のデータベースユーザーは中断されません。

  2. バックアップをターゲットホストに移動する

    pg_dump ユーティリティによって生成されたスクリプトをPEMサーバーのターゲットホストに移動します。

  3. ターゲットホストでバックアップを復元する

    ターゲットホストでコマンドラインを開き、 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 に関連付けられた特権を使用して呼び出されます。

  4. ターゲットホストでデータベースサーバーを停止します

    CentOSまたはRHEL7.xまたは8.xでPEMサーバーを停止するには、次のコマンドを使用します。

    systemctl stop <service_name>
    

    ここで、 <service_name> はバックエンドデータベースサーバーの名前を指定します。PostgreSQLバックエンドデータベースの場合、サービス名は postgresql-<x> です。AdvancedServerバックエンドデータベースの場合、サービス名は edb-as-<X> です。 <X> はバージョン番号を示します。

    Windowsを使用している場合、 Services ダイアログを使用してサービスを制御できます。 Services ダイアログを開くには、 Control Panel から System and Security メニューに移動します。 Administrative Tools を選択し、 Services アイコンをダブルクリックします。 Services ダイアログが開いたら、リストでサービス名を強調表示し、ダイアログに表示されるオプションを使用してサービスを停止します。

  5. 証明書ファイルをターゲットホストにコピーする

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

    • ca_certificate.crt

    • ca_key.key

    • root.crt

    • root.crl

    • server.key

    • server.crt

    ターゲットクラスタのバックエンドデータベースを提供するPostgresインストールの data ディレクトリにファイルをコピーします。

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

    /var/lib/pgsql/<X>/data/
    

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

    C:\Program Files\PostgreSQL\<X>\data
    

    どこで:

    <X> は、システム上のPostgresSQLのバージョンを指定します。

    ファイルはターゲットクラスタにすでに存在します。コピーを実行する前に既存のファイルを削除するか、既存のファイルをソースサーバーのファイルで上書きします。ターゲットサーバーに配置したら、ファイルには、以降のセクションで説明する(プラットフォーム固有の)権限が必要です。

    Permissions and Ownership on 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 を選択して、選択したユーザーに関連付けられた権限を変更できるダイアログにアクセスします。

  6. PEMエージェント証明書ファイルをPEMサーバーホストに移動する

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

    On 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
    

    On 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 を選択して、選択したユーザーに関連付けられた権限を変更できるダイアログにアクセスします。

  1. ターゲットホスト上の pg_hba.conf ファイルを更新します

ターゲットホスト上の pg_hba.conf ファイルを変更して、各PEMエージェントからの接続を許可します。デフォルトでは、 pg_hba.conf ファイルはPostgresインストールの下のデータディレクトリにあります。

  1. ターゲットホストでサーバーを起動します

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

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

/etc/init.d/<service_name> start

service_name は、バックエンドデータベースサーバーの名前です。

Windowsを使用している場合、 Services ダイアログを使用してサービスを制御できます。 Services ダイアログを開くには、 Control Panel から System and Security メニューに移動します。 Administrative Tools を選択し、 Services アイコンをダブルクリックします。 Services ダイアログが開いたら、リスト内のサービス名を強調表示し、ダイアログに表示されるオプションを使用してサービスを開始します。

  1. 監視対象エージェントを新しいPEMサーバーホストに接続する

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

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

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

  • PEMエージェントのサービスを再起動します。これらの手順はプラットフォーム固有です:

    • Linux<pem_agent_restart_on_linux>の場合

    • Windows の場合

If the PEM Agent Resides on Linux

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

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

/usr/edb/pem/agent/etc/agent.cfg

The agent.cfg file

agent.cfgファイル

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

/etc/init.d/pemagent restart

If the PEM Agent Resides on 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

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サーバー、エージェント、監視対象サーバーの新しいホストに接続します。