Heroku veritabanını minimum kesinti süresi ile Amazon RDS'ye geçirin


15

Bir heroku postgres veritabanım var ve maliyetten tasarruf etmek için Amazon RDS'ye taşımak istiyorum. Minimum kesinti süresiyle bunu yapmanın yolu nedir? Genellikle bu, veritabanının gerçek zamanlı olarak çoğaltılmasını ve daha sonra çoğaltılan DB'nin ana DB olarak yükseltilmesini içerir.

Ben heroku içinde DB taşımak için bir takipçi veritabanı kullanabilirsiniz biliyorum ve ben Amazon RDS içinde DB taşımak için okuma çoğaltma veritabanı kullanabilirsiniz. Kendi Amazon RDS'imde yaşayan heroku DB'nin veritabanı kopyasını oluşturmak için benzer bir yöntem var mı?


2
herşeyin çoğaltıldığında RDS'de bir köle yapabilirsiniz.
Sam

2
@SamD Amazon'un henüz dış veritabanlarından gelen PostgreSQL kölelerini desteklediğini düşünmüyordum. Bunu eklediler mi? Bunu docs.aws.amazon.com/AmazonRDS/latest/UserGuide/… ' de görmüyorum . Eklenirse, bir belge bağlantısı çok takdir edilecektir . pg_basebackupBaşlamak için nasıl besliyorsunuz ? Ve farklı büyük sürümlerle başa çıkmak?
Craig Ringer

Yanıtlar:


3

Burada iyi bir eski moda dökümü ve geri yükleme yapmak zorunda kalacaksınız. Amazon, bir dökümde yüklemek dışında başka bir içe aktarma seçeneği sunmuyor:

http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/PostgreSQL.Procedural.Importing.html

ve öyle olsalar bile, AFUICT, Heroku tarafından sunulan tek dışa aktarma seçenekleri pg_dumps (yani basebackup'lar veya harici bir sıcak bekleme düğümü kurma yeteneği değildir):

https://devcenter.heroku.com/articles/heroku-postgres-import-export

Şanslıysanız, hem paralel pg_dump (9.3+) hem de paralel pg_restore'u (8.4+) destekleyecek kadar yeni bir Postgres sürümü kullanıyorsunuz. Ve umarım geçiş sırasında sitenize yazma kilitlediğiniz bir bakım penceresi almaya göze alabilirsiniz ...


1

Şunları yapabilirsiniz RDS veritabanına mevcut uygulamayı bağlamak ve onu Heroku ve RDS hem insert var, ben çoğaltma kurmak için sadece iki sunucuda eklemek için ortalama yok.

Bu ayarlandıktan sonra her iki veritabanında da yeni kayıtlar depolanır.

RDS veritabanındaki ilk satırı okuyarak hangi kayıtların eksik olduğunu görmek kolay olmalıdır (örneğin: table1'de id 100 veya daha düşük olan tüm kayıtlar eksik). Çok fazla tablonuz yoksa, basit bir dışa aktarma komut dosyası yazmak çok zor olmamalıdır.

Umarım yardımcı olur


1

AWS DMS (Veritabanı Geçiş Hizmeti), harici SQL örneklerinden veri aktarımını destekliyor gibi görünüyor. Heroku'dan RDS'ye veri ve değişiklikler kopyalayan bir taşıma görevi ayarlayabildim. Benim için gerçekten işe yarayıp yaramadığı henüz görülmedi;)

--- DÜZENLE ---

DMS gibi hizmetler Heroku ile çalışmaz, çünkü Heroku'nun veritabanlarında izin verdiğinden daha ayrıcalıklı roller gerektirirler: https://help.heroku.com/E10ZZ6IJ/why-can-ti-use-third-party-tools Projede öngörülen çoğaltmak-my-Heroku-postgres-veritabanı to-a-olmayan Heroku veritabanı

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.