首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在AWS RDS实例之间移动数据

在AWS RDS实例之间移动数据
EN

Stack Overflow用户
提问于 2017-03-02 16:41:07
回答 3查看 4.6K关注 0票数 3

我需要在两个不同rds实例上相同的mysql数据库之间移动数百万行。

代码语言:javascript
复制
- use data-pipeline to export data from the first instance to amazon-s3
- use data-pipeline to import data from amazon-s3 to the second instance

我的问题是,我需要在最后删除第一个实例上的数据。由于我们讨论的是大量数据,因此我考虑创建一个存储过程来批量删除行。在aws中有没有实现这一点的方法?

另一件事是,我只需要从特定表中移动一些行,而不是整个表或整个数据库。

EN

回答 3

Stack Overflow用户

发布于 2017-03-02 17:55:18

您可以使用AWS DMS服务,这是移动海量数据的最简单方法。请按照以下步骤操作。

首先,您需要在两个实例上更改RDS参数组中的一些设置。

代码语言:javascript
复制
'log_bin' = 'ON'

'binlog_format' = 'ROW'

'binlog_checksum' = 'NONE'

'log_bin_use_v1_row_events' = 'ON'

  1. 将数据库的架构从第一个RDS转储到第二个RDS上。
  2. 现在开始配置DMS。
  3. 首先设置终结点。
  4. 然后创建一个任务,将数据从源(第一个RDS)导入到目标(第二个RDS)。
  5. 在迁移类型中,如果要加载现有数据,请选择迁移现有数据,或者如果您尝试同步实时数据,请选择持续RDS任务设置,选中目标表准备模式= Do nothing.
  6. Check Enable logging复选框,这将有助于在出现任何错误时进行调试。
  7. 任务启动后,您可以在仪表板中查看流程。
票数 3
EN

Stack Overflow用户

发布于 2017-03-02 17:17:31

如果要删除一个表中的所有数据,请使用TRUNCATE TABLE而不是delete语句。这会为你节省很多时间。

票数 0
EN

Stack Overflow用户

发布于 2017-03-03 02:20:33

数据流水线更适合于循环进程。如果你只想做一个一次性的操作,似乎会有很多额外的麻烦。也许更容易启动一个具有良好网络吞吐量的实例,附加一个足够大的EBS卷来保存您的数据,并使用mysqldump等命令行工具来移动数据。

就清理而言,可能更快的方法是提出一个查询,将您想要保留的行(或除了不需要的行之外的所有行)复制到临时表中,然后使用rename将临时表替换为原始表。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42550498

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档