PostgreSQLをバージョン8.4から9.4にアップグレードする方法は?


18

PostgreSQLをバージョン8.4から9.4にアップグレードします。

ドキュメントは、私にとって非常に明確ではありません。

  1. アップグレードすると古いデータベースは失われますか?
  2. アップグレード後に古いデータベースを紛失した場合、どうすれば古いデータベースをバックアップできますか?
  3. psqlをアップグレードするにはどうすればよいですか?

PostgreSQLはCentOS 6.6サーバーで実行されています。


正直に言うと、説明はリンク先ページで非常に明確です。ダンプを取ることは、何かが機能しない場合のダンプがあることを意味します。また、それを失うことはありません。さらに、そのページには、新しいバージョンを実際にインストールする方法を指すリンクがありpostgresql-client-9.4ますpsql。たとえば、Ubuntuでは、を含むパッケージがあります。
-dezso

@dezsoでは、psql 8.4をアンインストールして9.4に移行すると、古いデータベースが失われますか?
アレックスジョリグ

3
それらのダンプを取る場合、いいえ。とにかく、回復性をテストする定期的なバックアップが必要なので、これはまったく問題になりません。また、を使用するpg_upgrade場合は、データベースを保持しますが、この場合もバックアップを取る必要があります。
-dezso

How can I backup my old databases if」 -何もありません場合。アップグレード後、データベースはほぼ間違いなく完全に正常になりますが、予期しない問題(最悪の場合:停電またはその他のハードウェア障害が途中で発生する可能性がある場合)の場合、このような操作を実行するときは常に新しい(できればテスト済みの)バックアップが必要です前後にロールバックするのが難しいポジションにいる場合)。通常のバックアップ計画によっては、余分なバックアップを取る必要がない場合があります。
デビッドスピレット

回答:


25

これが私の問題の解決方法です。

CentosでPostgresql 8.4を9.4にアップグレードする

 1. Yum Install PG9.4
 2. wget http://yum.postgresql.org/9.4/redhat/rhel-6-x86_64/pgdg-redhat94-9.4-1.noarch.rpm
 3. yum install pgdg-redhat94-9.4-1.noarch.rpm
 4. yum install postgresql94-server
 5. service postgresql-9.4 initdb
 6. chkconfig postgresql-9.4 on

バックアップデータ

 7. su - postgres

 8. pg_dumpall > dump.sql

データを復元する

 9. service postgresql stop

 10. service postgresql-9.4 start

 11. su - postgres

 12. psql < dump.sql

構成ネットワークアクセス

vi /var/lib/pgsql/9.4/data/postgresql.conf

 1. listen_addresses = '*'
 2. port = 5432

/var/lib/pgsql/9.4/data/pg_hba.conf

# "local" is for Unix domain socket connections only
local   all         all                               ident
# IPv4 local connections:
host    all         all         127.0.0.1/32          ident
host    all         all         130.51.79.0/24        md5
host    all         all         10.210.29.0/24        md5
# IPv6 local connections:
host    all         all         ::1/128               ident

PG8.4を削除

 1. yum remove postgresql
 2. ln -s /usr/pgsql-9.4/bin/psql /usr/local/bin/psql

3
あなたが私の編集を「危害の読みやすさ」として拒否した理由がわかりません。実際にコマンドをコピーしやすくします。
nhahtdh16年

1
この方法を使用して9.2から9.6にアップグレードしたところ、うまくいきました。ありがとう!
アイゼンハイム

たとえば、pgdumpを使用して、テラバイトのデータを持つデータベースを移行することは不可能だと思います。それを行う別の方法はありますか?
-deFreitas

または、最初のコマンド「Yum Install PG9.4」は、すべてに適切な大文字使用ですか?
デイブ

1
@deFreitas少し遅れましたが、pg_upgrade8.4以上からアップグレードする場合、および同じサーバーを使用する場合に使用できます。pg_upgradeこの場合に便利であり、非常に高速です。Ubuntu18では、1GBのデータベースを復元するpg_upgradeよりも時間をpg_dump節約できました。欠点は、同じマシンに2つのpostgresバージョンをインストールして実行する必要があることです(もちろん、異なるポートを使用します)。
EAmez

3

service postgresql-9.4initdbが機能しなかったため、使用する必要がありましたsudo /usr/pgsql-9.4/bin/postgresql94-setup initdbこちらを参照)。

すばらしい指示のおかげで、pg_hba.confファイルを再構成しなければならなかったにもかかわらず、9.2から9.4に問題なく更新することができました。


1

単一のpostgresql94 psqlバイナリを/ usr /(local /)binにリンクするよりも、代替システムを使用することをお勧めします。

cd /etc/alternatives/
ls pgsql-* -1 | xargs -L 1 alternatives --auto

これは、CentOSのデフォルトディレクトリへのpostgresql94のバイナリ、mans、confsなどのリンクを作成します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.