Tengo una base de datos heroku postgres y quiero migrarla a Amazon RDS para ahorrar costos. ¿Cuál es la manera de hacerlo con un tiempo de inactividad mínimo? Por lo general, esto implica replicar la base de datos en tiempo real y luego promover la base de datos replicada como la base de datos principal.
Sé que puedo usar una base de datos de seguidores para migrar DB dentro de heroku, y puedo usar la base de datos de réplica de lectura para migrar DB dentro de Amazon RDS. ¿Existe un método similar para crear la replicación de la base de datos de heroku DB que vive en mi propio Amazon RDS?
pg_basebackup
para empezar? ¿Y lidiar con diferentes versiones principales?Respuestas:
Estoy bastante seguro de que tendrá que realizar un buen volcado y restauración a la antigua. Amazon no parece ofrecer ninguna otra opción de importación que cargar en un volcado:
http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/PostgreSQL.Procedural.Importing.html
e incluso si lo hicieran, AFAICT las únicas opciones de exportación ofrecidas por Heroku son pg_dumps (es decir, no respaldos base o la capacidad de configurar un nodo de reserva activa externo):
https://devcenter.heroku.com/articles/heroku-postgres-import-export
Si tiene suerte, está utilizando una versión de Postgres lo suficientemente nueva como para admitir pg_dump paralelo (9.3+) y pg_restore paralelo (8.4+), lo que hará que su trabajo sea un poco más rápido. Y es de esperar que pueda darse el lujo de tomar una ventana de mantenimiento durante la cual bloquea las escrituras en su sitio mientras se realiza el cambio ...
fuente
Puede conectar su aplicación actual a la base de datos RDS y hacer que se inserte en Heroku y RDS, no quiero configurar la replicación, solo para insertar en ambos servidores.
Una vez que esté configurado, tendrá nuevos registros almacenados en ambas bases de datos.
Debería ser fácil ver qué registros faltan (por ejemplo: en la tabla 1 faltan todos los registros con ID 100 o inferior) leyendo la primera fila de la base de datos RDS. Luego, escribir un script de exportación simple no debería ser demasiado difícil a menos que tenga muchas tablas.
Espero eso ayude
fuente
Parece que AWS DMS (Servicio de migración de base de datos) admite la migración de datos desde instancias externas de SQL. Pude configurar una tarea de migración que replica datos y cambios de Heroku a RDS. Aún no se ha visto si realmente funciona para mí;)
--- EDITAR ---
Parece que los servicios como DMS no funcionan con Heroku, porque requieren roles más privilegiados de los que Heroku permite en sus bases de datos: https://help.heroku.com/E10ZZ6IJ/why-can-ti-use-third-party-tools -to-replicate-my-heroku-postgres-database-to-a-non-heroku-database
fuente