Managing Postgres servers
=========================



監視対象データベースサーバーの起動と停止
----------------------------------------

PEMでは、PEMクライアントを使用して管理対象サーバーインスタンスを起動およびシャットダウンできます。
PEMがサービスを管理できるようにサーバーを構成するには、[ Server
Registration
]ダイアログボックスに値を入力します。ダイアログボックスを使用して、データベースサーバーをPEMエージェントに登録します。これは、データベースサーバーと同じホストにインストールされるローカルエージェントです。次のこともできます。

- [ Properties ダイアログボックスで **Store on PEM Server**
  ]オプションを指定します。

- [ **Advanced** ]タブの **Service ID**
  フィールドにサービススクリプトの名前を指定します。

  - EDB Postgres Advanced Serverの場合、サービス名は\ ``edb-as-<x>``
    または\ ``ppas-<x>`` .
  - PostgreSQLの場合、サービス名は\ ``postgresql-<x>`` です。 。

``<x>`` は、サーバーバージョン番号を示します。

サーバーに接続した後、ツリーでサーバー名前を選択し、 **Tools > Queue
Server Startup** または **Tools > Queue Server Shutdown**
を選択することにより、サーバーをスタートまたは停止できます。

pg_hba.confファイルの変更
-------------------------

``pg_hba.conf``
ファイルのエントリは、ネットワークの認証と承認を制御します。
PEMサーバーホスト上の\ ``pg_hba.conf``
ファイルは、PEMサーバーとPEM-HTTPD、PEMエージェント、および監視対象サーバー間の接続を許可する必要があります。

PEMサーバーのインストールプロセスでは、監視対象へのPEMのホストのIPアドレスと接続情報の入力を求められます。この情報は、PEMバッキングデータベースの\ ``pg_hba.conf``
ファイルの先頭に追加されます。

.. figure:: /images/pem_pg_hba.png
   :width: 70% 
   :alt: PEM entries in the pg_hba.conf file

   PEM entries in the pg_hba.conf file

``pg_hba.conf``
ファイルを手動で変更して、PEMサーバーと他のコンポーネント間の接続を許可する必要がある場合があります。たとえば、PEM-HTTPDインストールがPEMサーバーと同じホストにない場合、PEMサーバーホスト上の\ ``pg_hba.conf``
ファイルを変更して、PEM-HTTPDがサーバーに接続できるようにする必要があります。

デフォルトでは、\ ``pg_hba.conf``
ファイルはPostgresインストールの下のdataディレクトリにあります。たとえば、
EDB Postgres Advanced Server 10ホストでは、\ ``pg_hba.conf``
のデフォルトの場所は次のとおりです。

``/var/lib/edb/as10/data/pg_hba.conf``

``pg_hba.conf``
ファイルは、選択したエディターで変更できます。ファイルを変更した後、サーバーをリロードして変更を有効にします。

次の例は、 postgresという名前のユーザーから\ ``pg_hba.conf``
が存在するホスト上の\ ``postgres``
データベースへのmd5パスワード認証接続を許可する\ ``pg_hba.conf``
エントリーを示しています。接続は、192.168.10.102のIPアドレスから来ています。

::


   #  TYPE     DATABASE        USER        CIDR-ADDRESS         METHOD

   #  IPv4 local connections:

    host     postgres       postgres    192.168.10.102/32       md5

ネットワークホストのアドレスまたはネットワークアドレスレンジを指定できます。たとえば、アドレス192.168.10.23、192.168.10.76、および192.168.10.184とサーバーからの接続を許可したい場合は、そのネットワーク内のすべてのホストからの接続を許可するように\ ``192.168.10.0/24``
のCIDR-ADDRESSを入力します。

::


   #  TYPE     DATABASE        USER        CIDR-ADDRESS       METHOD

   #  IPv4 local connections:

     host      postgres         all       192.168.10.0/24       md5

``pg_hba.conf`` ファイルエントリーのフォーマットの詳細については、
`PostgreSQL core documentation <http://www.postgresql.org/docs/current/auth-pg-hba-conf.html>`_ を参照してください。

PEMを使用してPostgresサーバーに接続する前に、両方のサーバーの\ ``pg_hba.conf``
ファイルで接続が許可されていることを保証必要があります。データベースサーバーへの接続時にエラーを受け取った場合は、
``pg_hba.conf`` ファイルを変更し、接続を許可するエントリーを追加します。

データベースとオブジェクトの作成と保守
--------------------------------------

Postgresサーバーの各インスタンスは、1つ以上のデータベースを管理します。各ユーザーは、データベースに含まれる情報にアクセスする前に、データベースに接続するための認証情報を提供する必要があります。
PEMクライアントを使用すると、データベースと、テーブル、インデックス、ストアドプロシージャなどのデータベースを構成するオブジェクトを作成および管理できます。

PEMでデータベースを作成するには、管理対象サーバーの **Databases**
ノードを右クリックし、 **Create > Database**
を選択します。データベースを定義したら、新しいデータベースにオブジェクトを作成できます。

たとえば、テーブルを作成するには、 **Tables** ノードを右クリックし、
**Create > Table** を選択します。 [ New Table
]ダイアログボックスでテーブルの属性を指定します。

PEMは、次のような他のデータベースオブジェクトを作成および管理するための同様のダイアログボックスを提供します。

- テーブル

- インデックス

- ストアドプロシージャ

- ファンクション

- トリガー

- ビュー

- コンストレイン

各オブジェクトタイプはツリーにリストされます。オブジェクトタイプに対応するノードを右クリックして[
**Create**
]メニューにアクセスし、オブジェクトを作成します。選択したオブジェクトの管理タスクを実行するには、名前付けノードのコンテキストメニューから
**Properties** を選択します。

テンプレートLinuxサービススクリプト
-----------------------------------

データベースサーバーのサービススクリプトを使用すると、PEMサーバーはデータベースサーバーを起動、停止、または再起動できます。これは、構成管理、証明書管理、およびその他の管理タスクを実行するときに必要になる場合があります。サービススクリプトはプラットフォーム固有です。

PEMサーバーが存在するPostgresサーバーには、サービススクリプトが含まれている必要があります。
EDBによって生成されたWindowsのPostgresインストーラーは、サービススクリプトを作成します。ネイティブパッケージのような別のソースからのPostgresサーバーを使用している場合、サービススクリプトを提供する必要があります。

..  Note::
   Rocky LinuxまたはRHEL 8.xでは、サービススクリプトは`/usr/lib/systemd/system` にあります。

Postgresサービスのカスタマイズについては、
`PostgreSQL documentation <https://www.postgresql.org/docs/current/static/server-start.html>`_ を参照してください。
