【问题标题】:persistently replicating RDS MySQL database to external slave将 RDS MySQL 数据库持久复制到外部从站
【发布时间】:2014-11-03 15:18:35
【问题描述】:

AWS 现在允许您to replicate data from an RDS instance to an external MySQL database

但是,根据文档:

仅在从 MySQL 数据库实例导出数据库期间支持复制到在 Amazon RDS 外部运行的 MySQL 实例。当数据已导出并且应用程序可以开始访问外部实例时,应终止复制。

这是有原因的吗?如果我希望复制是持久的和永久的,我可以选择忽略这个吗?还是 AWS 以某种方式强制执行此操作?如果是这样,是否有任何解决方法?

【问题讨论】:

    标签: mysql amazon-web-services amazon-rds database-administration


    【解决方案1】:

    除了您引用的声明之外,亚马逊似乎没有明确说明为什么他们不支持持续复制。根据我的经验,如果 AWS 没有明确记录他们为什么做某事的原因,那么除非他们决定稍后记录,否则您不太可能发现。

    我的猜测是它与 Amazon 实例的动态特性以及它们在 RDS 中的运行方式有关。 RDS 实例的 IP 地址可能会在没有警告的情况下突然更改。我们在运行的 RDS 实例中不止一次遇到过这种情况。根据 RDS Best Practices 指南:

    如果您的客户端应用程序正在缓存您的数据库实例的 DNS 数据,请将 TTL 设置为小于 30 秒。由于数据库实例的底层 IP 地址在故障转移后可能会发生变化,如果您的应用程序尝试连接到不再使用的 IP 地址,那么长时间缓存 DNS 数据可能会导致连接失败。

    鉴于 RDS 实例可以并且确实会不时更改其 IP 地址,我的猜测是,他们只是想避免不得不支持那些设置外部复制的人的可能性,但如果/当 RDS 突然中断时实例被分配了一个新的 IP 地址。除非您将复制用户和保护您的外部 mysql 服务器的任何防火墙设置为非常开放,否则如果 RDS 主服务器因任何原因(维护、硬件故障等)重新启动,复制可能会突然停止。从安全的角度来看,像这样打开复制用户和防火墙端口并不是一个好主意。

    【讨论】:

    • AWS 在网络研讨会上讨论了这个话题。本质上,是的,您可以无限期地保留它——只要您知道如何维护它,因为它不是受支持产品的一部分。在 Database Administrators Stack Exchange 上的这个答案中有一个网络研讨会和更多讨论的链接:dba.stackexchange.com/a/34645/11651
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-17
    • 1970-01-01
    相关资源
    最近更新 更多