Amazon RDS - Importazione dati MariaDB
Amazon RDS MariaDB offre modi semplici per importare dati nel DB ed esportare i dati dal DB. Dopo essere stati in grado di connettersi con successo al database MariaDB, possiamo utilizzare gli strumenti CLI per eseguire i comandi di importazione ed esportazione per ottenere i dati da altre fonti dentro e fuori dal database RDS.
Di seguito sono riportati gli scenari da considerare quando si decide sull'approccio all'importazione dei dati nel database Amazon RDS-MariaDB.
Un MariaDB esistente può essere presente in locale o in un'altra istanza EC2. Di seguito viene mostrato schematicamente quello che facciamo.
Creazione di un backup da database locale
Come primo passaggio creiamo un backup del database locale utilizzando il comando seguente. Essendo MariaDB un clone di MySQL, può utilizzare quasi tutti gli stessi comandi di MySQL.
# mysqldump -u user -p[user_password] [database_name] > backupfile.sql
Viene certificato un file con nome backupfile.sql che contiene la struttura della tabella insieme ai dati da utilizzare.
Archiviazione del file di backup in S3.
Carica il file di backup creato in precedenza in un bucket Amazon S3 predefinito nella stessa regione in cui è presente il database RDS MariaDB di destinazione. Puoi seguire questo link per sapere come caricare.
Importa dati da Amazon S3 al database RDS-MariaDB
Puoi utilizzare il seguente comando Amazon CLI per importare i dati da 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
Da un'altra istanza RDS-MariaDB
Potrebbero verificarsi scenari in cui desideri che i dati da un database RDS MariaDB esistente vengano trasferiti in un altro MariaDB RDS. Ad esempio, per certificare un database di ripristino di emergenza o creare un database solo per report aziendali, ecc. In tale scenario, creiamo repliche di lettura che sono una copia del loro database di origine e quindi promuoviamo tale replica di lettura a una nuova istanza database. Sono utilizzati per impedire una lettura pesante diretta dal DB di origine originale quando si desidera copiare i dati.
creare una replica di lettura
aws rds create-db-instance-read-replica \
--db-instance-identifier myreadreplica \
--source-db-instance-identifier mydbinstance
Promuovi una replica di lettura a istanza database
Ora che abbiamo la replica, possiamo promuoverla a un'istanza database autonoma. Questo servirà alla nostra esigenza finale di importare i dati da o RDS - MariaDB DB a uno nuovo. Il comando seguente viene utilizzato per completare la promozione di una replica di lettura in un'istanza db.
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
Da qualsiasi database
Per importare dati da qualsiasi altro database in Amazon RDS - MariaDB, dobbiamo utilizzare il servizio di migrazione dei dati di amazon chiamato anche Amazon DMS. Utilizza lo strumento di conversione dello schema per tradurre il database esistente in una piattaforma MYSQL. Il diagramma seguente spiega il processo generale. Inoltre funziona secondo il principio di replica simile a quello descritto nella sezione precedente.
L'esportazione di dati da Amazon RDS Mysql DB è un processo diretto in cui funziona secondo lo stesso principio di replica che abbiamo visto sopra. Di seguito sono riportati i passaggi per eseguire il processo di esportazione.
- Avvia l'istanza di MariaDB in esecuzione all'esterno di Amazon RDS.
- Designare l'istanza database MariaDB come origine della replica.
- Utilizza mysqldump per trasferire il database dall'istanza Amazon RDS all'istanza esterna ad Amazon RDS.
Di seguito è riportato il codice per il comando mysqldump per trasferire i dati
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