Amazon RDS MySQL提供了将数据导入数据库并从数据库导出数据的简便方法.在我们能够成功连接到MySQL数据库之后,我们可以使用CLI工具来运行导入和导出命令,以便从RDS数据库中的其他来源获取数据.
以下是在决定将数据导入Amazon RDS - MySQL数据库的方法时需要考虑的方案.
现有的MySQL DB可以存在于内部或另一个EC2实例中.
如图所示,我们的工作如下所示.
作为第一步,我们使用以下命令创建内部部署数据库的备份.
mysqldump -u user -p[user_password] [database_name] > backupfile.sql
创建一个名为backupfile.sql的文件,其中包含表结构以及要使用的数据.
将上面创建的备份文件上传到目标RDS MySQL数据库所在的同一区域中的预定Amazon S3存储桶.
您可以使用以下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
可能有sc当您希望将现有RDS MYSQL数据库中的数据带入另一个RDS MYSQL数据库时.例如,要创建灾难恢复数据库或仅为业务报告等创建数据库.在这种情况下,我们创建只读副本,这些副本是其源数据库的副本,然后将该只读副本提升为新的数据库实例.当我们想要复制数据时,它们用于防止从原始源DB直接重读.
aws rds create-db-instance-read-replica \ --db-instance-identifier myreadreplica \ --source-db-instance-identifier mydbinstance
现在我们有了副本,我们可以将它提升为一个独立的数据库实例.这将满足我们最终需要从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,我们必须使用亚马逊数据迁移服务,也称为亚马逊DMS.它使用Schema转换工具将现有数据库转换为MYSQL平台.下图说明了整个过程.它也适用于上一节中描述的类似复制原则.
从Amazon RDS导出数据Mysql DB是一个直接的过程,它的工作原理与我们上面看到的相同.以下是执行导出过程的步骤.
启动在Amazon RDS外部运行的MySQL实例.
将MySQL数据库实例指定为复制源.
使用mysqldump将数据库从Amazon RDS实例传输到Amazon RDS外部的实例.
以下是mysqldum命令的代码
mysqldump -h RDS instance endpoint \ -u user \ -p password \ --port=3306 \ --single-transaction \ --routines \ --triggers \ --databases database database2 \ --compress \ --compact | mysql \ -h MySQL host \ -u master user \ -p password \ --port 3306