Moving the Postgres Enterprise Manager Server¶
このセクションの手順では、PEMサーバーをあるホストマシンから新しいホストマシンに移動する方法について説明します。新しいホスト(ターゲット)上のPEMサーバーは、元のホスト(ソース)と同じバージョンのPEMサーバーインストーラーでインストールする必要があります。同じインストーラーバージョンを使用しない場合、スキーマ不一致エラーが発生する可能性があることに注意してください。
ターゲットサーバー(PostgreSQLまたはAdvancedServer)のバックエンドデータベースは、ソースPEMサーバーのバックエンドデータベースと同じタイプとバージョン、または異なるタイプとバージョンである可能性があります。PostgreSQLホスト上にあるPEMサーバーは、AdvancedServerホストに移行できます。その逆も可能です。
サーバーの移行を開始する前に、ソースホスト、ターゲットホスト、およびPEMエージェントのホスト間のファイアウォールがサービス間の接続を許可することを確認する必要があります。
ターゲットホストを準備する
ターゲットホストでPEMサーバーのインストーラーを起動します。ソースPEMサーバーのインストール時に使用したものと同じバージョンのPEMサーバーインストーラーを使用する必要があることに注意してください。
ターゲットサーバーのバックエンドデータベースは、ソースのバックエンドデータベースとは異なるバージョンまたはタイプである場合があります。新しいPEMサーバーが元のサーバーと同じタイプのバックエンドデータベースに存在しない場合は、新しいサーバーホストに同じバージョンの
sslutils拡張機能がインストールされていることを確認する必要があります。PEMインストーラーと共に配布されるsslutilsのバージョンは、EDBWebサイトから無料でダウンロードできます。PEMサーバーまたは
sslutils拡張機能のインストールについては、次の場所にあるPEM Installation Guidesを参照してください。新しい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を表示して、各スキーマが削除されることを確認します。新しい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>はエージェント番号を指定します。
ソース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ユーティリティを呼び出しても、現在のデータベースユーザーは中断されません。バックアップをターゲットホストに移動する
pg_dumpユーティリティによって生成されたスクリプトをPEMサーバーのターゲットホストに移動します。ターゲットホストでバックアップを復元する
ターゲットホストでコマンドラインを開き、
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に関連付けられた特権を使用して呼び出されます。ターゲットホストでデータベースサーバーを停止します
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ダイアログが開いたら、リストでサービス名を強調表示し、ダイアログに表示されるオプションを使用してサービスを停止します。証明書ファイルをターゲットホストにコピーする
ターゲットホストのインストール時に作成される証明書ファイルを、ソースホストの証明書ファイルに置き換える必要があります。次のファイルをソースPEMサーバーからターゲットPEMサーバーにコピーします。
ca_certificate.crtca_key.keyroot.crtroot.crlserver.keyserver.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を選択します。
[権限]タブ¶
Securityタブに移動し、Group or user nameを強調表示して、割り当てられた権限を表示します。EditまたはAdvancedを選択して、選択したユーザーに関連付けられた権限を変更できるダイアログにアクセスします。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を選択して、選択したユーザーに関連付けられた権限を変更できるダイアログにアクセスします。
ターゲットホスト上の
pg_hba.confファイルを更新します
ターゲットホスト上の
pg_hba.confファイルを変更して、各PEMエージェントからの接続を許可します。デフォルトでは、pg_hba.confファイルはPostgresインストールの下のデータディレクトリにあります。
ターゲットホストでサーバーを起動します
pg_hba.confファイルを変更した後、変更を有効にするにはサーバーを再起動する必要があります。Linuxでデータベースサーバーを再起動するには、次のコマンドを使用します。
/etc/init.d/<service_name> start
service_nameは、バックエンドデータベースサーバーの名前です。Windowsを使用している場合、
Servicesダイアログを使用してサービスを制御できます。Servicesダイアログを開くには、Control PanelからSystem and Securityメニューに移動します。Administrative Toolsを選択し、Servicesアイコンをダブルクリックします。Servicesダイアログが開いたら、リスト内のサービス名を強調表示し、ダイアログに表示されるオプションを使用してサービスを開始します。
監視対象エージェントを新しい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
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
Windowsレジストリエディター¶
PEM_HOST および PEM_PORT エントリは、ターゲットホスト上の新しいPEMサーバーのアドレスとポート番号を指定する必要があります。レジストリエントリを変更するには、エントリ Name を右クリックし、コンテキストメニューから Modify を選択して Edit String ダイアログを開きます。
Windowsレジストリエディター¶
Edit String ダイアログを使用して、エントリの値を変更します。終了したら、 OK をクリックして変更を保存するか、 Cancel をクリックして保存せずに終了します。
レジストリを変更した後、PEMエージェントのサービスを再起動する必要があります。 Services ダイアログ(Windowsの Control Panel からアクセス)を使用して Postgres Enterprise Manager - pemagent サービスを再起動できます。
PEMエージェントのサービスの再起動¶
サーバーを移動した後、インストールされているPEMクライアントの接続プロパティを変更して、PEMサーバー、エージェント、監視対象サーバーの新しいホストに接続します。