Ale*_* Lo 7 mysql replication aws amazon-rds
我有一个 MySQL RDS 实例(“生产”),我需要从中将增量数据复制到另一个 MySQL RDS 实例(“报告”)。“增量数据”是某些表中的新行。目前,我通过一个 PHP 脚本完成此操作,该脚本根据上次更新时间从“生产”查询并将 CSV 文件写入磁盘,然后使用 mysqlimport.exe 将文件导入“报告”。
我目前的方法需要大约 80 秒。这是最强大和最有效的方法吗?我找到了其他用于“一次性”传输的工具,但没有找到“企业增量数据库复制”工具。
由于报告端的批处理操作,我们当前的过程不是“连续”复制。不过这可能是可以协商的。放松这种限制会打开工具,使这变得容易吗?
相关相关文章/问题:亚马逊关于导入数据的文章好像主要是处理批处理(初始加载)的情况。 http://aws.amazon.com/articles/2933
当在同一实例上从一个数据库移动到另一个数据库时,这可以通过存储过程来完成(我的问题是它们是不同的实例)。请参阅:保持 MySQL 暂存数据库在同一台服务器上从生产更新
我不能将两个数据库放在同一个实例上,因为我们的实例负载相当大。
MySQL RDS 允许您做两种选择
您设置了一个读从站。然后,从中运行报告。RDS CLI 中有一个工具,用于rds-create-db-instance-read-replica从正在运行的 RDS 实例创建读取从属设备。以下是在幕后完成的:
拍摄生产的实时快照。然后,使用该快照打开一个新实例。
用于此目的的工具是
rds-create-db-snapshotrds-restore-db-instance-from-db-snapshot这些选项之间的唯一区别
在这两种情况下,完成后,您只需自行决定删除新实例(节省资金)即可。
如果将这两个想法结合起来,您可以将 PHP 脚本的输出加载到点时间实例中。从生产中检索所需的任何数据都可以从读取从属设备中读取,以防止生产中出现进一步的负载问题。
启动实例可能非常耗时。因此,计划尽早启动实例以供报告和导入时间。
这更像是咆哮和集思广益,而不是具体的答案。