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 認証メカニズムが正しく設定され、設定コマンドが機能するように適切に設定されていることを確認します。
- オプション。PostgreSQL の Unix ユーザーのパスワードを変更します。
sudo passwd postgres
- 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
- 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>
- データベース上で
postgres
ユーザーのパスワードを設定します。# su - postgres $ psql postgres=# ALTER USER postgres PASSWORD 'password'; ALTER ROLE
- という名前の PostgreSQL ロールを作成します。ここで rhqadmin、'password' は強固なパスワードに置き換えます。
postgres=# CREATE USER rhqadmin PASSWORD 'password'; CREATE ROLE
重要で想定されるデフォルトの postgresql 認証情報 rhqctl はユーザー rhqadmin およびパスワードですが rhqadmin、これらの認証情報はセキュリティーリスクを招くため使用しないでください。に関連する変更 rhqctl については、を参照してください 「rhqctl スクリプトについて」。 - rhqadmin ロールを所有者として指定して rhq、という名前の PostgreSQL データベースを作成します。
postgres=# CREATE DATABASE rhq OWNER rhqadmin; CREATE DATABASE
- 以下のコマンドを使用して、以下を特定し
pg_hba.conf file
ます。postgres=# SHOW hba_file;
- 終了 \q するには、を使用し psqlます。
- ユーザーに、コンピューターにデータベースへのアクセス権限を付与します。すべてのユーザーを許可するには、ローカル接続と外部接続の両方で、各接続種別(ローカル、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 値を変更する。 - データベースサービスを再起動します。
- 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>
- で設定を変更し 「PostgreSQL パラメーターの設定」 ます。
2.1.3. PostgreSQL パラメーターの設定
PostgreSQL サーバー設定には、JBoss ON のパフォーマンスを向上させるように調整できる複数の設定があります。
2.1.3.1. postgresql.conf ファイルの編集
PostgreSQL では、
postgresql.conf
ファイルのデータベース設定にマイナーな変更が必要です。
- 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
たときに発生します。
このエラーを修正するには、以下を実行します。
- データベースを使用して、JBoss ON に使用されるデータベース
RHQ_PRINCIPAL
で呼び出された空のテーブルを作成します。 - をクリックし Install serverます。インストーラーは既存のスキーマに関する警告を表示します。既存のスキーマは空のテーブルのみで構成されるため上書きします。
もう 1 つのオプションとして作成されたデータベースのエンコーディングを指定することもでき
SQL-ASCII
ます。例:
initdb -D /my/test/data -E SQL_ASCII --locale en_US.UTF-8