【问题标题】:AWS RDS Aurora - Cross Region Read Replica has both Write and Reader instance?AWS RDS Aurora - 跨区域只读副本同时具有写入和读取器实例?
【发布时间】:2021-10-16 18:05:39
【问题描述】:

我注意到在为我的 AWS Aurora 集群创建跨区域只读副本时 - 它同时具有写入和读取器实例(类似于我的主实例,除了读取器实例之外自然还有写入器)。在跨区域副本集群的集群配置中 - 我可以看到这个“副本”集群确实有 Replication source 标签,并且它正确地让所有数据异步流动。

我需要帮助理解这一点的几个问题:

  • 跨区域副本是否应该有写入器?
  • 如果源地区发生灾难,我应该写信给它吗?

【问题讨论】:

    标签: amazon-web-services amazon-rds


    【解决方案1】:

    在 AWS re:Post 中找到相关答案:

    “你正在复制到一个新的集群,每个集群都需要一个写入器 实例。建议客户应用 read_only 参数到副本,但默认情况下它们能够写入 这个实例。这允许读取副本的架构 可写。

    https://repost.aws/questions/QUrCbnj0u4TWaz-A1uR-QDPQ/aurora-create-cross-region-read-replica-vs-add-region

    【讨论】:

      【解决方案2】:

      我必须明确地将只读副本实例(在副本区域中)设为只读。否则,只读副本接受对其的写入。

      【讨论】:

        【解决方案3】:

        我认为“作家”这个名字有点误导。

        Aurora endpoint 的文档中:

        Aurora 数据库集群的集群终端节点(或写入器终端节点)连接到该数据库集群的当前主数据库实例。此端点是唯一可以执行 DDL 语句等写入操作的端点。因此,集群终端节点是您在首次设置集群或集群仅包含单个数据库实例时连接的终端节点。每个 Aurora 数据库集群都有一个集群终端节点和一个主数据库实例。

        因此编写器实例与集群的主实例是同一实体。

        Cross-Region Replication 的文档中:

        当您使用 AWS 管理控制台为 Aurora MySQL 创建跨区域只读副本时,Amazon RDS 会在目标 AWS 区域中创建一个数据库集群,然后自动创建一个数据库实例作为该数据库集群的主实例.

        对于跨区域复制,将创建新的集群(写入器实例)。

        您不需要处理 writer 实例。对于灾难恢复,promote read replica

        【讨论】:

        • 我尝试写入 Read Replica 的 writer 实例并且能够 .然后我写信给小学,那也写了。但在那之后 - 复制中断了。
        • 这听起来应该是只读副本。如果要写入只读副本实例,则需要将它们提升为独立的。
        • 这就是我不明白的 - 只读副本应该是只读的。如果我想在 DR 的情况下推广它,我可以..但是为什么当一个人可以不小心写到它时它会有一个 writer 实例?我正是这样做的,并且能够写信给它。所以现在我的 RR 集群中有一个额外的主键。复制中断了
        • @DorianMcAllister 我猜“写入器实例”被添加到只读副本只是为了在发生故障转移时拥有现成可用的集群。这样,它并不打算用于数据库客户端的实际数据写入,而仅用于复制过程。
        猜你喜欢
        • 2021-02-28
        • 2021-01-19
        • 2023-02-06
        • 1970-01-01
        • 2020-12-19
        • 1970-01-01
        • 1970-01-01
        • 2014-09-04
        • 1970-01-01
        相关资源
        最近更新 更多