在 Amazon Neptune 中设置全球数据库 - Amazon Neptune
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

在 Amazon Neptune 中设置全球数据库

您可以通过以下方式之一创建 Neptune 全球数据库:

Amazon Neptune 中全球数据库的配置要求

Neptune 全球数据库跨至少两个 Amazon Web Services 区域。主 Amazon Web Services 区域包含具有一个写入器实例的 Neptune 数据库集群。一到五个辅助 Amazon Web Services 区域中的每一个区域都包含一个只读 Neptune 数据库集群,该集群完全由只读副本实例组成。至少需要一个辅助 Amazon Web Services 区域。

组成全球数据库的 Neptune 数据库集群具有以下特定要求:

  • 数据库实例类要求 — 全球数据库需要针对内存密集型工作负载进行优化的 r5r6g 数据库实例类,例如 db.r5.large 实例类型。

  • Amazon Web Services 区域要求 — 全球数据库需要位于一个 Amazon Web Services 区域中的主 Neptune 数据库集群,以及位于另一个区域中的至少一个辅助 Neptune 数据库集群。您最多可以创建五个辅助只读 Neptune 数据库集群,每个集群必须在不同的区域中。换句话说,Neptune 全球数据库中没有两个 Neptune 数据库集群可位于同一个 Amazon Web Services 区域中。

  • 引擎版本要求 — 全球数据库中的所有数据库集群使用的 Neptune 引擎版本应相同,并且必须大于或等于 1.2.0.0。如果您在创建新的全球数据库、集群或实例时未指定引擎版本,则将使用最新的引擎版本。

重要

尽管可以为全球数据库中的每个数据库集群单独配置数据库集群参数组,但最好在集群之间保持设置的一致性,以避免在必须将辅助集群提升为主集群时出现意外行为变化。例如,对于所有数据库集群中的对象索引、流等使用相同设置。

使用 Amazon CLI 在 Amazon Neptune 中创建全球数据库

注意

本节中的示例遵循使用反斜杠 (\) 作为行扩展符的 UNIX 惯例。对于 Windows,请用尖号 (^) 代替反斜杠。

使用 Amazon CLI 创建全球数据库
  1. 首先使用 create-global-cluster Amazon CLI 命令(用于封装 CreateGlobalCluster API)创建一个空的全球数据库。指定要作为主区域的 Amazon Web Services 区域的名称,将 Neptune 设置为数据库引擎,也可选择指定要使用的引擎版本(必须为 1.2.0.0 或更高版本):

    aws neptune create-global-cluster --region (primary region, such as us-east-1) \ --global-cluster-identifier (ID for the global database) \ --engine neptune \ --engine-version (engine version; this is optional)
  2. 全球数据库可能需要几分钟才能可用,因此在转入下一步之前,请使用 describe-global-clusters CLI 命令(用于封装 DescribeGlobalClusters API)检查全球数据库是否可用:

    aws neptune describe-global-clusters \ --region (primary region) \ --global-cluster-identifier (global database ID)
  3. 在 Neptune 全球数据库变为可用后,您可以创建一个新的 Neptune 数据库集群作为其主集群:

    aws neptune create-db-cluster \ --region (primary region) \ --db-cluster-identifier (ID for the primary DB cluster) \ --engine neptune \ --engine-version (engine version; must be >= 1.2.0.0) \ --global-cluster-identifier (global database ID)
  4. 使用 describe-db-clusters Amazon CLI 命令确认新的数据库集群已准备就绪,可以添加其主数据库实例:

    aws neptune describe-db-clusters \ --region (primary region) \ --db-cluster-identifier (primary DB cluster ID)

    当响应显示 "Status": "available" 时,继续执行下一步。

  5. 使用 create-db-instance Amazon CLI 命令为主集群创建主数据库实例。您必须使用内存优化型 r5r6g 实例类型之一,例如 db.r5.large

    aws neptune create-db-instance \ --region (primary region) \ --db-cluster-identifier (primary cluster ID) \ --db-instance-class (instance class) \ --db-instance-identifier (ID for the DB instance) \ --engine neptune \ --engine-version (optional: engine version)
注意

如果您计划使用 Neptune 批量加载程序向新的主数据库集群添加数据,请在添加辅助区域之前执行此操作。这比在全球数据库完全设置完毕后执行批量加载更快、更具成本效益。

现在,向新的全球数据库添加一个或多个辅助区域,如使用 Amazon CLI 添加辅助区域中所述。

将现有数据库集群转换为全球数据库

要将现有数据库集群转换为全球数据库,请使用 create-global-cluster Amazon CLI 命令创建一个与现有数据库集群位于相同 Amazon Web Services 区域中的新全球数据库,并将其 --source-db-cluster-identifier 参数设置为位于此处的现有集群的 Amazon 资源名称 (ARN):

aws neptune create-global-cluster \ --region (region where the existing cluster is located) \ --global-cluster-identifier (provide an ID for the new global database) \ --source-db-cluster-identifier (the ARN of the existing DB cluster) \ --engine neptune \ --engine-version (engine version; this is optional)

现在,向新的全球数据库添加一个或多个辅助区域,如使用 Amazon CLI 添加辅助区域中所述。

使用从快照还原的数据库集群作为主集群

您可以将从快照还原的数据库集群转换成 Neptune 全球数据库。完成还原后,将它创建的数据库集群转换为新的全球数据库的主集群,如上所述。

在 Amazon Neptune 中向主区域添加辅助全球数据库区域

Neptune 全球数据库至少需要一个与主数据库集群不在相同 Amazon Web Services 区域中的辅助 Neptune 数据库集群。您最多可以将五个辅助数据库集群附加到主数据库集群。

您添加的每个辅助数据库集群都会将主集群上可拥有的最大只读副本实例数减少一个。例如,如果有 4 个辅助集群,则主集群上可以拥有的最大只读副本实例数为 15 - 4 = 11。这意味着,如果主数据库集群和一个辅助集群中已经有 14 个读取器实例,则无法添加另一个辅助集群。

在 Neptune 中使用 Amazon CLI 向全球数据库添加辅助区域

使用 Amazon CLI 将辅助 Amazon Web Services 区域添加到 Neptune 全球数据库
  1. 使用 create-db-cluster Amazon CLI 命令在与主集群不同的区域创建新的数据库集群,并设置其 --global-cluster-identifier 参数以指定全球数据库的 ID:

    aws neptune create-db-cluster \ --region (the secondary region) \ --db-cluster-identifier (ID for the new secondary DB cluster) \ --global-cluster-identifier (global database ID) --engine neptune \ --engine-version (optional: engine version)
  2. 使用 describe-db-clusters Amazon CLI 命令确认新的数据库集群已准备就绪,可以添加其主数据库实例:

    aws neptune describe-db-clusters \ --region (primary region) \ --db-cluster-identifier (primary DB cluster ID)

    当响应显示 "Status": "available" 时,继续执行下一步。

  3. 使用 create-db-instance Amazon CLI 命令,并使用 r5r6g 实例类中的实例类型,为主集群创建主数据库实例:

    aws neptune create-db-instance \ --region (secondary region) \ --db-cluster-identifier (secondary cluster ID) \ --db-instance-class (instance class) \ --db-instance-identifier (ID for the DB instance) \ --engine neptune \ --engine-version (optional: engine version)
注意

如果您不打算在辅助区域中处理大量读取请求,而主要关心的是将数据可靠地备份到辅助区域,则可以创建一个没有数据库实例的辅助数据库集群。这样可以节省资金,因为这样您只需为辅助集群的存储付费,而 Neptune 会将此存储与主数据库集群中的存储保持同步。

连接到 Neptune 全球数据库

连接到 Neptune 全球数据库的方式取决于您是需要写入数据库还是从数据库读取:

  • 对于只读请求或查询,请连接到 Amazon Web Services 区域中 Neptune 集群的读取器端点。

  • 要运行突变查询,请连接到主数据库集群的集群端点,该集群可能位于与应用程序不同的 Amazon Web Services 区域中。