Ya he investigado esto un poco. Me doy cuenta de que hay preguntas similares sobre Stack Overflow, y Amazon tiene un documento útil que da consejos aquí:
http://aws.amazon.com/articles/2933
Mis preocupaciones son las siguientes:
Amazon recomienda usar mysqldump
solo para "pequeñas cantidades de datos", que definen como menos de 1 GB. La base de datos que pretendo migrar tiene más de 20 GB.
mysqldump
Sin embargo, una cosa que es agradable es que tiene la --single-transaction
bandera, lo que me permite asegurar un estado de base de datos que sea consistente con un solo punto en el tiempo.
Para grandes cantidades de datos, la recomendación de Amazon es exportar la base de datos a archivos planos (por ejemplo, CSV) y luego usarlos mysqlimport
para importarlos a RDS. La mejor manera que sé cómo hacer esto , sin embargo, es a través del SELECT ... INTO OUTFILE
comando, que sólo opera una tabla a la vez. La desventaja de esto, por supuesto, es que no proporciona la garantía de consistencia --single-transaction
.
Supongo que podría garantizar la coherencia eliminando todo el DB temporalmente; pero me gustaría evitar eso si es posible.
- ¿Cuál es la mejor manera de obtener mi gran base de datos (> 20 GB) en archivos planos para que luego pueda usar
mysqlimport
? - Si es realmente el
SELECT ... INTO OUTFILE
comando, ¿cómo exporto todas las tablas de la base de datos (preferiblemente sin tener que hacer una a la vez)? - ¿Hay alguna buena manera de garantizar la coherencia en todo esto?
--opt
es predeterminado, lo que acelera las cosas. Creo que nos tomó 6 horas volver a cargar en un servidor potente, pero las transiciones son transiciones ... :)Respuestas:
Recientemente, pasé mucho tiempo tratando de descubrir una transición de 15 GB a RDS. Terminé buscando un script en uno de los foros de Amazon que modifiqué para mis propios usos y parece funcionar bien. No estoy seguro de si puede hacer una sola transacción, pero el volcado en sí es muy rápido en comparación con la transferencia real. Creo que 15GB solo me tomó 12 minutos para volcar, por lo que incluso si no tiene una sola opción de transacción, no creo que tenga un período de tiempo muy largo para que ocurran inconsistencias. No estoy seguro de si eso es lo suficientemente bueno para usted, pero encontré la solución mucho más elegante que el método de archivo plano.
fuente