EC2でpg_dumpしたとき
[ec2 ~]$ pg_dump -U postgres -h `host` -p 5432 `database` -f aws.dump
パスワード:
pg_dump: サーババージョン: 12.5、pg_dump バージョン: 9.6.19
pg_dump: サーババージョンの不整合のため処理を中断しています
このようなエラーが起きたときは、サーバーバージョンのほうのpg_dumpをダウンロードする必要がある。
下記でリンクアドレスをコピー
https://www.postgresql.org/ftp/source/v12.5/
$cd /usr/local/src
$wget https://ftp.postgresql.org/pub/source/v12.5/postgresql-12.5.tar.gz
- 解凍
- ディレクトリ作成
- makeの実行。
$tar xzf postgresql-12.5.tar.gz
$cd postgresql-12.5.tar.gz
$mkdir /usr/local/postgresql-12.5/
$./configure --prefix=/usr/local/postgresql-12.5/ --with-pgport=5432
$make
$make install
途中でこんな感じのエラーがでたら
configure: error: no acceptable C compiler found in $PATH
$yum install gcc
するとinstallできるようになります。
エラーが出てもググれば解決できるのでググりましょう。
ダウンロードできたら
下記を実行し、ダウンロードしたpg_dumpのパスを確認。
$ find / -name pg_dump -type f 2>/dev/null
/usr/bin/pg_dump
/usr/local/src/postgresql-12.5/src/bin/pg_dump/pg_dump
確認したパスをつけてpg_dumpしてみる!
[myuser@ip-address ~]$ /usr/local/src/postgresql-12.5/src/bin/pg_dump/pg_dump -U postgres -h `host` -p 5432 `database` -f aws.dump
これでダウンロードできました...!!
dumpをローカルに持ってくる
ローカルで下記コマンドを実行
scp -i (.pem) myuser@ip-address:(ec2上の持ってきたいdumpがある場所) (dumpを持ってきたいローカルのパス)
例
scp -i ~/.ssh/tumiki.pem myuser@ip-address:/home/myuser/aws0801.dump ./