LoginSignup
1
0

More than 1 year has passed since last update.

pg_dumpでダンプファイル作成。ローカル→(ssh接続)踏み台サーバー→DBサーバー

Last updated at Posted at 2022-02-23

DB接続環境

pg_dump.png

図のような環境でローカルにダンプファイルを作成したいケースはありませんか?

SQLクライアントツールを使うと簡単にダンプファイル作成出来ますが、開発者が各々好きなツールを使っていたので作成方法の共有が面倒でした。
スマートに作成したいなと思い調べたところ、2行のコマンドで出来ることが分かったので共有します。

コマンド

localにpostgresqlをインストールして下記コマンドを実行。

SSHポートフォワーディング

ssh [remote.username]@[remote.host] -p [remote.port] -i [秘密鍵のpath] -f -N -L [local.port]:[db.host]:[db.port]

ダンプファイル作成

pg_dump "host=localhost port=[local.port] dbname=[db.name] user=[db.user] password=[db.password]" > ~/Downloads/backup.dmp

コマンドの補足

ポートフォワーディングを利用してlocalのポートをDBサーバーのポートと見なす設定を行います。

// 踏み台サーバーにssh接続。
ssh [remote.username]@[remote.host] -p [remote.port] -i [秘密鍵のpath]

// 「-f」でバックグラウンド実行。「-N」でリモートコマンドを無効。
-f -N

// 「-L」がポートフォワーディングのオプション。local.portは空いているポートを指定。
-L [local.port]:[db.host]:[db.port]

今回は、踏み台サーバーからDBサーバーへの接続はパスワード認証を想定。

// 接続パラメータの指定方法としてconninfo文字列を使用
pg_dump "host=localhost port=[local.port] dbname=[db.name] user=[db.user] password=[db.password]"

// ダンプファイル格納先を指定。
> ~/Downloads/backup.dmp

conninfo文字列について

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0