Red Hat Training

A Red Hat training course is available for Red Hat JBoss Operations Network

第2章 データベースの設定

2.1. PostgreSQL の設定

PostgreSQL で Red Hat JBoss Operations Network を実行するには、以下の 3 つの項目が必要です。
  • メモリー、タイムアウト、接続、および関連する設定に適した PostgreSQL 設定
  • データベース
  • 適切なパーミッションを持つユーザー
JBoss ON は PostgreSQL 8.4.x、9.0.x、9.1.x、9.2.x、9.3.x*、9.4.x*、9.5.x* をサポートします。
* JBoss ON 3.3 Update 06 によって追加されたサポート。

2.1.1. PostgreSQL のインストール

必要な Microsoft Windows バイナリーは https://www.postgresql.org/download/windows/ からダウンロードできます
PostgreSQL のインストール YUM に使用 - 特定のバージョンの PostgreSQL
sudo yum install postgresql postgresql-server
をインストールするには、https://yum.postgresql.org/rpmchart.php にアクセス postgresql, postgresql-server and postgresql-libs RPM パッケージをダウンロードし、ダウンロードディレクトリー yum からインストールします。例:
sudo yum install
postgresql91-9.1.24-2PGDG.rhel6.x86_64.rpm
postgresql91-libs-9.1.24-2PGDG.rhel6.x86_64.rpm
postgresql91-server-9.1.24-2PGDG.rhel6.x86_64.rpm

2.1.2. PostgreSQL の設定

重要
以下の設定は、JBoss ON テスト環境に対して迅速にこのサーバーを設定する例になります。これらの手順で推奨される値は実稼働環境では使用されません。この手順は、実稼働サーバーの設定でサポートされる方法としては使用されません。本番環境を設定する際には、必ずデータベースプロバイダーの設定手順に注意して従ってください。
PostgreSQL ユーザーおよびデータベースのクライアント認証の設定に関する詳細は、http://www.postgresql.org/docs/8.4/interactive/client-authentication.html で対応しているバージョンの PostgreSQL ドキュメントを参照して ください
注記
Postgres 認証メカニズムが正しく設定され、設定コマンドが機能するように適切に設定されていることを確認します。
  1. オプション。PostgreSQL の Unix ユーザーのパスワードを変更します。
    sudo passwd postgres
  2. PostgreSQL データベースを初期化します。サーバーを起動する前にデータベースを初期化する必要があります。
    • Red Hat Enterprise Linux 6(およびそれ以前の)リポジトリーを使用してインストールする場合は、以下を行います。
      sudo service postgresql initdb
    • Red Hat Enterprise Linux 6(およびそれ以前のバージョン)にダウンロードしたバイナリーを使用してインストールする場合:
      sudo service postgresql-<version> initdb
      ここで、<version> = <major>.<minor>
      例:
      sudo service postgresql-9.2 initdb
    • Red Hat Enterprise Linux 7(以降)リポジトリーを使用してインストールする場合:
      sudo /usr/bin/postgresql-setup initdb
    • Red Hat Enterprise Linux 7(以降)でダウンロードしたバイナリーを使用してインストールする場合:
      sudo /usr/pgsql-<version>bin/postgresql<version_short>-setup initdb
      ここで、<version_short> = <major><minor>
      例:
      sudo /usr/pgsql-9.2/bin/postgresql92-setup initdb
  3. PostgreSQL サービスを起動します。
    • リポジトリーインストールを使用して、Red Hat Enterprise Linux 6(およびそれ以前)で以下を行います。
      sudo service postgresql start
      sudo chkconfig postgresql on
    • ダウンロードしたバイナリーを使用した Red Hat Enterprise Linux 6(およびそれ以前)では、以下を行います。
      sudo service postgresql-<version> start
      sudo chkconfig postgresql-<version> on
    • リポジトリーインストールを使用した Red Hat Enterprise Linux 7(以降)では、以下を行います。
      sudo systemctl enable postgresql.service
      sudo systemctl start postgresql.service
    • ダウンロードしたバイナリーを使用した Red Hat Enterprise Linux 7(以降)では、以下を行います。
      sudo systemctl enable postgresql-<version>.service
      sudo systemctl start postgresql-<version>.service
    • Microsoft Windows の場合:
      net start pgsql-<version>
  4. データベース上で postgres ユーザーのパスワードを設定します。
    # su - postgres
    $ psql
    postgres=# ALTER USER postgres PASSWORD 'password';
    ALTER ROLE
  5. という名前の PostgreSQL ロールを作成します。ここで rhqadmin、'password' は強固なパスワードに置き換えます。
    postgres=# CREATE USER rhqadmin PASSWORD 'password';
    CREATE ROLE
    重要
    で想定されるデフォルトの postgresql 認証情報 rhqctl はユーザー rhqadmin およびパスワードですが rhqadmin、これらの認証情報はセキュリティーリスクを招くため使用しないでください。に関連する変更 rhqctl については、を参照してください 「rhqctl スクリプトについて」
  6. rhqadmin ロールを所有者として指定して rhq、という名前の PostgreSQL データベースを作成します。
    postgres=# CREATE DATABASE rhq OWNER rhqadmin;
    CREATE DATABASE
  7. 以下のコマンドを使用して、以下を特定し pg_hba.conf fileます。
    postgres=# SHOW hba_file;
  8. 終了 \q するには、を使用し psqlます。
  9. ユーザーに、コンピューターにデータベースへのアクセス権限を付与します。すべてのユーザーを許可するには、ローカル接続と外部接続の両方で、各接続種別(ローカル、IPv4、および IPv6)の適切な接続設定を設定 data/pg_hba.conf ファイルに追加します。
    # TYPE DATABASE     USER       ADDRESS            METHOD
    
    # "local" is for Unix domain socket connections only
    local   all         all                               md5
    # IPv4 local connections:
    host    all         all         127.0.0.1/32          md5
    host    all         all         172.31.7.0/24         md5
    # IPv6 local connections:
    host    all         all         ::1/128               md5
    この all all 設定を使用して、全ユーザーに対してすべての PostgreSQL データベースを設定します。この設定は、などの JBoss ON の特定のユーザーに対して、rhq all または使用して JBoss ON データベースにのみ適用でき rhq rhqadminます。プレーンテキストとして送信されず、パスワードが暗号化される md5 ように METHOD 値を変更する。
  10. データベースサービスを再起動します。
    • Red Hat Enterprise Linux 6(およびそれ以前のバージョン)では、以下のようになります。
      sudo service postgresql restart
    • Red Hat Enterprise Linux 7(以降)では、以下のようになります。
      sudo systemctl restart postgresql
    • ダウンロードしたバイナリーを使用した Red Hat Enterprise Linux 7(以降)では、以下を行います。
      sudo systemctl restart postgresql-<version>
  11. で設定を変更し 「PostgreSQL パラメーターの設定」 ます。

2.1.3. PostgreSQL パラメーターの設定

PostgreSQL サーバー設定には、JBoss ON のパフォーマンスを向上させるように調整できる複数の設定があります。

2.1.3.1. postgresql.conf ファイルの編集

PostgreSQL では、postgresql.conf ファイルのデータベース設定にマイナーな変更が必要です。
  1. JBoss ON データベースに対応するために、十分な量のメモリーおよびシステムリソースが割り当てられていることを確認します。
    ## not necessary  if the database is started with the -i flag
    listen_addresses = '*'
    
    ## performance changes for JBoss ON
    shared_buffers = 80MB   #  default is 32MB
    work_mem = 2048   #  default is 1MB
    checkpoint_segments = 10 #  default is 3
    注記
    パラメーター statement_timeout は設定しないでください。statement_timeout パラメーターが postgressql.conf 含まれる場合、JBoss ON データベースユーザーに上書きされる必要があります。
    ALTER USER rhqadmin SET statement_timeout=0;

2.1.3.2. カーネルパラメーターの設定

システムのカーネルパラメーターを調整することを検討してください。カーネルリソースの管理 に関する詳細は、PostgreSQL ドキュメントを参照してください。

2.1.3.3. pg_hba.conf の編集

pg_hba.conf ファイルを更新して、新たに作成されたロールが JBoss ON サーバーがインストールされているマシンから接続できるようにします(例: localhost)。クライアント接続の追加については、クライアント 認証セクションの PostgreSQL ドキュメントを参照 してください。
pg_hba.conf ファイルを編集したら、PostgreSQL を再起動して変更を有効にします。エラーが表示されない場合、データベースは JBoss ON インストールをサポートする準備が整いました。
Postgres のチューニングに関する詳細は、PostgreSQL サーバーの Tuning your PostgreSQL ドキュメントを参照してください

2.1.3.4. "Relation RHQ_Principal does not exist" Error の修正

データベース接続が有効とマークされているものの、Relation RHQ_Principal でインストールが失敗することがあり ます。これは、PostgreSQL インスタンスを介してロケール initdb で実行して新しいデータベースが作成され non-C たときに発生します。
このエラーを修正するには、以下を実行します。
  1. データベースを使用して、JBoss ON に使用されるデータベース RHQ_PRINCIPAL で呼び出された空のテーブルを作成します。
  2. をクリックし Install serverます。
    インストーラーは既存のスキーマに関する警告を表示します。既存のスキーマは空のテーブルのみで構成されるため上書きします。
もう 1 つのオプションとして作成されたデータベースのエンコーディングを指定することもでき SQL-ASCII ます。例:
initdb -D /my/test/data -E SQL_ASCII --locale en_US.UTF-8