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 DB./p>

 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数据库中的数据带入另一个RDS MariaDB时的情况.例如,要创建灾难恢复数据库或仅为业务报告等创建数据库.在这种情况下,我们创建只读副本,这些副本是其源数据库的副本,然后将该只读副本提升为新的数据库实例.当我们想要复制数据时,它们用于防止从原始源DB直接重读.

创建只读副本

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

向数据库实例提升只读副本

现在我们有了副本,我们可以将它提升为一个独立的数据库实例.这将满足我们最终需要将数据从RDS-MariaDB 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的数据 -  MariaDB,我们必须使用亚马逊数据迁移服务,也称为亚马逊DMS.它使用Schema转换工具将现有数据库转换为MYSQL平台.下图说明了整个过程.它也适用于上一节中描述的类似复制原则.

amazon_dms.jpg

从MariaDB导出数据

从Amazon RDS导出数据Mysql DB是一个直接的过程,它在我们看到的相同复制原理上工作以上.以下是执行导出过程的步骤.

  • 启动在Amazon RDS外部运行的MariaDB实例.

  • 将MariaDB数据库实例指定为复制源.

  • 使用mysqldump将数据库从Amazon RDS实例传输到Amazon RDS外部的实例.

以下是mysqldump命令传输数据的代码

 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