【AWS】PostgreSQLのバージョンアップ方法

やること

エンジンバージョンのアップグレードをする。

・アップグレード前

9.5.9-R1

・アップグレード後

9.6.19-R1

データは空の状態とする。

こけたところをメモ。

作業内容

まず公式サイトを確認する。

・DB インスタンスのエンジンバージョンのアップグレード

https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.Upgrading.html

DB インスタンスのエンジンバージョンを手動でアップグレードするには、AWS マネジメントコンソール、AWS CLI または RDS API を使用する。

データベースの作成

↑12.3より古いバージョンのPostgreSQLエンジンは、最新のm6gまたはr6g世代のインスタンスクラスをサポートしていません。と表示されるが、特に使わないのでOK。

無料利用枠を選択。

db.t2.microを選択。SSDは5GBとする。

後ほどEC2から接続する可能性を考え、テスト用のVPCを作成。

サブネットが2つ無いとエラーが出るのでVPCにサブネットを2つ作成しておく。

バックアップは無し、マイナーバージョン自動アップグレードのチェックを外す。

作成された。

公式でModifyをクリックとあるが、日本語版だと変更ボタンになる。

スナップショット作成しておく

バージョン変更前にEC2から接続してみる。

・参考

Amazon LinuxからPostgreSQL(RDS)へ接続する

https://qiita.com/panasan/items/634ad5ad895f0c9e5bd0

やり方

yumでpostgresqlのclientモジュールをインストールする。

モジュール確認

$ yum list | grep postgre
freeradius-postgresql.x86_64           3.0.13-10.amzn2                amzn2-core
pcp-pmda-postgresql.x86_64             3.12.2-5.amzn2                 amzn2-core
postgresql.x86_64                      9.2.24-1.amzn2.0.1             amzn2-core
postgresql-contrib.x86_64              9.2.24-1.amzn2.0.1             amzn2-core
postgresql-devel.x86_64                9.2.24-1.amzn2.0.1             amzn2-core
postgresql-docs.x86_64                 9.2.24-1.amzn2.0.1             amzn2-core
postgresql-jdbc.noarch                 9.2.1002-8.amzn2               amzn2-core
postgresql-jdbc-javadoc.noarch         9.2.1002-8.amzn2               amzn2-core
postgresql-libs.i686                   9.2.24-1.amzn2.0.1             amzn2-core
postgresql-libs.x86_64                 9.2.24-1.amzn2.0.1             amzn2-core
postgresql-odbc.x86_64                 09.03.0100-2.amzn2.0.2         amzn2-core
postgresql-plperl.x86_64               9.2.24-1.amzn2.0.1             amzn2-core
postgresql-plpython.x86_64             9.2.24-1.amzn2.0.1             amzn2-core
postgresql-pltcl.x86_64                9.2.24-1.amzn2.0.1             amzn2-core
postgresql-server.x86_64               9.2.24-1.amzn2.0.1             amzn2-core
postgresql-static.x86_64               9.2.24-1.amzn2.0.1             amzn2-core
postgresql-test.x86_64                 9.2.24-1.amzn2.0.1             amzn2-core
postgresql-upgrade.x86_64              9.2.24-1.amzn2.0.1             amzn2-core
qt-postgresql.i686                     1:4.8.5-15.amzn2.0.4           amzn2-core
qt-postgresql.x86_64                   1:4.8.5-15.amzn2.0.4           amzn2-core
qt5-qtbase-postgresql.i686             5.9.2-3.amzn2.0.2              amzn2-core
qt5-qtbase-postgresql.x86_64           5.9.2-3.amzn2.0.2              amzn2-core

クライアントモジュールのインストール

PostgreSQLとpostgresql-clientのバージョンは合わせる必要があるらしい。

https://qiita.com/tubutubu_mustard/items/24235ab5260d3f8e42dc

こちらを参考に進める。

下記も参考

https://zatoima.github.io/aws-ec2-psql-install.html

yum searchでPostgreSQL client programsを探す
実行結果からpostgresql.x86_64PostgreSQL client programsと判明。

$ sudo yum install postgresql.x86_64
読み込んだプラグイン:extras_suggestions, langpacks, priorities, update-motd
amzn2-core                                                                       | 3.7 kB  00:00:00
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ postgresql.x86_64 0:9.2.24-1.amzn2.0.1 を インストール
--> 依存性の処理をしています: postgresql-libs(x86-64) = 9.2.24-1.amzn2.0.1 のパッケージ: postgresql-9.2.24-1.amzn2.0.1.x86_64
--> 依存性の処理をしています: libpq.so.5()(64bit) のパッケージ: postgresql-9.2.24-1.amzn2.0.1.x86_64
--> トランザクションの確認を実行しています。
---> パッケージ postgresql-libs.x86_64 0:9.2.24-1.amzn2.0.1 を インストール
--> 依存性解決を終了しました。

依存性を解決しました

========================================================================================================
 Package                    アーキテクチャー  バージョン                    リポジトリー           容量
========================================================================================================
インストール中:
 postgresql                 x86_64            9.2.24-1.amzn2.0.1            amzn2-core            3.0 M
依存性関連でのインストールをします:
 postgresql-libs            x86_64            9.2.24-1.amzn2.0.1            amzn2-core            235 k

トランザクションの要約
========================================================================================================
インストール  1 パッケージ (+1 個の依存関係のパッケージ)

総ダウンロード容量: 3.3 M
インストール容量: 17 M
Downloading packages:
(1/2): postgresql-libs-9.2.24-1.amzn2.0.1.x86_64.rpm                             | 235 kB  00:00:00
(2/2): postgresql-9.2.24-1.amzn2.0.1.x86_64.rpm                                  | 3.0 MB  00:00:00
--------------------------------------------------------------------------------------------------------
合計                                                                     21 MB/s | 3.3 MB  00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  インストール中          : postgresql-libs-9.2.24-1.amzn2.0.1.x86_64                               1/2
  インストール中          : postgresql-9.2.24-1.amzn2.0.1.x86_64                                    2/2
  検証中                  : postgresql-9.2.24-1.amzn2.0.1.x86_64                                    1/2
  検証中                  : postgresql-libs-9.2.24-1.amzn2.0.1.x86_64                               2/2

インストール:
  postgresql.x86_64 0:9.2.24-1.amzn2.0.1

依存性関連をインストールしました:
  postgresql-libs.x86_64 0:9.2.24-1.amzn2.0.1

完了しました!

PostgreSQLへ接続

$ psql -h <エンドポイント> -U <ユーザ名> -d <DB名>

$ psql -h <エンドポイント> -U <ユーザ名> -d <DB名>
ユーザ postgres のパスワード:
psql (9.2.24, サーバー 9.5.9)
注意: psql バージョン 9.2, サーバーバージョン 9.5.
         psql の機能の中で、動作しないものがあるかもしれません。
SSL 接続 (暗号化方式: ECDHE-RSA-AES256-GCM-SHA384, ビット長: 256)
"help" でヘルプを表示します.

posgre_database=>

psql の機能の中で、動作しないものがあるかもしれません。と注意されてしまった。

リポジトリをインストールする必要あり。Accessing to the PostgreSQL RPM Repositories こちらのページから対象バージョンのURLを確認。

参考URL

https://dev.classmethod.jp/articles/how-to-install-postgresql93-to-amazon-linux-2/

psql クライアントを使う

https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/USER_ConnectToPostgreSQLInstance.html

現在のバージョン確認

$ psql --version<br>psql (PostgreSQL) 9.2.24

バージョン合わせる場合

https://qiita.com/SOJO/items/a1d97887d24c3e44596f