使用して9.3にアップグレードしたPostgreSQL9.1データベースがありました
/usr/lib/postgresql/9.3/bin/pg_upgrade -b /usr/lib/postgresql/9.1/bin -B /usr/lib/postgresql/9.3/bin -d /var/lib/postgresql/9.1/main/ -D /var/lib/postgresql/9.3/main/ -O "-c config_file=/etc/postgresql/9.3/main/postgresql.conf" -o "-c config_file=/etc/postgresql/9.1/main/postgresql.conf"
指示に従って ここ 、残念ながらその後、私は最後のビットを注意深く見ていなかったことに気づきました。
アップグレード後(成功しました)、データディレクトリのデフォルトの場所(この場合は/ var/lib/postgresql/9.3/main)の代わりに、アップグレードのオプションにより、すべてのPostgreSQL構成ファイルが/ etc/postgresql/9.1/main /に配置されるように構成されました。
これを変更する方法を探していましたが、これまでのところ、hba_file
とident_file
はpostgresql.conf
自体で簡単に変更できますが、config_file
は、postgres
コマンドラインインターフェイスを介する場合を除いて設定できません。
postgres
を-o "-c config_file=/var/lib/postgresql/9.3/main"
オプションとともに使用しようとしましたが、これはservice postgresql start
とは別に、サービスの別のインスタンスを開始しようとしているようです。
実行中pg_ctl status -D ~/9.3/main/
取得
`/usr/lib/postgresql/9.3/bin/postgres "-D" "/var/lib/postgresql/9.3/main" "-c" "config_file=/etc/postgresql/9.3/main/postgresql.conf"`
これは、-c... /etc...
がサービスを開始するものすべてに渡されていることを意味します。私の限られた知識に基づいて、これはstart
パラメーターを持つ/etc/init.d/postgresql
であると信じています。それを見ると、/usr/share/postgresql-common/init.d-functions
を参照しているようです。これには、上に向かって次のものが含まれています。
do_ctl_all() {
[ "$1" ] || { echo "Error: invalid command '$1'" >&2; exit 1; }
[ "$2" ] || { echo "Error: invalid version '$2'" >&2; exit 1; }
[ -d "/etc/postgresql/$2" ] || return 0
[ "$(ls /etc/postgresql/$2)" ] || return 0
[ -x "/usr/lib/postgresql/$2/bin/postmaster" ] || return 0
...
これらに関連性があるかどうかはわかりませんが。
私が尋ねているのは、config_file
変数を構成したり、サービスの開始方法をカスタマイズしたりする方法があるかどうかです。
助けてくれてありがとう!理解不足でごめんなさい、もっと学ぼうとしています!
すべての構成ファイルを/etc/postgresql/9.3/main/
にコピーします。アップグレードの一部として行いたい調整を行います。次に、を使用して新しいサーバーを起動できるはずです。
Sudo pg_ctlcluster 9.3 main start
ご存知のように、PostgreSQLのDebianパッケージでは、データディレクトリやその他の構成ファイルを含む他のすべてのものがどこにあるかを把握するために、その場所にpostgresql.conf
を配置する必要があります。 postgresql.conf
がそれらに適した場所を指していることを確認してください。
次回は、pg_upgradecluster -m upgrade 9.1 main
を使用すると、これらすべてが自動的に把握されます。