Учебники

Amazon RDS — импорт данных MariaDB

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

Ниже приведены сценарии, которые следует учитывать при выборе подхода к импорту данных в базу данных Amazon RDS-MariaDB.

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

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

on_premise.jpg

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

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

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

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

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

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

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

Вы можете использовать следующую команду Amazon CLI для импорта данных из S3 в базу данных MariaDB.

 
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 — MariaDB

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

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

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

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

Теперь, когда у нас есть реплика, мы можем преобразовать ее в автономный экземпляр БД. Это послужит нашей конечной необходимости импортировать данные из базы данных RDS — MariaDB в новую. Следующая команда используется для завершения преобразования реплики чтения в экземпляр базы данных.

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 — MariaDB, мы должны использовать Amazon Data Migration Service, также называемый Amazon DMS. Он использует инструмент преобразования схемы для преобразования существующей базы данных в платформу MYSQL. Приведенная ниже диаграмма объясняет общий процесс. Также он работает по принципу репликации, описанному в предыдущем разделе.

amazon_dms.jpg

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

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

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

Ниже приведен код команды mysqldump для передачи данных.