質問: ### 前提・実現したいこと 現在、CentOSにてPostgreSQL9.3を使用しています。 UPSERTやパラレルクエリを使用したい為、 PostgreSQL9.6にアップグレードしたいと考えています。 アップグレードする際にどういった手順を踏んだ方がよろしいのでしょうか。 調べた限り2パターンありました。 1pg_dump **→** upgrade **→** restore 2upgrade **→** pg_upgrade PostgreSQLのアップグレードを行ったことがある方がいらっしゃいましたら、 ご教授頂けると助かります。 ### 備考 OS: CentOS6.7 DB: PostgreSQL 9.3 x1 ※データ量は1TB程
回答: パターン2で実施しましたが、正常にアップグレードできるようです。 ``` 確認項目 - 実データ - トリガ類 - 関数 - シーケンス - エクステンション 恐らく全て移管できてるかなぁ。。 ``` 実際のコマンドとは別ですが、以下のような手順で実施しています。 ``` # RPMのインストール(https://yum.postgresql.org/repopackages.php#pg96) wget xxx rpm -ivh xxx # PostgreSQLのインストール yum install postgresql96-server # パッケージのインストール # dblink等のモジュールを使用している場合、インストールする yum install postgresql96-contrib.x86_64 # PostgreSQL9.3の停止 /etc/init.d/postgresql-9.3 stop # ユーザの切替 su - postgres # PostgreSQL9.6のセットアップ # localeはPostgreSQL9.3に合わせる /usr/pgsql-9.6/bin/initdb --locale=en_US.UTF-8 # アップグレードの整合性チェック /usr/pgsql-9.6/bin/pg_upgrade -c -b /usr/pgsql-9.3/bin/ -B /usr/pgsql-9.6/bin/ -d /var/lib/pgsql/9.3/data -D /var/lib/pgsql/9.6/data # 問題なければ-cを除いて実行 /usr/pgsql-9.6/bin/pg_upgrade -b /usr/pgsql-9.3/bin/ -B /usr/pgsql-9.6/bin/ -d /var/lib/pgsql/9.3/data -D /var/lib/pgsql/9.6/data # PostgreSQL9.6の実行 /etc/init.d/postgresql-9.6 start # アップグレード完了後は、9.3のデータが残っている為、バックアップするなり消すなり。 # chkconfigの設定など ```