Учебники

Amazon RDS — импорт и экспорт БД MySQL

Amazon RDS MySQL предоставляет простые способы импорта данных в БД и экспорта данных из БД. После того, как мы сможем успешно подключиться к базе данных MySQL, мы можем использовать инструменты CLI для запуска команд импорта и экспорта, чтобы получать данные из других источников в базу данных RDS и из нее. Ниже приведены сценарии, которые следует учитывать при выборе подхода к импорту данных в базу данных Amazon RDS — MySQL.

Из существующей базы данных MySQL

Существующая БД MySQL может присутствовать в помещении или в другом экземпляре EC2. Диаграмма того, что мы делаем, показана ниже.

on_premise.jpg

Создание резервной копии из локальной базы данных

В качестве первого шага мы создадим резервную копию локальной базы данных, используя следующую команду.


mysqldump -u user -p[user_password] [database_name] > backupfile.sql

Создается файл с именем backupfile.sql, который содержит структуру таблицы вместе с данными, которые будут использоваться.

Хранение файла резервной копии в S3.

Загрузите файл резервной копии, созданный выше, в предварительно определенную корзину Amazon S3 в том же регионе, где находится целевая база данных RDS MySQL DB. Вы можете перейти по этой ссылке, чтобы узнать, как загрузить.

Импорт данных из Amazon S3 в базу данных RDS-MySQL

Вы можете использовать следующую команду Amazon CLI для импорта данных из S3 в 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

Из другого экземпляра RDS-MySQL

Могут быть сценарии, когда вы хотите, чтобы данные из существующей БД RDS MYSQL были перенесены в другую БД RDS MYSQL. Например, для создания БД аварийного восстановления или создания БД только для бизнес-отчетности и т. Д. В этом сценарии мы создаем реплики чтения, которые являются копией их исходной БД, а затем продвигаем эту реплику чтения в новый экземпляр БД. Они используются для предотвращения прямого тяжелого чтения из исходной базы данных, когда мы хотим скопировать данные.

создать реплику для чтения

aws rds create-db-instance-read-replica \
    --db-instance-identifier myreadreplica \
    --source-db-instance-identifier mydbinstance

Продвиньте реплику чтения в экземпляр БД

Теперь, когда у нас есть реплика, мы можем преобразовать ее в автономный экземпляр БД. Это послужит нашей конечной необходимости импортировать данные из o RDS — Mysql 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 

Из любой базы данных

Чтобы импортировать данные из любой другой базы данных в Amazon RDS — MySQL, мы должны использовать Amazon Data Migration Service, также называемый Amazon DMS. Он использует инструмент преобразования схемы для преобразования существующей базы данных в платформу MYSQL. Приведенная ниже диаграмма объясняет общий процесс. Также он работает по принципу репликации, описанному в предыдущем разделе.

amazon_dms.jpg

Экспорт данных из MySQL

Экспорт данных из базы данных Amazon RDS Mysql — это прямой процесс, в котором он работает по тому же принципу репликации, который мы видели выше. Ниже приведены шаги для выполнения процесса экспорта.

  • Запустите экземпляр MySQL, работающий вне Amazon RDS.
  • Назначьте экземпляр базы данных MySQL источником репликации.
  • Используйте mysqldump для переноса базы данных из экземпляра Amazon RDS в экземпляр, внешний по отношению к Amazon RDS.

Ниже приведен код для команды mysqldum