Pregunta

¿Cómo puedo importar la base de datos MySQL existente en Amazon RDS?

¿Fue útil?

Solución

Hay dos formas de importar datos:

  1. mysqldump : Si su tamaño de datos es inferior a 1 GB, puede hacer uso directamente del comando mysqldump e importar sus datos a RDS.
  2. mysqlimport : Si el tamaño de sus datos es más de 1 GB o en cualquier otro formato, puede comprimir los datos en archivos planos y cargar los datos utilizando el comando SQLIMPORT.

Otros consejos

encontré Esta página en los documentos de AWS Lo que explica cómo usar mysqldump y encenderlo en una instancia de RDS.

Aquí está su código de ejemplo (use en la línea de comandos/shell/ssh):mysqldump acme | mysql --host=hostname --user=username --password acme

dónde acme es la base de datos que está migrando y hostname/username son los de su instancia de RDS.

Puede conectarse a RDS como si fuera un servidor MySQL normal, solo asegúrese de agregar su EC2 IPS a sus grupos de seguridad por Este foro publica.

Tuve que incluir la contraseña para el mysqldump local, por lo que mi comando terminó luciendo más así:mysqldump --password=local_mysql_pass acme | mysql --host=hostname --user=username --password acme

FWIW, acabo de completar moviendo mis bases de datos. solía esta referencia para los comandos mysql como crear usuarios y otorgar permisos.

¡Espero que esto ayude!

Soy un gran admirador del Sqlyog herramienta. Le permite conectarse a sus bases de datos de origen y objetivo y esquema y/o datos de sincronización. También he usado Sqlwave, pero cambió a Sqlyog. Llevo tanto tiempo desde que hice el interruptor que no recuerdo exactamente por qué cambié. De todos modos, esos son mis dos centavos. Sé que algunos se opondrán a mi sugerencia de las herramientas GUI de Windows para MySQL. De hecho, me gusta tanto el producto SQLYOG que lo llevo a cabo desde el vino (funciona sin problemas desde el vino en Ubuntu para mí). Este Blog podría ser útil.

enter image description here

Un resumen rápido de una publicación de ingeniería gosquecada:

Configuración + arranque

  • Seleccione una ventana de mantenimiento y una ventana de copia de seguridad cuando la instancia esté en la carga más baja
  • Elija Multi-AZ o no (muy recomendable para autofailover y mantenimiento)
  • Arranca su instancia de RDS
  • Configurar grupos de seguridad para que sus aplicaciones, etc. puedan acceder a la nueva instancia

Migración de datos + preparación

  1. Habilitar binlogging si aún no lo ha hecho
  2. Correr mysqldump --single-transaction --master-data=2 -C -q dbname -u username -p > backup.sql en el caso antiguo para tomar un volcado de los datos actuales
  3. Correr mysql -u username -p -h RDS_endpoint DB_name < backup.sql Para importar los datos a su instancia de RDS (esto puede llevar un tiempo dependiendo de su tamaño de DB)
  4. Mientras tanto, su instancia de producción actual sigue sirviendo consultas: aquí es donde el master-data=2 y binlogging entra
  5. En su archivo de backup.sql, tendrá una línea en la parte superior que se parece CHANGE MASTER TO MASTER_LOG_FILE=’mysql-bin.000003′, MASTER_LOG_POS=350789121;
  6. Obtenga la diferencia desde backup.sql Como un archivo SQL mysqlbinlog /var/log/mysql/mysql-bin.000003 --start-position=350789121 --base64-output=NEVER > output.sql
  7. Ejecute esas consultas en su instancia de RDS para actualizarla cat output.sql | mysql -h RDS_endpoint -u username -p DB_name
  8. Obtenga la nueva posición de registro encontrando end_log_pos Al final de lo último output.sql expediente.
  9. Obtenga la diferencia desde el último output.sql (como el paso 6) y repita los pasos 7 + 8.

La migración real

  1. Tenga todas sus aplicaciones listas para implementar rápidamente con la nueva instancia de RDS
  2. Obtén lo ultimo end_log_pos de output.sql
  3. Correr FLUSH TABLES WITH READ LOCK; en el viejo caso para detener todas las escrituras
  4. Comience a implementar sus aplicaciones con la nueva instancia de RDS
  5. Ejecute los pasos 6-8 desde arriba para actualizar la instancia RDS con las últimas consultas al servidor anterior

Conclusión

Usando este método, tendrá una pequeña cantidad de tiempo (dependiendo de cuánto tiempo se tarda en implementar sus aplicaciones + cuántas escribe su instancia de MySQL, probablemente solo uno o dos minutos) con las escrituras rechazadas de su antiguo servidor, pero pero Tendrá una migración consistente sin tiempo de inactividad.

Una publicación completa y detallada que explica cómo (Gosquared) migramos a RDS con un tiempo de inactividad mínimo (incluida la depuración de errores) está disponible aquí: https://engineering.gosquared.com/migrating-mysql-to-amazon-rds.

Estoy completamente de acuerdo con @SanketDangi.

Hay dos formas de hacer esto una forma es como se sugiere usar cualquiera mysqldump o mysqlimport.

He visto casos en los que crea problemas mientras restaurar datos en la nube se corrompe.

Sin embargo, importar aplicaciones en la nube se ha vuelto mucho más fácil hoy en día. Intenta descargar su servidor DB en Public Cloud a través de Ravello.

Puede importar su servidor de base de datos en Amazon usando Ravello.

Divulgación: trabajo para Ravello.

La Guía de importación de datos de clientes de AWS RDS para MySQL está disponible aquí: http://aws.amazon.com/articles/2933

  • Crear archivos planos que contienen los datos a cargar
  • Detenga cualquier aplicación que acceda a la instancia de DB de destino
  • Crea una instantánea de DB
  • Deshabilitar copias de seguridad automatizadas de Amazon RDS
  • Cargue los datos usando mySQLIMPORT
  • Habilitar copias de seguridad automatizadas nuevamente

Si está utilizando el terminal, esto es lo que funcionó para mí:

mysqldump -u local_username -plocal_password local_db_name | mysql -h myRDS-at-amazon.rds.amazonaws.com -u rds-username -prds_password_xxxxx remote_db_name

Y luego utilicé MySQL Workbench (descarga gratuita) para verificar que estaba funcionando porque la línea de comando era estática después de presionar enviar, probablemente podría haber puesto al final para ver su salida

NOTA: No hay espacio después de -P

Ejemplo más simple:

# export local db to sql file:
mysqldump -uroot -p —-databases qwe_db > qwe_db.sql

# Now you can edit qwe_db.sql file and change db name at top if you want

# import sql file to AWS RDS:
mysql --host=proddb.cfrnxxxxxxx.eu-central-1.rds.amazonaws.com --port=3306 --user=someuser -p qwe_db < qwe_db.sql

Aquí están los pasos que he hecho y tuve éxito.

Tome el mysqldump de la base de datos necesaria.

mysqldump -u username -p dataBASEname--single-transaction --quick --lock-tablas = false> databasename-backup-$ (fecha +%f) .sql

(No olvide reemplazar el nombre de usuario como raíz, la mayoría de las veces y databasename -> db nombre de la base de datos que va a migrar a RDS)

Una vez solicitado, ingrese su contraseña.

Una vez hecho esto, inicie sesión en la instancia de RDS desde su servidor MySQL (asegúrese de que los grupos de seguridad estén configurados para permitir la conexión de EC2 a RDS)

mysql -h hostaddress -p 3306 -u rdsusername -p

(No olvide reemplazar a Hostaddress con la dirección de su instancia RDS y RDSUSERNMAE con nombre de usuario para su instancia de RDS, cuando se le solicite, también due la contraseña)

Encuentra que Hostaddress en -Conectividad y seguridad -> Punto final y puerto en la base de datos RDS de la consola AWS.

Una vez iniciado sesión, cree la base de datos usando comandos MySQL:

Crear base de datos DataBASEname; Q

Una vez que la base de datos se crea en RDS, importe el archivo SQL creado en el Paso 1:

mysql -h hostaddress -u rdsusername -p dataBASEname <backupFile.sql

Esto debería importar el archivo SQL a RDS y restaurar el contenido en la nueva base de datos.

Referencia de : https://k9webops.com/blog/migrate-an-existing-database-on-mysql-mariadb-to-an-already-running-rdsinstance-on-the-aws/

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top