3.3. リモートの PostgreSQL データベースの準備
リモートデータベース環境では、engine-setup
を実行する前に、Manager データベースを手動で作成する必要があります。
engine-setup
および engine-backup --mode=restore
コマンドは、システムロケールが異なる場合でも、en_US.UTF8
ロケールのシステムエラーメッセージだけをサポートします。
postgresql.conf
ファイルのロケール設定は en_US.UTF8
に設定する必要があります。
データベース名には、数字、アンダースコア、小文字しか使用できません。
Red Hat Virtualization Manager リポジトリーの有効化
ログインして、Red Hat Subscription Manager でデータベースマシンを登録し、Red Hat Virtualization Manager
のサブスクリプションをアタッチして Manager のリポジトリーを有効にする必要があります。
手順
コンテンツ配信ネットワークにシステムを登録します。プロンプトが表示されたら、カスタマーポータルのユーザー名とパスワードを入力します。
# subscription-manager register
注記IPv6 ネットワークを使用している場合は、IPv6 移行メカニズムを使用して、コンテンツ配信ネットワークおよびサブスクリプションマネージャーにアクセスします。
Red Hat Virtualization Manager
のサブスクリプションプールを見つけ、プール ID を記録します。# subscription-manager list --available
上記のプール ID を使用して、サブスクリプションをシステムにアタッチします。
# subscription-manager attach --pool=pool_id
注記現在アタッチされているサブスクリプションを表示するには、以下のコマンドを実行します。
# subscription-manager list --consumed
有効なリポジトリーをすべて一覧表示するには、以下のコマンドを実行します。
# dnf repolist
リポジトリーを設定します。
# subscription-manager repos \ --disable='*' \ --enable=rhel-8-for-x86_64-baseos-eus-rpms \ --enable=rhel-8-for-x86_64-appstream-eus-rpms \ --enable=rhv-4.4-manager-for-rhel-8-x86_64-rpms \ --enable=fast-datapath-for-rhel-8-x86_64-rpms \ --enable=jb-eap-7.4-for-rhel-8-x86_64-rpms \ --enable=openstack-16.2-cinderlib-for-rhel-8-x86_64-rpms \ --enable=rhceph-4-tools-for-rhel-8-x86_64-rpms \ --enable=rhel-8-for-x86_64-appstream-tus-rpms \ --enable=rhel-8-for-x86_64-baseos-tus-rpms
RHEL のバージョンを 8.6 に設定します。
# subscription-manager release --set=8.6
postgresql
モジュールのバージョン 12 を有効にします。# dnf module -y enable postgresql:12
nodejs
モジュールのバージョン 14 を有効にします。# dnf module -y enable nodejs:14
インストール済みパッケージを同期して、利用可能な最新バージョンに更新します。
# dnf distro-sync --nobest
関連情報
モジュールおよびモジュールストリームの詳細は、ユーザー空間コンポーネントのインストール、管理、および削除 の以下のセクションを参照してください。
PostgreSQL データベースの初期化
PostgreSQL サーバーパッケージをインストールします。
# dnf install postgresql-server postgresql-contrib
PostgreSQL データベースインスタンスを初期化します。
# postgresql-setup --initdb
postgresql
サービスを有効にし、マシンのブート時に起動するように設定します。# systemctl enable postgresql # systemctl start postgresql
psql
コマンドラインインターフェイスにpostgres
ユーザーとして接続します。# su - postgres -c psql
デフォルトユーザーを作成します。Manager のデフォルトのユーザーは
engine
です。postgres=# create role user_name with login encrypted password 'password';
データベースを作成します。Manager のデフォルトのデータベース名は
engine
です。postgres=# create database database_name owner user_name template template0 encoding 'UTF8' lc_collate 'en_US.UTF-8' lc_ctype 'en_US.UTF-8';
新しいデータベースに接続します。
postgres=# \c database_name
uuid-ossp
拡張機能を追加します。database_name=# CREATE EXTENSION "uuid-ossp";
plpgsql
言語が存在しない場合は追加します。database_name=# CREATE LANGUAGE plpgsql;
psql
インターフェイスを終了します。database_name=# \q
/var/lib/pgsql/data/pg_hba.conf
ファイルを編集し、md5 クライアント認証を有効にし、エンジンがリモートでデータベースにアクセスできるようにします。ファイルの下部にあるlocal
で始まる行のすぐ下に、以下の行を追加します。X.X.X.X
を Manager または Data Warehouse マシンの IP アドレスに置き換え、0-32
または0-128
を CIDR マスクの長さに置き換えます。host database_name user_name X.X.X.X/0-32 md5 host database_name user_name X.X.X.X::/0-128 md5
以下に例を示します。
# IPv4, 32-bit address: host engine engine 192.168.12.10/32 md5 # IPv6, 128-bit address: host engine engine fe80::7a31:c1ff:0000:0000/96 md5
データベースへの TCP/IP 接続を許可します。
/var/lib/pgsql/data/postgresql.conf
ファイルを編集し、以下の行を追加します。listen_addresses='*'
この例では、
postgresql
サービスがすべてのインターフェイスの接続をリッスンするように設定します。IP アドレスを指定して、特定のインターフェイスをリッスンするように設定することもできます。PostgreSQL サーバーの設定を更新します。
/var/lib/pgsql/data/postgresql.conf
ファイルで、以下の行をファイルの下部に追加します。autovacuum_vacuum_scale_factor=0.01 autovacuum_analyze_scale_factor=0.075 autovacuum_max_workers=6 maintenance_work_mem=65536 max_connections=150 work_mem=8192
PostgreSQL データベースの接続に使用するデフォルトのポートを開放して、更新したファイアウォールルールを保存します。
# firewall-cmd --zone=public --add-service=postgresql # firewall-cmd --permanent --zone=public --add-service=postgresql
postgresql
サービスを再起動します。# systemctl restart postgresql
- オプションで、データベース接続を保護するために SSL をセットアップします。