Heroku postgresデータベースがあり、Amazon RDSに移行してコストを節約したい。最小限のダウンタイムでこれを行う方法は何ですか?通常、これには、データベースをリアルタイムで複製し、複製されたDBをメインDBとして昇格させることが含まれます。
フォロワーデータベースを使用してheroku内でDBを移行でき、リードレプリカデータベースを使用してAmazon RDS内でDBを移行できることを知っています。自分のAmazon RDSにあるheroku DBのデータベースレプリケーションを作成する同様の方法はありますか?
ここでは、古き良きダンプアンドリストアを実行する必要があります。 Amazonは、ダンプにロードする以外のインポートオプションを提供していないようです。
http://docs.aws.Amazon.com/AmazonRDS/latest/UserGuide/PostgreSQL.Procedural.Importing.html
そしてもしそうであったとしても、AFAICTはHerokuが提供する唯一のエクスポートオプションはpg_dumpsです(つまり、basebackupsや外部ホットスタンバイノードをセットアップする機能ではありません)。
https://devcenter.heroku.com/articles/heroku-postgres-import-export
運が良ければ、並列化されたpg_dump(9.3以降)と並列化されたpg_restore(8.4以降)の両方をサポートするのに十分新しいPostgresバージョンを使用しているため、作業が少し速くなります。そして、うまくいけば、スイッチオーバーが進行している間、サイトへの書き込みをロックアウトするメンテナンスウィンドウを取る余裕があります...
現在のアプリをRDSデータベースに接続 して、HerokuとRDSの両方に挿入することができます。レプリケーションを設定するのではなく、両方のサーバーに挿入するだけです。
これが設定されると、両方のデータベースに新しいレコードが保存されます。
RDSデータベースの最初の行を読み取ることで、欠落しているレコード(たとえば、table1でID 100以下のすべてのレコードが欠落している)を簡単に確認できるはずです。次に、テーブルがたくさんない限り、簡単なエクスポートスクリプトを書くことはそれほど難しくありません。
それが役に立てば幸い
AWS DMS(データベース移行サービス)が外部SQLインスタンスからのデータの移行をサポートしているようです。 HerokuからRDSへのデータと変更を複製する移行タスクを設定することができました。それが実際に私のために働くかどうかはまだわかりません;)
---編集---
DMSなどのサービスは、HerokuではデータベースでHerokuが許可するよりも多くの特権ロールを必要とするため、Herokuでは機能しないようです。 https://help.heroku.com/E10ZZ6IJ/why-can-ti-use-third -party-tools-to-replicate-my-heroku-postgres-database-to-a-non-heroku-database