我需要在两个不同rds实例上相同的mysql数据库之间移动数百万行。
- 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中有没有实现这一点的方法?
另一件事是,我只需要从特定表中移动一些行,而不是整个表或整个数据库。
发布于 2017-03-02 17:55:18
您可以使用AWS DMS服务,这是移动海量数据的最简单方法。请按照以下步骤操作。
首先,您需要在两个实例上更改RDS参数组中的一些设置。
'log_bin' = 'ON'
'binlog_format' = 'ROW'
'binlog_checksum' = 'NONE'
'log_bin_use_v1_row_events' = 'ON'发布于 2017-03-02 17:17:31
如果要删除一个表中的所有数据,请使用TRUNCATE TABLE而不是delete语句。这会为你节省很多时间。
发布于 2017-03-03 02:20:33
数据流水线更适合于循环进程。如果你只想做一个一次性的操作,似乎会有很多额外的麻烦。也许更容易启动一个具有良好网络吞吐量的实例,附加一个足够大的EBS卷来保存您的数据,并使用mysqldump等命令行工具来移动数据。
就清理而言,可能更快的方法是提出一个查询,将您想要保留的行(或除了不需要的行之外的所有行)复制到临时表中,然后使用rename将临时表替换为原始表。
https://stackoverflow.com/questions/42550498
复制相似问题