web-dev-qa-db-ja.com

複数のPostgreSQLサーバーがインストールされています。古いサーバーの自動起動を無効にするにはどうすればよいですか?

Oracle VirtualBoxでUbuntu 12.04を実行しています。数か月前、マシンにPostgreSQLサーバーバージョン9.1をインストールしました。つい最近、PostgreSQLサーバー9.3がJSONデータ型をサポートしていることを知り、アップグレードすることにしました。

ここの指示に従って9.3にアップグレードしました。

https://wiki.postgresql.org/wiki/Apt

wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | Sudo apt-key add -
Sudo apt-get update
Sudo apt-get upgrade
Sudo apt-get install postgresql-9.3 pgadmin3

これにより、バージョン9.1と一緒にサーバーバージョン9.3がマシンにインストールされました。新たに起動した後にpg_lsclustersを実行すると、次のようになります。

Ver Cluster Port Status Owner    Data directory               Log file
9.1 main    5433 online postgres /var/lib/postgresql/9.1/main /var/log/postgresql/postgresql-9.1-main.log
9.3 main    5432 online postgres /var/lib/postgresql/9.3/main /var/log/postgresql/postgresql-9.3-main.log

次に、次のアップグレード後のメンテナンスを行いました。pg_dumpを使用して9.1サーバーからいくつかのテーブルをエクスポートし、それらを9.3サーバーに復元しました。次に、9.1および9.3の構成ファイルを/etc/postgresql/$VERSION/main/postgresql.confで開き、ポート番号を交換して、psqlクライアントがデフォルトで新しいサーバーに接続するようにしました。

私の質問はこれです。 9.1と9.3はどちらも起動時に起動します。システムメモリの約5%を占めるので、9.1が自動起動しないようにしたいと思います。これどうやってするの?

参考にしたリソース:

サーバーの起動に関するPostgreSQLのdocページは、標準のinit.dディレクトリを示しています。私のinit.dディレクトリには、スクリプトpostgresqlが含まれています。このスクリプトは1つのバージョンのみを起動するように構成できるようですが、必要な変更は私には明らかではありません。

http://www.postgresql.org/docs/9.1/interactive/server-start.html

以下の投稿は非常に有益でしたが、起動時にクラスターを無効にする方法ではなく、クラスターを削除する方法を示しています。古いクラスターをインストールしたままにしたいのですが、そこからさらに情報を取得したい場合があります。

複数のpostgresqlサーバーがインストールされていると思いますが、「余分な」サーバーを特定して削除するにはどうすればよいですか?

システムの読み込みが完了したらサーバーを強制終了するスクリプトを作成することを検討しましたが、これは効率が悪いようです。ブート時にバージョン9.1を無効にするより明確な方法はありますか?

25
BitPusher16

ハックを減らすには、/etc/postgresql/9.1/main/start.confを編集し、automanualまたはdisabledに置き換えます。

46
ch2500

Debianは、単一のサーバー上でのPostgreSQLの複数のバージョンまたはインストールの実行を簡素化するために、いくつかのスクリプト(pg_ * clusterユーティリティなど)を作成しました。これが、postgresql.orgに記載されていない理由です。

PostgreSQL自身の.debパッケージがDebianと同じ起動メカニズムを使用しているかどうかはわかりませんが、私が持っているパッケージを見ると、/etc/init.d/postgresql-9.1を作成すると(空のファイルであっても)、/etc/init.d/postgresqlは、そのバージョンを個別に制御することを想定しており、デフォルトでは起動しません。あなたはまだそれを始めることができます

service postgresql start 9.1

バージョン検索を上書きします。

10
DerfK