Saya memiliki database postgres heroku dan ingin memigrasikannya ke Amazon RDS untuk menghemat biaya. Apa cara untuk melakukannya dengan downtime minimum? Biasanya ini melibatkan replikasi database secara real time dan kemudian mempromosikan DB yang direplikasi sebagai DB utama.
Saya tahu saya bisa menggunakan database pengikut untuk memigrasi DB di dalam heroku, dan saya bisa menggunakan database replika baca untuk memigrasi DB di dalam Amazon RDS. Apakah ada metode serupa untuk membuat replikasi database heroku DB yang hidup di Amazon RDS saya sendiri?
pg_basebackup
untuk memulai? Dan berurusan dengan berbagai versi utama?Jawaban:
Cukup yakin Anda harus melakukan dump-and-restore kuno yang bagus di sini. Amazon tampaknya tidak menawarkan opsi impor apa pun selain memuat di tempat sampah:
http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/PostgreSQL.Procedural.Importing.html
dan bahkan jika mereka melakukannya, AFAICT satu-satunya opsi ekspor yang ditawarkan oleh Heroku adalah pg_dumps (yaitu bukan basebackups atau kemampuan untuk mengatur node hot siaga eksternal):
https://devcenter.heroku.com/articles/heroku-postgres-import-export
Jika Anda beruntung, Anda menggunakan versi Postgres yang cukup baru untuk mendukung pg_dump paralel (9.3+) dan pg_restore paralel (8.4+), yang akan membuat pekerjaan Anda sedikit lebih cepat. Dan mudah-mudahan Anda dapat mengambil jendela pemeliharaan di mana Anda mengunci menulis ke situs Anda saat peralihan sedang berlangsung ...
sumber
Anda dapat menghubungkan aplikasi Anda saat ini ke database RDS dan memasukkannya ke dalam Heroku dan RDS, saya tidak bermaksud mengatur replikasi, hanya dengan memasukkan di kedua server.
Setelah ini diatur, Anda akan memiliki catatan baru disimpan di kedua database.
Seharusnya cukup mudah untuk melihat catatan mana yang hilang (misalnya: dalam tabel1 semua catatan dengan id 100 atau lebih rendah hilang) dengan membaca baris pertama dalam database RDS. Maka menulis skrip ekspor sederhana seharusnya tidak terlalu sulit kecuali Anda memiliki banyak tabel.
Semoga ini bisa membantu
sumber
Sepertinya AWS DMS (Database Migration Service) mendukung migrasi data dari instance SQL eksternal. Saya dapat mengatur tugas migrasi yang mereplikasi data dan perubahan dari Heroku ke RDS. Apakah itu benar-benar bekerja untuk saya belum dilihat;)
--- EDIT ---
Sepertinya layanan seperti DMS tidak berfungsi dengan Heroku, karena mereka membutuhkan peran yang lebih istimewa daripada yang Heroku perbolehkan di database mereka: https://help.heroku.com/E10ZZ6IJ/why-can-ti-use-third-party-tools -untuk mereplikasi-my-heroku-postgres-database-ke-non-heroku-database
sumber