現状、スナップショットを他アカウントのRDSにリストア出来ない模様。
→dumpを取得して移行してみる
以下を参考にした。
http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/PostgreSQL.Procedural.Importing.html
- DB -> PostgreSQL 9.3.5
- クライアント -> CentOS 6.6
PostgreSQLのクライアント関係パッケージのインストール
クライアント側で必要パッケージのインストール。
http://yum.postgresql.org/rpmchart.php
$ wget http://yum.postgresql.org/9.3/redhat/rhel-6-i386/postgresql93-libs-9.3.5-1PGDG.rhel6.i686.rpm
$ wget http://yum.postgresql.org/9.3/redhat/rhel-6-i386/postgresql93-9.3.5-1PGDG.rhel6.i686.rpm
# yum localinstall postgresql93-libs-9.3.5-1PGDG.rhel6.i686.rpm
# rpm -ivh postgresql93-9.3.5-1PGDG.rhel6.i686.rpm
# pg_dump --version
pg_dump (PostgreSQL) 9.3.5
既存DBのdump取得
クライアント側から既存DBのdumpを取得。
https://www.postgresql.jp/document/9.3/html/app-pgdump.html
$ pg_dump -h xxx-org-db.xxxxxx.ap-northeast-1.rds.amazonaws.com -U app development -f /tmp/development.dump
インポート先のRDSインスタンス起動
なお、以下の設定でインスタンスを作成しておくと、データのインポートが高速になる。
- バックアップの保持設定を
0
- マルチAZを
無効
データベース作成
インポート先のRDSインスタンスにdumpしたデータベースと同名のデータベースを作成。
postgres=> CREATE DATABASE development LC_COLLATE 'ja_JP.UTF-8' LC_CTYPE 'ja_JP.UTF-8' ENCODING 'UTF8' TEMPLATE template0;
dumpをインポートする
インポート先のRDSインスタンスにdumpをインポートする。
https://www.postgresql.jp/document/9.3/html/app-psql.html
$ psql -f /tmp/development.dump --host=xxx-new-db.xxxxxx.ap-northeast-1.rds.amazonaws.com
--port=5432 --username=app --password --dbname=development
データベース名を変更する場合
postgres=> ALTER DATABASE development RENAME TO new_database_name