Amazon RDS - Importación de exportación de base de datos MySQL
Amazon RDS MySQL proporciona formas sencillas de importar datos a la base de datos y exportar datos desde la base de datos. Una vez que podamos conectarnos con éxito a la base de datos MySQL, podemos usar las herramientas CLI para ejecutar los comandos de importación y exportación para obtener los datos de otras fuentes dentro y fuera de la base de datos RDS. A continuación, se muestran los escenarios a considerar al decidir el enfoque para importar los datos a la base de datos Amazon RDS - MySQL.
Una base de datos MySQL existente puede estar presente en las instalaciones o en otra instancia EC2. A continuación se muestra esquemáticamente lo que hacemos.
Creación de una copia de seguridad desde la base de datos local
Como primer paso, creamos una copia de seguridad de la base de datos local usando el siguiente comando.
mysqldump -u user -p[user_password] [database_name] > backupfile.sql
Se crea un archivo con el nombre backupfile.sql que contiene la estructura de la tabla junto con los datos que se utilizarán.
Almacenar el archivo de respaldo en S3.
Cargue el archivo de copia de seguridad creado anteriormente en un bucket de Amazon S3 predeterminado en la misma región donde está presente la base de datos RDS MySQL DB de destino. Puede seguir este enlace para obtener información sobre cómo cargar.
Importar datos de Amazon S3 a RDS - base de datos MySQL
Puede utilizar el siguiente comando de la CLI de Amazon para importar los datos de S3 a MySQL DB.
aws rds restore-db-instance-from-s3 \
--allocated-storage 125 \
--db-instance-identifier tddbidentifier \
--db-instance-class db.m4.small \
--engine mysql \
--master-user-name masterawsuser \
--master-user-password masteruserpassword \
--s3-bucket-name tpbucket \
--s3-ingestion-role-arn arn:aws:iam::account-number:role/rolename \
--s3-prefix bucketprefix \
--source-engine mysql \
--source-engine-version 5.6.27
Puede haber escenarios en los que desee que los datos de una base de datos RDS MYSQL existente se transfieran a otra base de datos RDS MYSQL. Por ejemplo, para crear una base de datos de recuperación ante desastres o crear una base de datos solo para informes comerciales, etc. En tal escenario, creamos réplicas de lectura que son una copia de su base de datos de origen y luego promovemos esa réplica de lectura a una nueva instancia de base de datos. Se utilizan para evitar una lectura pesada directa desde la base de datos de origen original cuando queremos copiar los datos.
crear una réplica de lectura
aws rds create-db-instance-read-replica \
--db-instance-identifier myreadreplica \
--source-db-instance-identifier mydbinstance
Promocionar una réplica de lectura a una instancia de base de datos
Ahora que tenemos la réplica, podemos promoverla a una instancia de base de datos independiente. Esto servirá a nuestra necesidad final de importar datos de o RDS - Mysql DB a uno nuevo. El siguiente comando se utiliza para completar la promoción de una réplica de lectura a una instancia de base de datos.
aws rds create-db-instance-read-replica \
--db-instance-identifier readreplica_name \
--region target_region_name
--db-subnet-group-name subnet_name
--source-db-instance-identifier arn:aws:rds:region_name:11323467889012:db:mysql_instance1
Para importar datos de cualquier otra base de datos a Amazon RDS - MySQL, tenemos que usar el servicio de migración de datos de Amazon, también llamado Amazon DMS. Utiliza la herramienta de conversión de esquemas para traducir la base de datos existente a una plataforma MYSQL. El siguiente diagrama explica el proceso general. También funciona con el principio de replicación similar al descrito en la sección anterior.
La exportación de datos desde Amazon RDS Mysql DB es un proceso directo en el que funciona con el mismo principio de replicación que hemos visto anteriormente. A continuación se muestran los pasos para realizar el proceso de exportación.
- Inicie la instancia de MySQL en ejecución externa a Amazon RDS.
- Designe la instancia de base de datos MySQL para que sea la fuente de replicación.
- Utilice mysqldump para transferir la base de datos de la instancia de Amazon RDS a la instancia externa a Amazon RDS.
A continuación se muestra el código para el comando mysqldum
mysqldump -h RDS instance endpoint \
-u user \
-p password \
--port=3306 \
--single-transaction \
--routines \
--triggers \
--databases database database2 \
--compress \
--compact | mysql \
-h MySQL host \
-u master user \
-p password \
--port 3306