あっちのDBサーバーからこっちのDBサーバーにPostgresqlのデータを抜きだしたときのメモ

2019-03-09Linux, PostgreSQL, SSH

トイレに行く前にCygwinから一発実行したコマンド。

PostgreSQLデータベースのデータをあるサーバから別のサーバに持っていきたいときに便利なコマンド。

これだとゴミファイルも残らない。

以下の部分には適当に書き換えて使ってください。

文字列 説明
from_user コピー元 サーバーユーザ
from_server コピー元 サーバーホスト
from_dbuser コピー元 DBユーザ
from_dbpass コピー元 DBパスワード
from_dbname コピー元 DB名
------------- -----------------------------
to_user コピー先 サーバーユーザ
to_server コピー先 サーバーホスト
to_dbuser コピー先 DBユーザ
to_dbpass コピー先 DBパスワード
to_dbname コピー先 DB名

コマンド

$ ssh from_user@from_server "PGPASSWORD=from_dbpass pg_dump -c -U from_dbuser from_dbname | gzip -c" \
  | ssh to_user@to_server "gunzip -c | PGPASSWORD=to_dbpass psql -U to_dbuser to_dbname"

事前に設定しておくと良い設定

ssh-keygenで秘密鍵を作っておくと ssh コマンド実行時のパスワード入力に悩まされない。

2019-03-09Linux, PostgreSQL, SSH