エラー原因と対応方法|PostgreSQL|pg_restore: error: unsupported version|pg_dump によって作成された dump ファイルを pg_restore を実行して PostgreSQL データベースにリストアしようとするとエラーが発生


pg_dump によって作成された dump ファイルを pg_restore を実行して PostgreSQL データベースにリストアしようとすると、

pg_restore: error: unsupported version 

のエラーが発生が発生した。


ここでは、エラー原因と対応方法について、記載する。


エラー原因と対応方法


事象

pg_dump によって作成された dump ファイルを pg_restore を実行して PostgreSQL データベースにリストアしようとすると、下記のエラーが発生が発生した。

・エラー

pg_restore: error: unsupported version (1.15) in file header


原因

pg_dump をした postgresql-client のバージョンと pg_restore をした postgresql-client のバージョンが異なっていた。


今回、下記の Linux サーバ A ( postgresql-client 16.1 ) で、

pg_dump コマンドを実行して、Linux サーバ C の PostgreSQL データベースから dump ファイルを取得して、

下記の Linux サーバ B ( postgresql-client 15.1 ) で、

pg_restore -a -h LinuxサーバDのIPアドレス -p 5432 -d データベース名 -U ユーザ名 -n スキーマ名 -t xxxxx.dump
の pg_restore コマンドを実行して、取得した dump ファイルを Linux サーバ D の PostgreSQL データベースにリストアしようとしてエラーが発生した。


Linux サーバ A ( postgresql-client 16.1 ) と Linux サーバ B ( postgresql-client 15.1 ) の postgresql-client のバージョンが異なっていたことがエラーが発生した原因だった。




Linux サーバ A ( postgresql-client 16.1 ) の pg_dump のバージョンは、

$ pg_dump --version
pg_dump (PostgreSQL) 16.1

Linux サーバ B ( postgresql-client 15.1 ) の pg_restore バージョンは
$ pg_restore --version
pg_restore (PostgreSQL) 15.1

となっており、バージョンが異なっていた。

対応方法

Linux サーバ B ( postgresql-client 15.1 ) の postgresql-client を Linux サーバ B で下記のコマンドを実行して、postgresql-client のバージョン 16.2 にした。これにより、pg_restore でエラーが発生せず、正常にリストアが実行された。

・コマンド

$ sudo apt install postgresql-client

また、

Linux サーバ B の pg_restore バージョンは
$ pg_restore --version
pg_restore (PostgreSQL) 16.2

となった。


しかし、上記の対応では、Linux サーバ A, B, C, D の PostgreSQL のバージョンにズレがあるため、Linux サーバ A, B, C, D のすべてのバージョンを合わせたほうがよい。





スポンサーリンク

0 件のコメント :

コメントを投稿