Open2

オンプレ→RDS(PostgreSQL)データ移行方法

ひでひで
  1. 事前準備:
① EC2インスタンスの準備
- Amazon Linux 2でインスタンス作成
- PostgreSQLクライアントのインストール
  sudo amazon-linux-extras enable postgresql14
  sudo yum install postgresql-server postgresql-devel

② セキュリティグループ設定
EC2:
- インバウンド:オンプレからSSH(22)
- アウトバウンド:RDSへ5432

RDS:
- インバウンド:EC2から5432
  1. 接続確認:
① EC2へSSH接続確認
ssh ec2-user@[EC2のパブリックIP]

② EC2からRDSへ接続確認
psql -h [RDSエンドポイント] \
     -U [ユーザー名] \
     -d [データベース名]
  1. データ移行:
① オンプレでダンプファイル作成
pg_dump -h [オンプレのIPアドレス] \
        -U [ユーザー名] \
        -d [データベース名] \
        -f backup.dump

② ダンプファイルをEC2へ転送
scp backup.dump ec2-user@[EC2のパブリックIP]:/home/ec2-user/

③ EC2からRDSへリストア
psql -h [RDSエンドポイント] \
     -U [ユーザー名] \
     -d [データベース名] \
     -f backup.dump
  1. 確認作業:
① データ件数確認
② テーブル構造確認
③ サンプルデータ確認
ひでひで

pg_dumpで作成したダンプファイルの形式によって、使用するリストアコマンドが変わります。

  1. ダンプ形式とリストアコマンド:
① テキスト形式(デフォルト: -Fp)の場合:
pg_dump -h [ホスト名] -U [ユーザー名] -d [DB名] -f backup.sql
↓
リストアはpsqlコマンドを使用:
psql -h [RDSエンドポイント] -U [ユーザー名] -d [DB名] -f backup.sql

② カスタム形式(-Fc)の場合:
pg_dump -h [ホスト名] -U [ユーザー名] -d [DB名] -Fc -f backup.dump
↓
リストアはpg_restoreコマンドを使用:
pg_restore -h [RDSエンドポイント] -U [ユーザー名] -d [DB名] backup.dump

つまり:

✅ テキスト形式なら:psqlコマンド
✅ カスタム形式なら:pg_restoreコマンド