EC2とRDSにおけるPostgreSQLのバージョンミスマッチの解決法

RDSのデータをバックアップしようとEC2からRDSに向けてpg_dumpコマンドを実行しようとしたとき、
RDSとEC2のそれぞれのPostgreSQLのバージョンが異なると以下のようなエラーが発生します。

pg_dump: server version: 9.6.2; pg_dump version: 9.2.24
pg_dump: aborting because of server version mismatch

EC2側にPostgreSQLをインストールしている理由がRDSへの接続のためだけであれば、EC2側のPostgreSQLのバージョンを変更します。

EC2のPostgreSQLのバージョンを更新する

Amazon Linux 2より”amazon-linux-extras”リポジトリを使うと、簡単にPostgreSQLをインストールすることができます。

インストールできるPostgreSQLの確認

“amazon-linux-extras”リポジトリでインストールできるPostgreSQLを確認します。

$ sudo amazon-linux-extras

0 ansible2 available [ =2.4.2 =2.4.6 =2.8 =stable ]
2 httpd_modules available [ =1.0 =stable ]
3 memcached1.5 available [ =1.5.1 =1.5.16 =1.5.17 ]
5 postgresql9.6 available [ =9.6.6 =9.6.8 =stable ]
6 postgresql10 available [ =10 =stable ]

v9.6(パッケージ名 : postgresql9.6)とv10(パッケージ名 : postgresql10)がインストールできるようです。
ここではRDSと合わせるため、v9.6をインストールしてみます。

PostgreSQLのアンインストール

既にインストールされている古いPostgreSQLを削除します。

$ sudo yum remove postgresql

PostgreSQLのインストール

インストールするには”amazon-linux-extras install”コマンドで、先ほど確認したパッケージ名を指定します。

$ sudo amazon-linux-extras install postgresql9.6

 

RDS for PostgreSQL 9.6が廃止されるので、早く移行しなきゃ。。。

Related Posts