请注意,这只适用于 MySQL,不适用于 Postgres DB
在 MySQL DB 实例可以作为复制源之前,我们必须通过将备份保留期设
置为 0 以外的值,在源 DB 实例上启用自动备份。此要求也适用于作为
另一个 Read Replica 的源 DB 实例的 Read Replica。自动备份仅支持运
行 MySQL 5.6 的 Read Replicas,不支持 5.1 或 5.5。(MySQL 读取副本)
我们可以为 Amazon RDS 数据库实例创建跨区域读取副本。
跨区域复制允许在一个区域内从不同区域的主站创建一个实时副本。
我们可以使用这个功能来实现跨区域的灾难恢复模型,在全球范围内进行
扩展,或者将现有的数据库迁移到一个新的区域。
- 区域之间的移徙
复制件可用于将主服务器转移到不同区域的同样目的。换句话说,
通过首先在所需的目标区域建立一个跨区域副本,可以在最少的停
机时间内将主服务器从一个区域迁移到另一个区域。
一旦创建了目标 RDS 实例并同步到主站,我们将断开应用程序与
旧主站的连接,然后将新区域中的新副本转换为独立的主站服务器,
在控制台中选择 Instance Actions 中的 Promote Read Replica,
这将切断副本与其旧主站之间的连接,并允许直接对其进行写入访
问,因为它现在将成为新的主站。
-
改善灾难恢复
我们可以在与主数据库区域不同的区域操作读取副本。在区域中断
的情况下,我们可以将副本推广为新的主库,保持业务的正常运行。 -
在全球范围内扩大规模
如果我们的应用的用户群分布在全球各地,我们可以使用跨区域读
取副本,从靠近用户的 AWS 区域提供读取查询服务。
当我们创建一个读副本时,我们指定一个现有的 DB Instance 作为源。Amazon RDS 会获取源实例的快照,并从快照中创建一个只读实例。对于 MySQL 和 PostgreSQL,Amazon RDS 使用这些引擎的原生异步复制,每当源 DB 实例发生变化时,就会更新读复制。读取副本作为一个只允许只读连接的 DB 实例运行;应用程序可以像连接任何 DB 实例一样连接到读取副本。Amazon RDS 会复制源 DB 实例中的所有数据库。(Amazon RDS 读取副本)
创建跨区域读取副本
我们可以通过一个 API 调用或在 AWS 管理控制台中的几次点击,为每个
源创建最多 5 个区域内和跨区域复制。(Amazon RDS for MySQL 的跨区
域读取副本)
跨区域复制非常容易创建。我们只需在 AWS 管理控制台中选择所需的区
域(和可选的可用性区域)即可。

目的地设置为"东京"。


我们可以检查一下日本是否有 DB。

参考资料。Amazon RDS for MySQL 的跨区域读取副本。
Postgres 的快照
假设我们有 Postgres DB,但是跨区域读取副本这个功能并不适用于
Postgres,无法将其复制到另一个区域。因此,我们想采取另一种方法,
即在 AWS 区域之间复制 Amazon RDS(关系型数据库服务)快照。在
我们的案例中,从 N.加州到日本。

表源。区域和供应区。
我们必须先创建一个 DB 快照,然后才能从一个 DB 实例中恢复。
我们可以从 AWS 管理控制台、AWS 命令行界面(CLI)或通过亚马逊 RDS
API 发起复制。以下是我们在快照时在控制台中看到的内容。


然后,进入 RDS 仪表板。


点击"复制快照"。

我们可以从 RDS 支持的任何数据库引擎(MySQL、Oracle 或 SQL
Server)复制任何大小的快照。副本可以在任何一个公共的 AWS 区域之
间移动,我们可以通过发起多个传输将同一个快照同时复制到多个
Region。

与其他复制操作一样,复制是以增量为基础的,只有自给定数据库实例的
最后一个快照以来发生变化的数据才会被复制。当我们删除一个快照时,
删除的数据仅限于不会影响其他快照的数据。
如指令中,如果我们点击"这里",就会得到。

复制操作本身是不收费的;我们只需支付源区域的数据传输和目的区域的
数据存储费用。如果复制失败,我们不收取费用,但如果我们取消了当时
正在进行的快照,我们将收取费用。

参考资料。Amazon RDS 的跨区域快照副本。
现在,我们需要恢复快照。
当我们还原 DB 实例时,我们提供了要从 DB 快照还原的名称,然后提供
了从还原中创建的新 DB 实例的名称。我们不能从 DB 快照还原到现有的
DB 实例;当我们还原时,会创建一个新的 DB 实例。
当我们还原一个 DB 实例时,只有默认的 DB 参数和安全组与还原的实例
相关联。一旦还原完成,我们就应该将我们使用的自定义 DB 参数或安全 组与我们还原的实例相关联。一旦 DB 实例可用,我们必须使用 RDS 控
制台的 Modify 命令、ModifyDBInstance API 或 rds-modify-db-instance
命令行工具明确应用这些更改。
在导航窗格中,单击快照,然后单击我们要恢复的 DB 快照。

点击还原快照,出现还原 DB 实例窗口,如下图所示。

在"DB Instance Identifier"文本框中键入还原的 DB 实例名称后,单击还 原 DB 实例按钮。



本文探讨了在Amazon RDS中针对MySQL数据库实例的跨区域读取副本的创建和使用,以实现灾难恢复和全球扩展。然而,PostgreSQL不支持跨区域读取副本,但可以通过跨区域快照复制来迁移或备份数据。详细步骤包括创建源DB快照,然后在目标区域还原以创建新的DB实例。
779





