コマンド一発で、あるPostgreSQLサーバから別のPostgreSQLサーバにデータをコピーする

2021-03-23Linux,PostgreSQL,SSH

トイレに行く前にターミナルから一発実行したコマンド。

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 コマンド実行時のパスワード入力に悩まされない。

2021-03-23Linux,PostgreSQL,SSH