最終更新:2011-04-01 (金) 20:12:24 (4771d)  

pg_upgrade
Top / pg_upgrade

http://lets.postgresql.jp/documents/technical/contrib/pg_upgrade

はじめに

  • PostgreSQLでは、定期的なバージョンアップが行われます。バージョンアップには2種類あり、バージョン名 (x.y.z) の x または y が変化するメジャーリリース (8.3 → 8.4) と、z が変化するマイナーリリース (8.3.6 → 8.3.7) です。メジャーバージョンがアップするとDBクラスタの互換性がなくなるため、pg_dump?等によるダンプを行い、新版のDBクラスタにデータをリストアする処理が必要です。
  • このダンプの取得とリストアは、非常に大きなデータを持つシステムでは長時間かかるため厄介でした。この作業が面倒で、古いバージョンを使い続けている方も多いのではないでしょうか?このようなダンプやリストア処理を不要にし、使用中のDBクラスタをそのまま新しいバージョンのPostgreSQLでも使い続けられるようにしてくれるのが、pg_upgrade という contrib モジュールです。
  • なお、pg_upgrade は PostgreSQL のバージョン 8.3 以上のDBクラスタから、PostgreSQL 9.0以上へアップグレードするケースに対応しています。8.2 から 8.3 や 9.0 へ、また 8.3 から 8.4 へ、といった移行には使用できませんので注意して下さい。

移行モード

移行可否の確認モード

  • 実際に移行はせず、pg_upgradeによる移行が可能かをチェックするだけのモード。-c (or --check) オプションを付与して実施

リンクによる移行モード

  • 旧版のデータベースクラスタと新版のデータベースクラスタでユーザデータをハードリンクにより共有するモード。-k (--link)オプションを付与して実施

コピーによる移行モード

  • 旧版のデータベースクラスタから新版のデータベースクラスタへユーザデータをコピーするモード。明示的なオプションを付与しないとこのモードで実施

関連