RedHatファミリーのLinuxサーバー(CentOSとFedoraを含む)をお持ちの場合は、Debian/UbuntuディストリビューションがPostgreSQLクラスター管理を処理する方法をうらやましく思うかもしれません。
RPMを使用して同じRedHatLinuxサーバーに異なるバージョンのPostgreSQLをインストールするのは簡単ではありませんが、PostgreSQL(サーバー)の複数のインスタンスをインストールすると同時に、サービスインフラストラクチャを利用する方がはるかに簡単です。
RPMのインストールをセットアップしたら、PostgreSQL YUMリポジトリにある手順に従って、プロセスによって2つのファイルが作成されることに気付くでしょう。
-
/etc/init.d/postgresql
:PostgreSQLサーバーの初期化スクリプト -
/etc/sysconfig/pgsql/postgresql
:postgresqlサービスのシステム構成
デフォルトでは、PostgreSQLデータディレクトリ(PGDATA
)は/var/lib/pgsql/data
を指します ディレクトリ。 /etc/sysconfig/pgsql/postgresql
を変更することで変更できます ファイル。
開発目的で使用されるデフォルトのサーバーに2つ目のサーバーを追加して、同じRedHatLinuxに2つのPostgreSQLサーバーをインストールするとします。これをpostgresql-devel
と呼びます 。 /var/lib/pgsql/data-devel
にインストールされます ディレクトリであり、5433ポートで実行されます。
メインのpostgresql
へのシンボリックリンクを作成します スクリプトを初期化し、postgresql-devel
と呼びます。 :
cd /etc/init.d/
ln -s postgresql postgresql-devel
次に、postgresql-devel
の入力を開始します /etc/sysconfig/pgsql
の構成ファイル ディレクトリ。 initスクリプトとシステム構成ファイルの名前が同じであることに注意してください 。
cat < /etc/sysconfig/pgsql/postgresql-devel
PGDATA=/var/lib/pgsql/data-devel
PGPORT=5433
PGLOG=/var/lib/pgsql/pgstartup.\${PGPORT}.log
EOF
これが完了したら、次のコマンドを実行してデータディレクトリを初期化できます。/etc/init.d/postgresql-devel initdb
または単にservice postgresql-devel initdb
。
同様に、次のコマンドを実行することで、サービスの起動とシャットダウンを制御できます。
-
service postgresql-devel start
-
service postgresql-devel stop
chkconfig
を使用して、システムの起動とシャットダウンからスクリプトを追加/削除できます。 他のサービスと同じように。
PostgreSQL wikiには、このトピックに関する詳細なページが含まれています。これと一緒に読むことをお勧めします。ただし、この簡単な記事では、複数のPostgreSQLインスタンスを同じLinuxサーバーに簡単に統合し、標準のRedHatサービスインフラストラクチャを使用してそれらを管理する方法を示しています(Devrim Gunduzによるすばらしい仕事に感謝します)。