Amazon RDS - Importation de données MariaDB
Amazon RDS MariaDB fournit des moyens simples d'importer des données dans la base de données et d'exporter des données depuis la base de données. Une fois que nous avons réussi à nous connecter à la base de données MariaDB, nous pouvons utiliser les outils CLI pour exécuter les commandes d'importation et d'exportation afin d'obtenir les données d'autres sources dans et hors de la base de données RDS.
Vous trouverez ci-dessous les scénarios à prendre en compte lors du choix de l'approche pour l'importation des données dans la base de données Amazon RDS-MariaDB.
Une MariaDB existante peut être présente sur site ou dans une autre instance EC2. Ce que nous faisons est schématisé ci-dessous.
Création d'une sauvegarde à partir de la base de données sur site
Dans un premier temps, nous créons une sauvegarde de la base de données sur site à l'aide de la commande ci-dessous. MariaDB étant un clone de MySQL, peut utiliser presque toutes les mêmes commandes que MySQL.
# mysqldump -u user -p[user_password] [database_name] > backupfile.sql
Un fichier avec le nom backupfile.sql est créé qui contient la structure de la table avec les données à utiliser.
Stockage du fichier de sauvegarde dans S3.
Téléchargez le fichier de sauvegarde créé ci-dessus dans un compartiment Amazon S3 prédéterminé dans la même région où la base de données RDS MariaDB cible est présente. Vous pouvez suivre ce lien pour savoir comment mettre en ligne.
Importer des données d'Amazon S3 vers la base de données RDS - MariaDB
Vous pouvez utiliser la commande Amazon CLI suivante pour importer les données de S3 vers 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
À partir d'une autre instance RDS - MariaDB
Il peut y avoir des scénarios où vous souhaitez que les données d'une base de données RDS MariaDB existante soient transférées dans un autre RDS MariaDB. Par exemple, pour créer une base de données de reprise après sinistre ou créer une base de données uniquement pour les rapports commerciaux, etc. Dans un tel scénario, nous créons des répliques en lecture qui sont une copie de leur base de données source, puis nous promouvons cette réplique en lecture vers une nouvelle instance de base de données. Ils sont utilisés pour empêcher une lecture intensive directe à partir de la base de données source d'origine lorsque nous voulons copier les données.
créer un réplica en lecture
aws rds create-db-instance-read-replica \
--db-instance-identifier myreadreplica \
--source-db-instance-identifier mydbinstance
Promouvoir un réplica en lecture vers une instance de base de données
Maintenant que nous avons le réplica, nous pouvons le promouvoir en une instance de base de données autonome. Cela répondra à notre besoin final d'importer des données depuis o RDS - MariaDB DB vers un nouveau. La commande suivante est utilisée pour terminer la promotion d'un réplica en lecture vers une instance de base de données.
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
À partir de n'importe quelle base de données
Pour importer des données de toute autre base de données vers Amazon RDS - MariaDB, nous devons utiliser le service de migration de données amazon, également appelé Amazon DMS. Il utilise l'outil de conversion de schéma pour traduire la base de données existante vers une plate-forme MYSQL. Le diagramme ci-dessous explique le processus global. Il fonctionne également sur le même principe de réplication, comme décrit dans la section précédente.
L'exportation de données depuis Amazon RDS Mysql DB est un processus direct dans lequel il fonctionne sur le même principe de réplication que nous avons vu ci-dessus. Voici les étapes pour effectuer le processus d'exportation.
- Démarrez l'instance de MariaDB en cours d'exécution externe à Amazon RDS.
- Désignez l'instance de base de données MariaDB comme source de réplication.
- Utilisez mysqldump pour transférer la base de données de l'instance Amazon RDS vers l'instance externe à Amazon RDS.
Voici le code de la commande mysqldump pour transférer les données
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