Amazon RDS - Importación de datos MariaDB
Amazon RDS MariaDB 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 MariaDB, 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 que se deben considerar al decidir el enfoque para importar los datos a la base de datos de Amazon RDS-MariaDB.
Una MariaDB 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. Como MariaDB es un clon de MySQL, puede usar casi todos los mismos comandos que MySQL.
# 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 respaldo creado anteriormente en un bucket de Amazon S3 predeterminado en la misma región donde está presente la base de datos RDS MariaDB de destino. Puede seguir este enlace para obtener información sobre cómo cargar.
Importar datos de Amazon S3 a RDS- base de datos MariaDB
Puede utilizar el siguiente comando de la CLI de Amazon para importar los datos de S3 a MariaDB 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
Desde otra instancia RDS- MariaDB
Puede haber situaciones en las que desee que los datos de una base de datos RDS MariaDB existente se transfieran a otra RDS MariaDB. 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 - MariaDB 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
Desde cualquier base de datos
Para importar datos de cualquier otra base de datos a Amazon RDS - MariaDB, 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 MariaDB en ejecución externa a Amazon RDS.
- Designe la instancia de base de datos MariaDB 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 del comando mysqldump para transferir los datos
mysqldump -h RDS instance endpoint \
-u user \
-p password \
--port=3306 \
--single-transaction \
--routines \
--triggers \
--databases database database2 \
--compress \
--compact | mysql \
-h MariaDB host \
-u master user \
-p password \
--port 3306