有关特定引擎的问题,您也可以参阅每个 Amazon RDS 数据库引擎的常见问题页面。

MySQL | MariaDB | Oracle | PostgreSQL | SQL Server

有关 Amazon Aurora 的常见问题,请参阅 Amazon Aurora 常见问题

开始免费使用 AWS

创建免费账户

AWS 免费套餐包括为期一年每月 750 小时的微型数据库实例使用时间,以及由 Amazon Relational Database Service (RDS) 提供的 20GB 存储空间和 20GB 备份空间。

查看 AWS 免费套餐详细信息 »


问:什么是 Amazon RDS?

Amazon Relational Database Service (Amazon RDS) 是一种托管服务,可以让用户在中轻松设置、操作和扩展关系数据库。它在管理耗时的数据库管理任务的同时,提供经济高效的可调容量,使您能够腾出时间专注于应用程序和业务。

Amazon RDS 让您能够访问非常熟悉的 MySQL、Oracle、SQL Server 或 PostgreSQL 数据库的功能。这意味着您当前用于现有 数据库的代码、应用程序和工具也可以无缝用于 Amazon RDS。Amazon RDS 可以自动备份您的数据库,并使您的数据库软件版本保持最新。您可以灵活方便地扩展与关系数据库实例相关联的计算资源或存储容量,从而从中受益。此外,Amazon RDS 还可通过复制轻松增强数据库可用性、改进数据耐久性或扩展读取密集型数据库工作中单一数据库实例的容量限制。与所有 Amazon Web Services 相同,您无需预先投资,而且只需为所使用的资源付费。

问:Amazon RDS 支持哪些关系数据库引擎?

Amazon RDS 支持 Amazon Aurora、MySQL、MariaDB、Oracle、SQL Server 和 PostgreSQL 数据库引擎。

问:Amazon RDS 可代我管理哪些内容?

Amazon RDS 可管理关系数据库设置所涉及的工作:从预置请求的基础设施容量到安装数据库软件。在您的数据库启动并运行后,Amazon RDS 会自动执行常规的管理任务,如执行备份以及修补为数据库提供支持的软件。借助可选的多可用区部署,Amazon RDS 还会管理可用区之间的同步数据复制以及自动故障转移。

由于 Amazon RDS 提供本机数据库访问,所以您可以像通常一样与关系数据库软件交互。这意味着您仍负责管理特定于应用程序的数据库设置。您需要构建最适合自己使用案例的关系架构,并负责调整性能以优化适用于应用程序工作流程的数据库。

问:应何时使用 Amazon RDS 和 Amazon EC2 关系数据库 AMI?

Amazon Web Services 为开发人员提供了很多数据库备选项。Amazon RDS 让您能运行功能完善的关系数据库,同时又让您摆脱繁琐的数据库管理工作。通过使用 Amazon EC2 上的众多关系数据库 AMI 之一,您可在云中管理自己的关系数据库。这些备选项之间存在很大差别,这使其中的某项可能更适合您的使用案例。有关最适合您的解决方案的相关指南,请参阅 AWS 云数据库

问:如何开始使用 Amazon RDS?

要注册 Amazon RDS,您必须要有 Amazon Web Services 账户。如果还没有账户,请创建一个账户。注册 Amazon RDS 后,请参阅 Amazon RDS 文档 (其中包含我们的入门指南)。

Amazon RDS 是 AWS 免费套餐 的一部分,因此,AWS 新客户可以免费在云中开始使用托管数据库服务。


问:什么是数据库实例?

您可以将数据库实例视为云中的数据库环境,其中包含您所指定的计算和存储资源。您可以创建和删除数据库实例,定义/优化数据库实例的基础设施属性,还能通过 AWS 管理控制台Amazon RDS APIAWS 命令行界面控制访问权限和安全性。您可以运行一个或多个数据库实例,且每个数据库实例都可以支持一个或多个数据库或数据库模式,具体取决于引擎类型。

问:如何创建数据库实例?

借助 AWS 管理控制台Amazon RDS APIAWS 命令行界面,您可以轻松创建数据库实例。要使用 AWS 管理控制台启动数据库实例,请单击“RDS”,然后单击实例选项卡上的启动数据库实例按钮。您可以从中指定数据库实例的参数,包括数据库引擎和版本、许可模式、实例类型、存储类型和存储量,以及主用户凭证。

您还可以更改数据库实例的备份保留策略、首选备份时段和计划维护时段。此外,您还可以使用 CreateDBInstance APIcreate-db-instance 命令创建数据库实例。

问:如何访问正在运行的数据库实例?

只要数据库实例可用,您即可在 AWS 管理控制台DescribeDBInstances APIdescribe-db-instances 命令中通过数据库实例描述检索其终端节点。使用这个终端节点,您就可以用您最喜欢的数据库工具或编程语言构建与您的数据库实例直接相连所需的连接字符串。要允许对您正在运行的数据库实例发出的网络请求,您需要授予访问权限。有关如何构建连接字符串以及如何开始使用的详细说明,请参阅我们的入门指南

问:使用 Amazon RDS 可以运行多少个数据库实例?

默认情况下,客户最多可以拥有 40 个 Amazon RDS 数据库实例。在这 40 个实例中,最多 10 个实例可以是“已包含许可证”模式下的 Oracle 或 SQL Server 数据库实例。40 个实例全都可用于“BYOL”模式下的 Amazon Aurora、MySQL、MariaDB、PostgreSQL 以及 Oracle 或 SQL Server。如果您的应用程序需要更多的数据库实例,您可以通过此申请表申请更多数据库实例。

问:可在一个数据库实例内运行多少个数据库或数据库模式?

  • 适用于 PostgreSQL 的 RDS:软件没有强制限制
  • 适用于 MySQL 的 RDS:软件没有强制限制
  • 适用于 PostgreSQL 的 RDS:软件没有强制限制
  • 适用于 Oracle 的 RDS:每个实例 1 个数据库;软件对于数据库模式的数量没有强制限制
  • 适用于 SQL Server 的 RDS:每个实例 30 个数据库
  • 适用于 PostgreSQL 的 RDS:软件没有强制限制

问:如何将数据导入 Amazon RDS 数据库实例?

将数据导入 Amazon RDS 的方式有很多并且非常简单,例如对于 MySQL 使用 mysqldump 或 mysqlimport 实用程序,对于 Oracle 使用数据泵、导入/导出或 SQL Loader,对于 SQL Server 使用 导入/导出向导、完整备份文件 (.bak 文件) 或 Bulk Copy Program (BCP),或对 PostgreSQL 使用 pg_dump。有关数据导入和导出的更多信息,请参阅 MySQL 数据导入指南Oracle 数据导入指南SQL Server 数据导入指南PostgreSQL 数据导入指南

此外,AWS Database Migration Service 还可以帮助您轻松、安全地将数据库迁移到 AWS。

问:什么是维护时段?在维护期间,我的数据库实例是否可用?

如有请求或要求,您可以通过 Amazon RDS 维护时段控制数据库实例修改 (如扩展数据库实例类) 及软件补丁更新时间。如果在给定一周内安排了维护工作,则在制定维护时段内的某个时间点启动和完成维护。维护时间为 30 分钟。

唯一需要使用 Amazon RDS 将数据库实例脱机的情况是扩展计算操作(从始至终通常只需要几分钟时间)或要求修补软件的情况。只有安全和耐久的补丁会自动安排要求的修补。这种修补很少发生 (通常几个月一次),并且几乎不会要求过长的维护窗口。如果创建数据库实例时未指定首选周维护时段,系统将分配默认值 30 分钟。如果希望在代您执行维护时进行修改,您可以通过 AWS 管理控制台或使用 ModifyDBInstance APImodify-db-instance 命令修改数据库实例来执行该操作。如果选择这样操作,您的各个数据库实例可以执行不同的首选维护时段。

采用多可用区部署的方式运行数据库实例可进一步降低维护工作的影响。有关维护操作的更多信息,请参阅 Amazon RDS 用户指南

问:如果我的查询运行缓慢,应该怎么办?

对于生产数据库,建议您启用 Enhanced Monitoring,它将提供对 50 多个 CPU、内存、文件系统和磁盘 I/O 指标的访问权限。您可以按实例启用这些功能并选择粒度 (直至 1 秒)。较高的 CPU 使用率会降低查询性能,因此您可能会考虑扩展数据库实例类。有关监控数据库实例的更多信息,请参阅 Amazon RDS 用户指南

如果使用的是适用于 MySQL 或 MariaDB 的 RDS,您可以访问数据库的慢查询日志来确定是否存在运行缓慢的 SQL 查询以及各个查询 (如有) 的性能特征。您可以设置“slow_query_log”数据库参数并查询 mysql.slow_日志表,以查看慢运行的 SQL 查询。有关详细信息,请参阅 Amazon RDS 用户指南

如果使用的是适用于 Oracle 的 RDS,您可以使用 Oracle 跟踪文件数据来确定慢查询。有关访问跟踪文件数据的更多信息,请参阅 Amazon RDS 用户指南

如果使用的是适用于 SQL Server 的 RDS,您可以使用客户端 SQL Server 跟踪文件来确定慢查询。有关访问服务器端跟踪文件数据的信息,请参阅 Amazon RDS 用户指南


问:Amazon RDS 支持哪些关系型数据库引擎版本?

有关 Amazon Aurora 数据库版本的详细信息,请参阅 Amazon Aurora 用户指南

问:Amazon RDS 如何区分“主要”和“次要”数据库引擎版本?

有关版本编号的详细信息,请参阅各个 Amazon RDS 数据库引擎的常见问题页面。

问:Amazon RDS 是否提供新数据库引擎版本支持指南?

Amazon RDS 会逐渐增加对新的主要和次要数据库引擎版本的支持。指定年度所支持的新版本发行的数量将根据引擎供应商或开发组织的发布版本和补丁的频率和内容,以及我们的数据库工程团队对这些版本和补丁的彻底审查结果而不同。不过,一般而言,我们计划在通用版本发布后 5 个月内支持新的引擎版本。

问:如何指定希望数据库实例运行的受支持的数据库引擎版本?

您在通过 AWS 管理控制台中的启动数据库实例操作或 CreateDBInstance API 创建新数据库实例时,可以指定当前受支持的任何版本 (主要和次要)。请注意,并非所有数据库引擎版本在每个 AWS 区域都可用。

问:如何控制是否以及何时将数据库实例引擎版本升级到受支持的新版本?

Amazon RDS 通过为您提供更新版本的受支持数据库引擎,从而使您的数据库实例保持最新。供应商或开发组织发布新版数据库引擎后,我们的数据库工程团队会对其进行全面测试,然后才会在 Amazon RDS 中提供相应版本。

建议您将数据库实例升级到最新的次要版本,因为它包含最新的安全和功能修复程序。与主要版本升级不同的是,次要版本升级仅包括与数据库引擎之前的次要版本 (主要版本相同) 向后兼容的数据库更改。

如果新的次要版本不包含有益于 RDS 客户的修复程序,我们可能会选择不在 RDS 中提供该版本。在 RDS 中提供新的次要版本后不久,我们会将其设置为新数据库实例的首选次要版本。

要手动将数据库实例升级到受支持的引擎版本,请使用 AWS 管理控制台中的修改数据库实例命令或者使用 ModifyDBInstance API,然后将数据库引擎版本参数设置为所需版本。默认情况下,系统将立即或在下一维护时段应用升级。您也可以通过选择控制台 API 中的立即应用选项选择立即升级。

如果我们确定新的引擎次要版本和之前发布的次要版本相比包含了重要的错误修复程序,我们将为自动次要版本升级设为“是”的数据库实例安排自动升级。这些升级将被安排在客户指定的维护时段中进行。

我们会至少提前 30 天在 Amazon RDS 论坛上通知预定升级并向客户发送电子邮件通知。我们会提供日程表以便您根据其制定计划,因为升级数据库引擎版本需要停机,即便对于多可用区实例也是如此。如果您希望关闭自动次要版本升级,只需将“自动次要版本升级”设置为“否”即可。

对于 RDS for Oracle 和 RDS for SQL Server,如果升级到更高的次要版本需要更改到不同的版次,即使您已启用自动次要版本升级设置,我们可能也不会安排自动升级。在这种情况下,是否安排自动升级将根据具体情况而定。

由于主要版本升级涉及一些兼容性风险,因此不会自动执行且必须由您启动 (除非主要版本已被弃用,请参见下文)。

有关将数据库实例升级到新的数据库引擎版本的详细信息,请参阅 Amazon RDS 用户指南

问:升级前,是否可以针对新版本测试数据库实例?

可以。您只需创建现有数据库实例的数据库快照,从该数据库快照进行还原以创建新的数据库实例,然后为新的数据库实例启动版本升级即可。之后,您可以在升级后的数据库实例副本上安全地进行测试,然后决定是否升级原始的数据库实例。

有关还原数据库快照的详细信息,请参阅 Amazon RDS 用户指南

问:Amazon RDS 是否提供有关如何弃用目前受支持的数据库引擎版本的指南?

  • 对于发布的主要版本 (如 MySQL 5.6、PostgreSQL 9.6),我们计划自 Amazon RDS 开始支持起,至少持续支持 3 年。
  • 对于次要版本 (如 MySQL 5.6.21、PostgreSQL 9.6.1),我们计划从 Amazon RDS 开始支持起,至少持续支持 1 年。

我们会定期弃用主要或次要引擎版本。对于主要版本,我们通常会在该版本已移至扩展支持或不再接收软件修复程序或安全更新时将其弃用。对于次要版本,我们通常会在该版本存在严重错误或安全问题 (在更高的次要版本中已解决这些问题) 时将其弃用。

在我们努力满足这些指南要求的同时,有时候我们可能会很快否决特定的主要或次要版本,如存在安全问题时。万一出现这种情况,Amazon RDS 将自动升级您的数据库引擎以解决相关问题。所需时间会因不同的情况而异,具体取决于要解决的问题。

问:如果某个 RDS 数据库引擎版本被弃用,会出现什么情况?

当 Amazon RDS 中数据库引擎的某个次要版本被弃用后,我们会为启用自动次要版本升级设置的实例安排自动升级,升级时间是自在论坛上宣布弃用并向客户发送电子邮件通知至少 30 天后。我们还将禁用为此版本创建新实例的功能。我们在宣布弃用后提供至少三个月的宽限期,宽限期结束后,对于仍在运行已弃用次要版本的所有实例,我们将安排它们在指定的维护时段自动升级到受支持的次要版本。

当 Amazon RDS 中数据库引擎的主要版本被弃用后,我们将在宣布弃用后为您提供至少六个月的宽限期,以便您升级到受支持的主要版本。在此宽限期结束后,我们将在计划维护时段为仍在运行已弃用版本的所有实例实施自动升级。

当某个主要或次要数据库引擎版本在 Amazon RDS 中不受支持后,从使用不受支持的版本创建的数据库快照恢复的所有数据库实例都将立即自动升级到当前受支持的版本。


问:Amazon RDS 的使用如何收费和计费?

仅按实际使用量收费,无最低费用或设置费用。您的计费依据为:

  • 数据库实例小时数 – 基于使用的数据库实例类 (如 db.t2.micro、db.m4.large)。数据库实例运行未满一小时的按一小时计费。
  • 存储 (每月每 GB) – 您的数据库实例预置的存储容量。如果您在一个月内扩展您预置的存储容量,则您的帐单将按比例分配。
  • 每月的 I/O 请求 – 您的存储 I/O 请求总数量 (仅限于 Amazon RDS 磁性存储和 Amazon Aurora)
  • 每月的预配置 IOPS – 预配置 IOPS 费率,不论 IOPS 的消耗量如何 (仅限于 Amazon RDS 预配置 IOPS (SSD) 存储)
  • 备份存储 – 备份存储是指与您的自动数据库备份和任何由客户启动的数据库快照相关的存储。延长备份保留期或增加快照拍摄数量将增加数据库所消耗的备份存储。
  • 数据传输 – 传入和传出数据库实例的 Internet 数据传输。

有关 Amazon RDS 定价信息,请访问 Amazon RDS 产品页的定价部分

问:Amazon RDS 数据库实例的账单周期怎么计算?

数据库实例的账单周期从该数据库实例可用时开始计算。账单周期一直持续到该数据库实例终止之时,删除实例或实例出现故障时会发生终止。

问:Amazon RDS 应计费实例小时数如何界定?

数据库实例小时数是指按您的数据库实例在可用状态下运行的每个小时计费。如果您希望不再为数据库实例付费,则必须将其停止或删除,以免产生更多应计费实例小时数。数据库实例运行未满一小时的按一小时计费。

问:如何对停止的数据库实例计费?

当您的数据库实例停止时,您需要为预配置存储 (包括预配置 IOPS) 和备份存储 (包括指定保留时段内的手动快照和自动备份) 付费,但无需为数据库实例小时数付费。

问:为什么我的额外备份存储成本要高于分配的数据库实例存储?

您的数据库实例为主要数据预置的存储位于单一可用区内。备份数据库时,将在多个可用区域之间冗余地复制备份数据 (包括事务日志),以提供更高级别的数据耐久性。超出免费分配之外的备份存储定价体现了关键备份的持久性最大化所需的超级复制操作。

问:如何对多可用区部署的数据库实例计费?

如果您指定数据库实例为多可用区部署,系统将根据 Amazon RDS 定价页面上发布的多可用区定价计费。多可用区的计费依据为:

  • 多可用区数据库实例小时数 – 基于使用的数据库实例类 (如 db.t2.micro、db.m4.large)。对于单一可用区中的标准部署,不足一小时的数据库实例将按一小时计费。如果在给定小时内数据库实例部署在标准和多可用区模式之间发生转换,将按该小时适用的费用收费。
  • 预置存储 (针对多可用区部署实例) – 如果在给定小时内数据库实例部署在标准和多可用区模式之间发生转换,将按该小时适用存储费用的较高者收费。
  • 每月的 I/O 请求数 – 您拥有的存储 I/O 请求总数。多可用区部署耗用的 I/O 请求量高于标准数据库实例部署,具体取决于数据库的写入/读取比率。当 Amazon RDS 将数据同步复制到备用数据库实例时,数据库更新相关联的写入 I/O 使用量将加倍。读取 I/O 使用量保持不变。
  • 备份存储 – 无论您的数据库实例是标准部署还是多可用区部署,备份存储使用量都保持不变。备份将轻松地从备用实例进行,以避免主数据库实例上的 I/O 暂停。
  • 数据传输 – 在主实例和备用实例之间复制数据不会产生数据传输费用。传入和传出数据库实例的 Internet 数据传输费用与标准部署的费用相同。

问:价格是否含税?

除非另行说明,否则我们的价格不包括适用的税费和关税 (包括增值税和适用销售税)。使用日本账单地址的客户若要使用 AWS,则需缴纳日本消费税。了解更多


问:适用于 Amazon RDS 的 AWS 免费套餐包含哪些内容?

适用于 Amazon RDS 的 AWS 免费套餐包括:免费使用运行 MySQL、MariaDB、PostgreSQL、Oracle (“自带许可证 (BYOL)”授权模型) 和 SQL Server Express Edition 的单可用区微型数据库实例。免费使用套餐每月提供多达 750 小时的实例小时数。客户每月还可以免费获得 20GB 的通用型 (SSD) 数据库存储和 20GB 的备份存储。

问:适用于 Amazon RDS 的 AWS 免费套餐在哪些时段向客户开放?

AWS 新账户可以获得 AWS 免费套餐长达 12 个月的使用权。请参阅 AWS 免费套餐常见问题了解更多信息。

问:我是否可以在适用于 Amazon RDS 的 AWS 免费套餐下运行多个数据库实例?

可以。您可同步运行多个单可用区微型数据库实例,并且可以将使用量计入适用于 Amazon RDS 的 AWS 免费套餐中。但是,任何超过 750 实例小时的用量,包括所有 Amazon RDS 单一可用区微型数据库实例、所有适用的数据库引擎和区域,均按标准的 Amazon RDS 价格计费。

例如:如果您将两个单可用区微型数据库实例在一个月内各运行了 400 个小时,您将累计使用实例 800 小时,其中的 750 小时是免费的。剩下的 50 个小时将按标准的 Amazon RDS 价格计费。

问:在 AWS 免费套餐下,我是否可使用 MySQL、PostgreSQL、Oracle 和 SQL Server 微型数据库实例各 750 个实例小时?

不可以。有权使用 AWS 免费套餐的客户最多可使用 750 个小时的微型实例,无论实例运行的是 MySQL、PostgreSQL、Oracle 还是 SQL Server Express Edition。任何超过 750 个实例小时的使用量,包括所有 Amazon RDS 单可用区微型数据库实例、所有适用的数据库引擎和区域,均按标准 Amazon RDS 价格计费

问:适用于 Amazon RDS 的 AWS 免费套餐是否在所有 AWS 区域可用?

适用于 Amazon RDS 的 AWS 免费套餐在所有的 AWS 区域可用,GovCloud (美国) 除外。

问:当我的实例小时使用量超出了免费套餐提供的量时,应如何计费?

对于超出免费套餐所提供的实例小时数,将按标准的 Amazon RDS 价格计费。请参阅 Amazon RDS 定价页面了解详细信息。


问:什么是预留实例 (RI)?

借助 Amazon RDS 预留实例,您可以将数据库实例预留一年或三年,并借此获得与按需实例定价相比而言更大的折扣。RI 有三种付款选项 – 不预付、部分预付、全额预付 – 您可以通过这三种选项平衡您的预付款金额与有效小时价格。 

问:预留实例与按需数据库实例有何区别?

预留实例和按需数据库实例在功能上是完全相同的。唯一的区别在于数据库实例的计费方式:对于预留实例,您可以购买一年或三年期预留实例,并借此在持续期限内享受较低的有效小时使用费率 (相对于按需数据库实例)。除非您在一个地区购买预留实例,否则所有数据库实例都将根据按需小时费率计费。

问:如何购买和创建预留实例?

您可以在 AWS 管理控制台中 Amazon RDS 的“预留实例”部分购买预留实例。另外,您还可以使用 Amazon RDS API 或 AWS 命令行界面列出可供购买的预留,然后购买数据库实例预留。

购买预留实例之后,预留数据库实例与按需数据库实例的使用方式相同。您可以使用您预留的实例类、引擎和区域启动数据库实例。只要激活您购买的预留,Amazon RDS 即会对您符合资格的新数据库实例应用折扣后的每小时费率。

问:预留实例是否包括容量预留?

Amazon RDS 预留实例针对地区而非某个特定的可用区出售。由于 RI 并非特定于某个可用区,因此不包括容量预留。这意味着即使某个可用区的容量有限,您仍然可以在该地区内购买预留实例,且折扣将适用于该地区内所有可用区的匹配使用量。

问:我可以购买多少个预留实例?

您最多可以购买 40 个预留数据库实例。如果要运行 40 个以上数据库实例,请填写 Amazon RDS 数据库实例申请表

问:如果我想将现有数据库实例替换为预留实例,应该怎么办?

只需购买属于同一数据库类的数据库实例预留、您目前正在运行且希望预留的数据库实例所在地区内的数据库引擎、多可用区选项和许可模式即可。成功购买预留后,Amazon RDS 将自动对您现有的数据库实例应用新的小时使用费用。

问:如果我注册了预留实例,预留期限从何时开始算起?该期限结束后,会怎样处理我的数据库实例?

收到您的请求及处理付款授权后,系统将会激活与预留实例相关联的定价变更。您可以在“AWS 账户活动”页面或使用 DescribeReservedDBInstances APIdescribe-reserved-db-instances 命令跟踪预留的状态。如果在下一账单周期前未成功授权一次性付款,折扣价格则不会生效。

预留期限到期后,您的预留实例将恢复为该数据库实例类和区域相应的按需小时费率。

问:如何控制哪些数据库实例按照预留实例费用进行计费?

在按需实例和预留实例之间,与创建、修改和删除数据库实例相关的 Amazon RDS 操作均相同。计算账单时,我们的系统将自动应用您的预留,即所有符合条件的数据库实例都将按较低的预留数据库实例每小时费率收费。

问:如果对数据库实例类进行扩展或缩减,我的预留会发生什么情况?

每个预留都会关联以下一组属性:数据库引擎、数据库实例类、多可用区部署选项、许可模式和地区。

具有大小灵活性的数据库引擎和许可模式 (MySQL、MariaDB、PostgreSQL、Amazon Aurora 或 Oracle“自有许可”) 的预留会自动应用于同一数据库引擎和地区的同一实例系列 (例如 M4、T2 或 R3) 内正在运行的、任意大小的数据库实例。另外,预留也会自动应用于采用单可用区部署或多可用区部署的数据库实例。

举例来说,假设您购买了一个 db.m4.2xlarge MySQL 预留。如果您决定将运行的数据库实例扩展为 db.m4.4xlarge,则 RI 的折扣费率会应用到较大的数据库实例的 1/2 的使用量。

如果您采用的数据库引擎或许可模式具有大小灵活性 (Microsoft SQL Server 或 Oracle“已包含许可证”),那么在预留期限内,每个预留只能应用到具有相同属性的数据库实例。如果您要在预留期限结束前修改正在运行的数据库实例的任何属性,那么该数据库实例的小时使用费率将恢复为按需小时费率。

有关大小灵活性的更多想信息,请参阅 Amazon RDS 用户指南

问:是否可以在不同区域或可用区之间移动预留实例?

每个预留实例都与特定的区域关联,并且在预留实例生命周期内固定不变,因此无法更改区域。不过,每个预留在关联区域的任何可用区都可用。

问:是否可对预留实例进行多可用区部署?

可以。调用 DescribeReservedDBInstancesOfferings APIdescribe-reserved-db-instances-offerings 命令时,只需在可供购买的数据库实例配置中查询列出的“多可用区域”选项即可。如果要为数据库实例购买预留,同时在多个可用区之间进行同步复制,请在“PurchaseReservedDBInstancesOffering”调用中指定任一选项。

问:预留实例是否可用于只读副本?

如果数据库实例类和区域相同,数据库实例预留可以应用于只读副本。计算账单时,我们的系统将自动应用您的预留,即所有符合条件的数据库实例都将按较低的预留数据库实例小时费用收费。

问:是否可以取消预留?

不能,您无法取消预留数据库实例,而且一次性付款 (如果适用) 也不可退款。无论您使用多少容量,在预留数据库实例有效期内都必须继续支付小时费率。

问:付款选项会对我的账单产生什么影响?

当您按照全额预付款选项购买 RI 时,您需要用一次预付付款方式为 RI 的整个期限付款。您可以通过选择不预付选项选择不支付任何预付金。不预付 RI 的整体价值跨过实例期限中的每个小时,您将为该期限内的每个小时付费,无论使用情况如何。部分预付款选项是全额预付款和不预付选择的混合。进行小额预付款后,您将按较低的小时费率为实例期限内的每个小时付费,无论使用情况如何。


问:如何确定哪种初始数据库实例类和存储容量适合我的需求?

要选择初始数据库实例类和存储容量,您可能需要评估应用程序的计算、内存和存储需求。有关可用的数据库实例类的信息,请参阅 Amazon RDS 用户指南

问:如何扩展与 Amazon RDS 数据库实例关联的计算资源和/或存储容量?

您可以使用 AWS 管理控制台 (选择所需的数据库实例并单击修改按钮)、RDS API 或 AWS 命令行界面扩展为数据库实例分配的计算资源和存储容量。通过更改数据库实例等级可以修改内存和 CPU 资源,可用存储将随存储分配更改而发生变化。请注意,修改数据库实例等级或分配的存储后,在指定的维护窗口中将应用您请求的更改。此外,您可以使用“apply-immediately”标记立即应用扩展请求。请注意,任何其他待定的系统更改也将同时应用。

您可使用 Amazon CloudWatch 免费监控数据库实例的计算和存储资源使用率。您可以通过在 AWS 管理控制台中单击数据库实例的“监控”选项卡或者使用 Amazon CloudWatch API 来访问 CPU 使用率、存储使用率和网络流量等指标。有关监控您的活跃数据库实例的详细信息,请参阅 Amazon RDS 用户指南

请注意,对于 SQL Server,由于连接到 Windows Server 环境的条状存储的扩展限制,Amazon RDS 当前不支持增加存储。虽然我们计划在将来支持该功能,但仍然建议您基于未来预期的存储增长来预配置存储。如果在使用中需要增加 SQL Server 数据库实例的存储,您需要导出数据,以增加的存储创建新数据库实例,然后再将数据导入其中。有关更多信息,请参阅 SQL Server 数据导入指南

问:Amazon RDS 存储的硬件配置是什么?

Amazon RDS 的数据库和日志存储采用 EBS 卷。根据所请求存储的容量,Amazon RDS 自动将多个 EBS 卷分成条状以增强 IOPS 性能。对于 MySQL 和 Oracle 中现有的数据库实例,在扩展存储时,您可以看到部分 I/O 的容量有所改进。您可以使用 AWS 管理控制台ModifyDBInstance APImodify-db-instance 命令扩展为数据库实例分配的存储容量。

不过,对于 SQL Server,由于连接到 Windows Server 环境的条状存储的扩展限制,Amazon RDS 当前不支持增加存储。

更多信息请参考 Storage for Amazon RDS

问:我的数据库实例在扩展期间是否一直可用?

在保持数据库实例可用的同时,可以增加为数据库实例分配的存储容量。不过,在决定或缩减扩展数据库实例可用的计算资源时,您的数据库将暂时不可用,同时数据库实例类将发生变化。这段不可用时间通常仅会持续几分钟,将在数据库实例的维护时段出现,除非您指定了立即应用修改。

问:我可以怎样扩展数据库实例,使其超过最大数据库实例类和最大存储容量?

Amazon RDS 支持各种数据库实例类和存储分配以满足不同的应用程序需求。如果您的应用程序所需的计算资源超过最大数据库实例类或所需存储超过最大分配量,您可以执行分区,将数据分布到多个数据库实例中。

问:什么是 Amazon RDS 通用型 (SSD) 存储?

Amazon RDS 通用型 (SSD) 存储适用于拥有适度 I/O 请求的广泛数据库工作负载。凭借 3 IOPS/GB 的基准以及激增至 3000 IOPS 的能力,此存储方案将提供可预测的性能,以满足大多数应用程序的需求。

问:什么是 Amazon RDS 预配置 IOPS (SSD) 存储?

Amazon RDS 预配置 IOPS (SSD) 存储是支持 SSD 的存储方案,旨在提供快速、可预测且一致的 I/O 性能。凭借 Amazon RDS 预配置 IOPS (SSD) 存储,您可以在创建数据库实例时指定 IOPS 速率,而 Amazon RDS 可以为数据库实例的生命周期预置 IOPS 速率。Amazon RDS 预配置 IOPS (SSD) 存储经过优化,适合 I/O 密集型、事务处理型 (OLTP) 数据库工作负载。有关更多详情,请参阅 Amazon RDS User Guide

问:什么是 Amazon RDS 磁性存储?

Amazon RDS 磁性存储适用于数据访问频率较低的小型数据库工作负载。对于生产数据库实例,不建议使用磁性存储。

问:如何在众多的 Amazon RDS 存储类型中进行选择?

选择最适合您工作负载的存储类型。

  • 高性能 OLTP 工作负载:Amazon RDS 预配置 IOPS (SSD) 存储
  • 具有适度 I/O 要求的数据库工作负载:Amazon RDS 通用型 (SSD) 存储

问:Amazon RDS 支持的最大和最小 IOPS 数量是多少?

Amazon RDS 支持的 IOPS 数量取决于数据库引擎。有关更多详情,请参阅 Amazon RDS User Guide

问:自动备份和数据库快照之间有何差异?

Amazon RDS 提供了两种备份和还原数据库实例自动备份和数据库快照的不同方法。

通过 Amazon RDS 的自动备份功能,可以实现数据库实例的时间点恢复。为数据库实例打开自动备份功能时,Amazon RDS 将自动对数据执行全天快照 (在首选的备份时段期间) 并捕获事务日志 (如果对数据库实例进行了更新)。启动时间点恢复时,事务日志将应用到最合适的每日备份,以便将数据库实例还原到您请求的特定时间。Amazon RDS 可在用户指定的有限时间段 (称为“保留期”,默认情况下是 7 天,但最长可以设置为 35 天) 内保留数据库实例备份。在保留期内,您可以启动时间点还原并指定任何秒数,最多为最近可还原的时间。您可以使用 DescribeDBInstances API 以使其返回数据库实例的最近可还原时间,通常在最后五分钟以内。此外,您可以在 AWS 管理控制台中选择数据库实例,并查看控制台下侧面板的“描述”选项卡,了解该数据库实例的最近可还原时间。

数据库快照由用户启动,可让您按所需的任意频率在已知状态备份数据库实例,然后随时还原到这种特定的状态。您可以使用 AWS 管理控制台CreateDBSnapshot APIcreate-db-snapshot 命令创建数据库快照,这些快照会一直保留,直到您显式将其删除。

您可以使用 Amazon RDS 为实现自动备份而创建的快照来进行复制 (使用 AWS 控制台或 copy-db-snapshot 命令) 或用于快照还原功能。您可以使用“自动”快照类型来确定它们。此外,您可以查看“快照创建时间”字段来确定拍摄快照的时间。另外,“自动”快照的标识符中也包含快照拍摄的时间 (UTC 形式)。

请注意:执行还原到某个时间点操作或从数据库快照执行还原操作时,将使用新的终端节点创建一个新数据库实例 (如果需要,可以删除旧数据库实例)。这样,您便可以从特定数据库快照或时间点创建多个数据库实例。

问:我需要对数据库实例启用备份,还是它会自动启用?

默认情况下,Amazon RDS 可以在 7 天的保留期内自动进行数据库实例备份。免费备份存储仅限于预配置的数据库容量,且只适用于有效的数据库实例。例如,如果您每月预配置的数据库存储为 100GB,我们每月将免费提供 100GB 的备份存储。如果您希望延长备份保留期,可以使用 CreateDBInstance API (创建新数据库实例时) 或 ModifyDBInstance API (对于现有的数据库实例) 执行操作。您可以使用这些 API 来更改 RetentionPeriod 参数,将其从 1 更改为所需的天数。有关自动备份的详细信息,请参阅 Amazon RDS User Guide

问:什么是备份窗口?为什么我需要使用它?我的数据库在备份窗口中是否可用?

首选备份窗口是用户定义的时间段,在该时间段内数据库实例将进行备份。Amazon RDS 借助这些定期数据备份以及事务日志,让您能够将数据库实例还原到保留期内的任何秒数,最多到 LatestRestorableTime (通常位于最后五分钟内)。在备份窗口中,存储 I/O 可能会在备份过程初始化时暂停 (通常短于几秒),同时延迟可能会短暂性增加。由于备份在备用机上进行,因此对于多可用区数据库部署,不会出现 I/O 暂停。

问:我的自动备份和数据库快照存储在哪里?我可以怎样保留它们?

Amazon RDS 数据库快照和自动备份存储在 S3 中。

您可以使用 AWS 管理控制台ModifyDBInstance APImodify-db-instance 命令,通过修改 RetentionPeriod 参数来管理自动备份的保留时间段。如果希望关闭自动备份,可以通过将保留期设置为 0 来执行该操作 (不建议)。您可以通过 Amazon RDS 控制台的“快照”部分管理用户创建的数据库快照。另外,您还可以使用 DescribeDBSnapshots APIdescribe-db-snapshots 命令查看用户针对指定数据库实例创建的数据库快照列表,并可使用 DeleteDBSnapshot APIdelete-db-snapshot 命令删除快照。

问:如果删除数据库实例,我的备份和数据库快照会发生什么状况?

删除一个数据库实例时,您可以在删除时创建最终的数据库快照;如果这样,您就可以在将来利用此数据库快照恢复已删除的数据库实例。在删除数据库实例后,Amazon RDS 会将这个用户创建的最终数据库快照与所有其他手工创建的数据库快照一起保留。请参阅定价页面,了解备份存储成本的详细信息。

一旦删除数据库实例,自动备份也随之删除。在删除数据库实例后,只保留手工创建的数据库快照。


问:Amazon Virtual Private Cloud (VPC) 是什么?如何与 Amazon RDS 配合使用?

Amazon VPC 允许您在 AWS 云中私有、隔离的部分创建虚拟网络环境,从中可以对私有 IP 地址范围、子网、路由表和网络网关等方面进行全面控制。借助 Amazon VPC,您可以定义虚拟网络拓扑和自定义网络配置,使其非常类似于您在自己的数据中心所操作的传统 IP 网络。

使用 VPC 的一个好处在于:您可以运行面向公众的 Web 应用程序,同时仍旧在私有子网中保持非公开访问的后端服务器。您可以为 Web 服务器创建一个可以访问 Internet 的公有子网,并将后端 RDS 数据库实例置于不能访问 Internet 的私有子网中。有关 Amazon VPC 的更多信息,请参阅 Amazon Virtual Private Cloud User Guide

问:在 VPC 内使用 Amazon RDS 和在 EC2-Classic 平台 (非 VPC) 上使用它有何区别?

如果您的 AWS 账户是在 2013 年 12 月 4 日之前创建的,那么您或许可以在 Amazon Elastic Compute Cloud (EC2)-Classic 环境中运行 Amazon RDS。无论使用 EC2-Classic 还是 EC2-VPC,Amazon RDS 的基本功能完全相同。无论数据库实例部署在 VPC 内部还是外部,Amazon RDS 都能管理备份、软件补丁、自动故障检测、只读副本和恢复。想要了解更多有关 EC2-Classic 和 EC2-VPC 之间区别的信息,请参阅 EC2 文档

问:什么是数据库子网组?为什么我需要使用一个子网组?

数据库子网组是您希望为 VPC 中的 RDS 数据库实例委派的子网集合。每个子网组应至少包含给定区域中每个可用区域的一个子网。在 VPC 中创建数据库实例时,您需要选择一个数据库子网组。然后,Amazon RDS 使用该数据库子网组和您首选的可用区域来选择子网以及该子网内的 IP 地址。Amazon RDS 创建弹性网络接口,并通过该 IP 地址将其关联到您的数据库实例。

请注意,我们强烈建议您使用 DNS 名称来连接数据库实例,因为基础 IP 地址可能会变化 (例如,在故障转移时)。

对于多可用区域部署,为某个区域的所有可用区域定义子网,将允许 Amazon RDS 根据需要在其他可用区域创建新的备用实例。即使是单一可用区域部署,您也需要这样做,以防以后需要将它们转换为多可用区域部署。

问:如何在 VPC 中创建 Amazon RDS 数据库实例?

有关引导您完成此流程的程序,请参阅 Amazon RDS 用户指南中的在 VPC 中创建数据库实例

问:如何控制对我的数据库实例的网络访问?

请访问 Amazon RDS 用户指南的 Security Groups 部分,了解各种不同的数据库实例访问权限管理方法。

问:如何连接到 VPC 中的 RDS 数据库实例?

通过 VPC 内部署的 EC2 实例可以访问同一 VPC 内部署的数据库实例。如果这些 EC2 实例部署在具有关联弹性 IP 的公共子网中,您可以通过 Internet 访问 EC2 实例。

对于 VPC 内部署的数据库实例,可通过 VPN 或您在公有子网中可以启动的堡垒主机,或使用 Amazon RDS 可公开访问选项从 VPC 外部的 EC2 实例进行访问。

  • 要使用堡垒主机,您需要设置一个包含用作 SSH 堡垒的 EC2 实例的公开子网。该公有子网的 Internet 网关和路由规则必须允许通过 SSH 主机引导流量,然后必须将请求转发到 RDS 数据库实例的私有 IP 地址。
  • 将可公开访问选项设定为“Yes”而简单创建数据库实例后,即可使用公共连接。可公开访问选项可用时,默认情况下,从您的 VPC 外部可实现对 VPC 内数据库实例的完全访问。这表示您无需配置 VPN 或堡垒主机来允许访问您的实例。

您也可以设置一个 VPN 网关,将公司网络扩展到 VPC,然后允许访问该 VPC 中的 RDS 数据库实例。有关详细信息,请参阅 Amazon VPC 用户指南

我们强烈建议您使用 DNS 名称来连接数据库实例,因为基础 IP 地址可能会发生变化 (例如,在故障转移时)。

问:是否可以将 VPC 外的现有数据库实例移到 VPC 内?

如果数据库实例未在 VPC 中,您可以使用 AWS 管理控制台轻松将数据库实例移至 VPC 中。有关更多详细信息,请参阅《Amazon RDS 用户指南》。您还可以对 VPC 外部的数据库实例拍摄快照,然后通过指定您要使用的数据库子网组,将其还原到 VPC。此外,您也可以执行“还原到时间点”操作。

问:是否可以将 VPC 内的现有数据库实例移到 VPC 外?

不支持将数据库实例从 VPC 内部迁移到外部。出于安全考虑,无法将 VPC 内数据库实例的数据库快照还原到 VPC 外部。同样,也无法执行“还原到时间点”功能。 

问:要确保我的应用程序可以访问 VPC 中的数据库实例,我应该注意什么?

您需要负责修改 VPC 中的路由表和网络 ACL,以确保能够从 VPC 中的客户端实例访问您的数据库实例。

对于多可用区域部署,在故障转移后,您的客户端 EC2 实例和 RDS 数据库实例可能位于不同的可用区域。您需要配置网络 ACL,以确保能够跨可用区域进行通信。

问:是否可以更改数据库实例的数据库子网组?

现有的数据库子网组可以进行更新,以便为现有的可用区域或创建数据库实例时添加的新可用区域添加更多子网。如果实例在特定可用区中运行,而该可用区已经从子网组中删除,则从现有数据库子网组中删除子网可能导致实例不可用。有关更多信息,请参阅 Amazon RDS 用户指南

问:什么是 Amazon RDS 主用户账户?它与 AWS 账户有何差别?

开始使用 Amazon RDS 时,您需要有 AWS 开发人员账户。如果在注册 Amazon RDS 前没有 AWS 开发人员账户,系统将会提示您创建一个,再开始注册过程。主用户账户与 AWS 开发人员账户不同,它仅在 Amazon RDS 环境内使用,用来控制对您的数据库实例的访问。主用户账户是本机数据库用户账户,可用来连接数据库实例。在创建数据库实例时,您可以指定与每个数据库实例相关联的主用户账户和密码。创建数据库实例后,您可以使用主用户证书连接到数据库。之后,您也可以创建其他用户账户,以便限制谁能访问您的数据库实例。

问:对于我的数据库实例的主用户将授予什么特权?

对于 MySQL,主用户的默认特权包括:创建、退出、引用、事件、更改、删除、索引、插入、选择、更新、创建临时表、锁定表、触发、创建视图、显示视图、更改例程、创建例程、执行、触发、创建用户、处理、显示数据库、授予选项。

对于 Oracle,主用户将被授予“dba”角色。主用户将集成与该角色相关联的大部分特权。有关限制的特权以及执行需要这些特权的管理任务时相应的替代项列表,请参阅 Amazon RDS 用户指南

对于 SQL Server,创建数据库的用户将被授予“db_owner”角色。 有关限制的特权以及执行需要这些特权的管理任务时相应的替代项列表,请参阅 Amazon RDS 用户指南

问:使用 Amazon RDS 进行用户管理是否有任何差异?

没有。一切都与您自己管理关系数据库时使用的熟悉方式相同。

问:我的数据中心服务器中运行的程序是否可以访问 Amazon RDS 数据库?

可以。您必须通过配置“Security Groups”专门打开此功能,以便通过 Internet 访问数据库。 您只能对特定 IP、IP 范围或自己数据中心服务器所对应的子网授予访问权限。

问:是否可以使用 SSL 对我的应用程序和数据库实例之间的连接加密?

是的,此选项当前支持 MySQL、MariaDB、SQL Server、PostgreSQL、和 Oracle 引擎。

Amazon RDS 会为每个数据库实例生成一个 SSL 证书。建立加密连接后,在传输时将对数据库实例和应用程序之间传输的数据进行加密。

虽然 SSL 有安全优势,但应注意 SSL 加密操作需使用大量计算操作,可能会加大数据库连接延迟。Amazon RDS 中的 SSL 支持用来对应用程序和数据库实例之间的连接加密;不是应依赖于数据库实例本身的身份验证。

有关与 Amazon RDS 建立加密连接的详细信息,请访问 Amazon RDS 的 MySQL 用户指南MariaDB 用户指南SQL Server 用户指南PostgreSQL 用户指南Oracle 用户指南。要了解有关 SSL 如何与这些引擎协作的更多信息,您可以直接参考 MySQL 文档MariaDB 文档MSDN SQL Server 文档PostgreSQL 文档Oracle 文档

问:我能否加密 Amazon RDS 数据库上的静态数据?

Amazon RDS 使用您通过 AWS Key Management Service (KMS) 管理的密钥来支持所有数据库引擎的静态加密。在运行了 Amazon RDS 加密的数据库实例中,将加密基础存储中静态存储的数据,方法与其自动化备份、只读副本和快照一样。加密和解密操作的处理都是透明的。有关将 KMS 与 Amazon RDS 一起使用的更多信息,请参阅“Amazon RDS User's Guide”。

您还可以对之前未加密的数据库实例或数据库群集进行加密,具体方法是创建数据库快照,然后创建此快照的副本并指定 KMS 加密密钥。之后,您就可从加密的快照还原加密的数据库实例或数据库群集。

Amazon RDS for Oracle 和 SQL Server 支持这些引擎的透明数据加密技术。Oracle 中的透明数据加密可与 AWS CloudHSM 集成,从而使您能够在 AWS 云内的单租户硬件安全模块 (HSM) 设备中安全地生成、存储和管理您的加密密钥。有关更多信息,请参阅有关 OracleSQL Server 的“Amazon RDS User's Guide”部分。

问:我要如何控制我的系统和用户在特定 RDS 资源上可执行的操作?

您可以控制您的 AWS IAM 用户和组在特定 RDS 资源上可执行的操作。您可以通过以下方法实现此目的:在您应用到用户和组的 AWS IAM 策略中,引用相关的 RDS 资源。在 AWS IAM 策略中可引用的 RDS 资源包括:数据库实例、数据库快照、只读副本、数据库安全组、数据库选项组、数据库参数组、事件订阅以及数据库子网组。此外,您还可以为这些资源添加标记,以便在资源中添加额外的元数据。通过添加标记,您可以对资源进行归类 (例如,“开发”数据库实例、“生产”数据库实例、“测试”数据库实例,等等),然后编写 AWS IAM 策略,规定对于具有相同标记的资源可以执行哪些权限 (即操作)。有关更多信息,请参阅以下网页:Managing Access to Your Amazon RDS Resources and DatabasesTagging Amazon RDS Resources

问:我希望对我的 RDS 部署执行安全分析或操作问题排查。我能否获取在我的账户上发起的所有 RDS API 调用的历史记录?

可以。AWS CloudTrail 是一项 web 服务,为您的帐户记录 AWS API 调用并向您交付日志文件。由 CloudTrail 生成的 AWS API 调用历史记录可用于安全分析、资源变更追踪以及合规性审计。在 AWS CloudTrail 详细信息页面了解更多有关 CloudTrail 的信息,或者通过 CloudTrail 的 AWS 管理控制台首页将它打开。


问:如何为我的数据库实例选择正确的配置参数?

默认情况下,Amazon RDS 会考虑实例类和存储容量,为数据库实例选择最优配置参数。但是,如果要进行更改,您可以使用 AWS 管理控制台、Amazon RDS API 或 AWS 命令行界面执行此操作。请注意,将配置参数改为非建议的值可能会产生从性能降低到系统崩溃等各种意外影响,只有愿意承担此类风险的高级用户才可以尝试该操作。

问:什么是数据库参数组?它们可提供什么帮助?

数据库参数组 (数据库参数组) 就像是引擎配置值“容器”,这些值可应用于一个或多个数据库实例。如果创建的数据库实例未指定数据库参数组,将使用默认的数据库参数组。该默认组包含针对您运行的数据库实例进行优化的引擎默认值和 Amazon RDS 系统默认值。不过,如果希望数据库实例以您自定义的引擎配置值运行,可以轻松地创建一个新数据库参数组,修改所需的参数并修改数据库实例以使用新数据库参数组。建立关联后,使用特定数据库参数组的所有数据库实例都将获得该数据库参数组的所有参数更新。

有关配置数据库参数组的更多信息,请参阅《Amazon RDS 用户指南》

问:我应该如何监控 Amazon RDS 资源的配置?

您可以使用 AWS Config 持续记录以下项的配置更改 并通过 Amazon Simple Notification Service (SNS) 接收更改通知:Amazon RDS 数据库实例、数据库子网组、数据库快照、数据库安全组和事件订阅。您还可以创建 AWS Config Rules 来评估这些 RDS 资源是否具有所需的配置。


问:Amazon RDS 支持哪些类型的副本?何时应使用各种副本?

Amazon RDS 提供两种不同的复制选项以满足不同的用途。

如果您希望用复制来提高数据库可用性,同时保护最新数据库更新以免出现意外中断,可考虑以多可用区部署模式运行数据库实例。在创建或修改数据库实例以便以多可用区部署模式运行时,Amazon RDS 将在不同的可用区 (物理位置分隔的独立基础设施) 自动预置和管理一个“备用”副本。如果遇到计划的数据库维护、数据库实例故障或可用区故障,Amazon RDS 将自动故障转移到备用副本,以便无需管理干预也能很快恢复数据库操作。多可用区域部署采用同步复制,使主副本和备用副本上的数据库写入并行执行,以便备用副本在出现故障转移时保持最新状态。虽然多可用区域部署技术实施在出现故障时可以使数据持久性最大化,但在读取操作中会阻止直接访问或使用备用副本。多可用区部署提供的容错功能,使其自然而然地成为生产环境的理想之选。

为帮助您扩展并超越单个数据库实例的容量限制,以处理高读取量的数据库工作负载,Amazon RDS 提供了只读副本。您可以使用 AWS 管理控制台、RDS API 或 AWS 命令行界面创建指定的源数据库实例的只读副本。创建只读副本后,源数据库实例中的数据库更新将会填充到只读副本。您可以为给定的源数据库实例创建多个只读副本,并在它们当中分配应用程序的读取流量。

Amazon Aurora 以及适用于 MySQL、MariaDB 和 PostgreSQL 的 Amazon RDS 支持只读副本。与多可用区部署不同的是,这些引擎的只读副本使用的是各自的内置复制技术,且受其优势和局限约束。特别是,对源数据库实例进行更新后,更新会应用到只读副本 (“异步”复制),但复制滞后性可能会有很大差别。这意味着,如果源数据库实例出现意外故障,最近对标准 (非多可用区部署) 源数据库实例进行的数据库更新可能不会存在于关联的只读副本中。因此,只读副本不能提供与多可用区部署相同的数据持久性优势。尽管只读副本具备一些读取可用性优势,但它们对写入可用性没有改善。

您可以将多可用区部署和读取副本相互结合,以获得两者互补的优势。您可以轻松地将给定的多可用区部署指定为只读副本的源数据库实例。这样,即可获得多可用区域部署的数据持久性和可用性优势,以及读取副本的读取扩展优势。

问:以多可用区部署模式运行数据库实例意味着什么?

创建或修改数据库实例并以多可用区部署模式运行后,Amazon RDS 将自动在不同的可用区预置和维护同步“备用”副本。对数据库实例的更新将同步复制到可用区的备用副本中,以保持同步并保护最新的数据库更新,以防数据库实例出现故障。如果遇到特定类型的意外维护或很少出现的数据库实例故障或可用区故障,Amazon RDS 将自动故障转移到备用副本,以便在提示备用副本后尽快恢复数据库写入和读取操作。由于数据库实例的名称记录相同,所以应用程序无需手动管理干预即可恢复数据库操作。借助多可用区部署,您可以透明地进行复制:无需与备用副本交互,而且它不会用来服务于读取流量。有关多可用区部署的更多信息,请参阅 Amazon RDS 用户指南

问:什么是可用区域?

可用区域是某个区域不同的位置,旨在隔离其他可用区域的故障。每个可用区域在其独立的、物理上显著不同的基础设施中运行,并已设计为具备高可靠性。可用区域之间不共用常见的故障点,如发电机和冷却设备等。此外,它们在物理上也是相互独立的,即使火灾、龙卷风或洪涝等极为罕见的灾难也只会影响单个可用区域。同一区域的可用区域之间网络连接延迟性很低。

问:在多可用区域部署环境中,“主”和“备用”指什么?

以多可用区部署模式运行数据库实例时,“主”副本服务于数据库写入和读取操作。此外,Amazon RDS 会在场景后预配置和维护“备用”副本,它是主副本的最新副本。在故障转移情况下,会“提示”备用副本。故障转移后,备用副本将成为主副本,并接受数据库操作。在提示前的任何时候,无需与备用副本直接交互 (例如,用于读取操作)。如果您有兴趣扩展读取流量,以突破单个数据库实例的流量限制,请参阅只读副本的相关常见问题。

问:多可用区部署有哪些优势?

以多可用区部署模式运行数据库实例的主要优势是可提高数据库的持久性和可用性。多可用区部署提供了增强的可用性和容错功能,这使其自然而然成为生产环境的理想之选。

在遇到罕见的数据库实例组件故障或某个可用区的可用性受损的情况时,以多可用区部署模式运行数据库实例可确保数据安全无虞。例如,如果主副本中的存储卷出现故障,Amazon RDS 将自动启动故障转移到备用副本,在此您的所有数据库更新完整无缺。相对于单一可用区域的标准部署,这种方式提供更长的数据持久性,否则将需要用户启动还原操作且最近可还原时间 (通常在最后五分钟内) 之后进行的更新将不可用。

此外,以多可用区部署模式运行时,您还可获得增强数据库可用性的优势。如果发生可用区故障或数据库实例故障,可用性影响将仅限于完成自动故障转移的时间。多可用区域部署的可用性优势还可延伸到计划的维护操作。例如,对于自动备份,由于从备用副本进行备份,所以在首选的备份窗口期间不会再暂停主副本中的 I/O 活动。至于补丁或数据库实例类扩展,这些操作在自动故障转移前会首先在备用副本执行。因此,可用性影响将仅限于完成自动故障转移的时间。

以多可用区部署模式运行数据库实例的另一潜在优势是,系统将自动执行数据库实例故障转移,无需进行管理。在 Amazon RDS 环境中,这意味着出现可用区故障或数据库实例故障时,无需监控数据库实例事件及启动手动数据库实例恢复 (通过 RestoreDBInstanceToPointInTime 或 RestoreDBInstanceFromSnapshot API)。

问:以多可用区部署模式运行数据库实例是否会影响性能?

您可以看到,由于是代您执行同步数据复制,所以相对于单一可用区中的标准数据库实例部署,延迟有所提升。

问:以多可用区部署模式运行数据库实例时,是否可使用备用副本来执行读取或写入操作?

不能,备用副本不能用于读取请求。多可用区域部署旨在增强数据库可用性和持久性,而非针对读取扩展优势。因此,该功能在主副本和备用副本之间采用同步复制。我们的实施可确保主副本和备用副本一直处于同步状态,但不能使用备用副本执行读取或写入操作。如果您对读取扩展解决方案感兴趣,请参见读取副本上的常见问题。

问:如何设置多可用区数据库实例部署?

要创建多可用区数据库实例部署,只需在使用 AWS 管理控制台启动数据库实例时,单击“多可用区部署”的“是”选项。另外,如果您使用的是 Amazon RDS API,则可调用 CreateDBInstance API 并将“多可用区”参数的值设置为“true”。要将现有的标准 (单一可用区) 数据库实例转换为多可用区,请在 AWS 管理控制台中修改数据库实例,或使用 ModifyDBInstance API 并将“多可用区”参数的值设置为“true”。

问:当我将 RDS 实例从单可用区转换为多可用区时,会发生什么情况?

对于 RDS MySQL、MariaDB、PostgreSQL 和 Oracle 数据库引擎,当您选择将 RDS 实例从单可用区转换为多可用区时,会发生以下情况:

  • 拍摄主实例的快照
  • 在不同的可用区,从该快照创建新的备用实例
  • 在主实例和备用实例之间配置同步复制

因此,在实例从单可用区转换为多可用区时,不会出现停机时间。

问:哪种事件会导致 Amazon RDS 将故障转移启动到热备用副本?

Amazon RDS 可检测多可用区域部署中最常见的故障并自动从中恢复过来,这样您可在无管理干预的情况下尽快恢复数据库操作。如果发生以下任何一种情况,Amazon RDS 将自动执行故障转移:

  • 主可用区域的可用性受损
  • 主区域的网络连接受损
  • 主区域的计算设备出现故障
  • 主区域的存储故障

注意:为了获得更强的可用性,对多可用区部署启动诸如数据库实例扩展或系统升级之类的操作时,如操作系统安装补丁程序,这些操作首先会应用于备用,之后才自动进行故障转移。因此,可用性影响将仅限于完成自动切换所需的时间。请注意,Amazon RDS 多可用区域部署不会自动转移来响应某些数据库操作,如长时间运行查询、死锁或数据库崩溃错误。

问:执行自动故障转移时,我是否会收到提示?

会,Amazon RDS 将发出数据库实例事件,以通知您系统已执行自动故障转移。您可以单击 Amazon RDS 控制台的“事件”部分或使用 DescribeEvents API 返回数据库实例相关事件的相关信息。发生特定数据库事件时,您还可以通过 Amazon RDS 事件通知获取通知。

问:执行多可用区域故障转移时会发生什么状况?这种情况会持续多长时间?

Amazon RDS 将自动处理故障转移,以便尽快恢复数据库操作而无需管理干预。故障转移后,Amazon RDS 会轻松翻转数据库实例的别名记录 (CNAME) 以指向备用副本,备用副本转而成为新的主副本。我们鼓励您遵循最佳做法,在应用程序层实施数据库连接重试。

故障转移 (即从在主副本上检测到故障到在备用副本上继续事务之间的时间) 通常在一至两分钟内完成。故障转移时间也会受是否必须还原大型未提交事务这一因素的影响;为获得最佳效果,建议对多可用区域使用足够大的实例类型。AWS 还建议对多可用区域实例使用预置 IOPS,以获得快速、可预测及一致的吞吐量性能。

问:是否可以对多可用区数据库实例部署启动“强制故障转移”?

在各种故障条件下,Amazon RDS 会自动进行故障转移,无需用户操作。此外,Amazon RDS 会在重新引导实例时提供启动故障转移的选项。您可以通过 AWS 管理控制台或调用 RebootDBInstance API 来访问此功能。

问:如何控制/配置多可用区域同步复制?

对于多可用区域部署,可以轻松地将“Multi-AZ”参数设置为 true。创建备用副本、同步复制和故障转移都将自动进行处理。这意味着,无法选择部署备用副本的可用区或更改可用的备用副本数 (Amazon RDS 会为每个数据库实例主副本预置一个专用的备用副本)。备用副本还不可以配置为接受数据库读取活动。了解更多关于多可用区域配置的信息。

问:备用副本与主副本可以位于同一地区吗?

可以。备用副本将自动预置到与数据库实例主副本所在区域的不同可用区。

问:是否可以查看我的主副本当前位于哪个可用区域?

是。您可以使用 AWS 管理控制台或 DescribeDBInstances API 查看当前主副本的位置。

问:故障转移后,我的主副本当前与其他 AWS 资源 (如 EC2 实例) 位于不同的可用区域。我是否需要考虑延迟?

可用区域设计为提供到同一区域其他可用区域的低延迟网络连接。此外,您可能会考虑以跨多个可用区域的冗余架构应用程序及其他 AWS 资源,以便在出现可用区域故障时应用程序能够灵活反应。多可用区域部署可满足数据库层的此项需求,而无需用户干预管理。

问:在多可用区域部署中如何应用数据库快照和自动备份?

您可以按照在单一可用区域或多可用区域部署中运行标准部署的相同方式与自动备份和数据库快照功能交互。如果您正在运行多可用区域部署,将自动从备用副本执行自动备份和数据库快照,以免主副本中的 I/O 暂停。请注意,在备份单一可用区域和多可用区域部署时,您可能会经历更长时间的 I/O 延迟 (一般持续几分钟)。

多可用区域部署与标准、单一可用区域部署的还原操作启动方式也完全相同 (时间点还原或从数据库快照还原)。您可以使用 RestoreDBInstanceFromSnapshot 或 RestoreDBInstanceToPointInTime API 创建新数据库实例部署。无论在标准部署还是多可用区部署中启动源备份,这些新数据库实例部署都可能是标准或多可用区模式。

问:以只读副本方式运行数据库实例意味着什么?

借助只读副本,用户能够轻松地利用受支持引擎的内置复制功能灵活扩展并超越单一数据库实例的容量限制,以处理大量读取数据库工作负载。在 AWS 管理控制台中单击几下鼠标或使用 CreateDBInstanceReadReplica API 即可创建只读副本。创建只读副本后,将使用受支持引擎的本机异步复制功能复制源数据库实例的数据库更新信息。您可以为给定的源数据库实例创建多个只读副本,并在它们当中分配应用程序的读取流量。由于只读副本利用受支持引擎的内置复制功能,所以它们受其优势和局限约束。特别是,对源数据库实例进行更新后,更新将应用到读取副本,但复制滞后性可能会有很大差别。可以将读取副本与多可用区域部署关联起来,从而获得读取扩展优势,同时实现多可用区域部署提供的增强的数据库写入可用性和数据持久性。

问:何时应考虑使用 Amazon RDS 只读副本?

在很多情况下,为给定的源数据库实例部署一个或多个读取副本可能比较明智。部署读取副本的常见原因包括:

  • 扩展用于执行大量读取数据库工作负载的单一数据库实例的计算资源或 I/O 容量。这样,过多的读取流量将被引导到一个或多个读取副本。
  • 当源数据库实例不可用时,为读取流量提供服务。如果您的源数据库实例无法处理 I/O 请求 (例如,由于备份或计划维护而暂停 I/O),可以将读取流量引导到读取副本。对于这种使用案例,请注意由于源数据库实例不可用,读取副本中的数据可能处于“静态”。
  • 业务报告或数据仓库情况;您可能希望针对读取副本运行业务报告,而非主副本的生产数据库实例。

问:我是否需要在可以创建只读副本之前启用数据库实例的自动备份?

是。将备份保留时间设置为 0 以外的任何值,以此在添加只读副本之前启用数据库实例的自动备份。要使只读副本能够运行,必须保持备份的启用状态。

问:哪种版本的数据库引擎支持 Amazon RDS 只读副本?

Amazon Aurora (MySQL):所有数据库实例。

Amazon RDS for MySQL:运行 MySQL 版本 5.5 或更新版本的数据库实例支持创建只读副本。必须在源数据库实例上启用自动备份并使其保持启用状态,以进行只读副本的操作。只有运行 MySQL 5.6 及更高版本 (而非 5.5) 的 Amazon RDS 只读副本支持自动备份。

Amazon RDS for PostgreSQL:运行 PostgreSQL 版本 9.3.5 或更新版本的数据库实例支持创建只读副本。要利用 Amazon RDS 只读副本,版本 9.3.5 前的现有 PostgreSQL 实例需要升级到 PostgreSQL 版本 9.3.5。

Amazon RDS for MariaDB:运行 MariaDB 10.0 或更新版本的数据库实例支持创建只读副本。必须在源数据库实例上启用自动备份并使其保持启用状态,以进行只读副本的操作。

问:如何为指定的数据库实例部署只读副本?

只需使用标准的 CreateDBInstanceReadReplica API 或在 AWS 管理控制台上单击几下,即可在数分钟内创建只读副本。创建读取副本后,可以通过指定 SourceDBInstanceIdentifier 将其标识为读取副本。 SourceDBInstanceIdentifier 是您要复制的“源”数据库实例的数据库实例标示符。同标准数据库实例一样,您也可以指定可用区域、数据库实例等级和首选维护窗口。只读副本的引擎版本 (例如,PostgreSQL 9.3.5) 和存储分配均继承自源数据库实例。启动创建读取副本时,Amazon RDS 将对源数据库实例拍摄快照,并开始复制。因此,在拍摄快照时,您的源数据库实例上的 I/O 可能会短暂性停止。通常,I/O 暂停会按顺序持续一分钟时间;如果源数据库实例为多可用区域部署模式,则可以避免这种状况 (对于多可用区域部署,从备用副本拍摄快照)。此外,Amazon RDS 当前正在进行优化 (很快就会发布),因此如果您在 一个 30 分钟的时间段内创建多个只读副本,所有副本都将使用相同的源快照以降低 I/O 影响 (每个只读副本将在创建后开始“追踪”复制)。

问:如何连接到我的只读副本?

您可以像连接标准数据库实例一样,使用 DescribeDBInstance API 或 AWS 管理控制台通过检索读取副本的终端节点连接到读取副本。如果有多个读取副本,各个副本之间的读取流量分配方式则取决于应用程序。

问:我可以为给定的源数据库实例创建多少个只读副本?

借助 Amazon Aurora (MySQL),您最多可为给定的源数据库实例创建 15 个只读副本。

目前,借助适用于 MySQL、MariaDB 和 PostgreSQL 的 Amazon RDS,您最多可为给定的源数据库实例创建 5 个只读副本。

问:我能否在不同于源数据库实例的 AWS 地区中创建只读副本?

可以,RDS 支持跨地区只读副本。

问:Amazon RDS 只读副本是否支持异步复制?

不。适用于 MySQL、MariaDB 和 PostgreSQL 的 Amazon RDS 中的只读副本使用这些引擎的本机异步复制执行。Amazon Aurora 使用的是一种不同但仍然异步的复制机制。

问:我能否使用只读副本来增强数据库写入可用性或保护源数据库实例中的数据以防出现故障?

如果您希望使用复制来增强数据库写入可用性以及保护最近的数据库更新以防出现各种故障,我们建议您以多可用区部署模式运行数据库实例。借助采用支持引擎本机异步复制公司的 Amazon RDS 只读副本,只读副本会在源数据库实例中执行数据库写入操作后也发生数据库写入,而且这种复制“滞后性”可能存在很大差别。相比之下,多可用区域部署采用的副本属于同步复制,意味着主副本和备用副本上的数据库写入会并发执行。这样可保护最新的数据库更新,因为在出现故障转移时,它们需要在备用副本中可用。此外,使用多可用区域部署,可完全托管复制操作。Amazon RDS 将自动监控数据库实例故障状况或可用区故障,并且如果发生中断,将自动故障转移到备用实例 (如果使用 Amazon Aurora,则故障转移到备用只读副本)。

问:是否可通过多可用区域部署数据库实例创建只读副本作为源?

会。由于多可用区域数据库实例与读取副本解决的需求不同,所以在生产部署中可以结合两者,将读取副本与多可用区域数据库实例部署关联起来。“源”多可用区域数据库实例可增强写入可用性和数据持久性,而关联的读取副本可改善读取流量扩展性。

问:我能否将我的 Amazon RDS 只读副本本身放入多可用区?

适用于 MySQL、MariaDB 和 PostgreSQL 的 Amazon RDS 目前不支持此功能。

问:如果我的只读副本使用多可用区域部署的数据库实例作为源,在发生多可用区域故障转移时,会出现什么状况?

对于多可用区故障转移,所有关联和可用的只读副本在故障转移完成后将自动恢复复制 (获取最新提升的主副本的更新)。

问:是否可以为其他只读副本创建只读副本?

Amazon Aurora、适用于 MySQL 和 MariaDB 的 Amazon RDS:您可利用现有的第一级只读副本创建第二级只读副本。通过创建第二级只读副本,您可以将一部分的复制负载从主数据库实例转移到第一级只读副本。请注意,第二级只读副本可能会进一步滞后于主数据库实例,这是因为将事务处理从主数据库实例复制到第一级副本,然后再复制到第二级副本,其间会产生更长时间的复制延迟。

Amazon RDS for PostgreSQL:目前不支持只读副本的只读副本。

问:我的只读副本是否只能接受数据库读取操作?

读取副本旨在服务于读取流量。不过,在某些使用案例中,高级用户可能希望针对读取副本完成数据定义语言 (DDL) SQL 语句。例如,这些情况可能包括向用于业务报告的只读副本添加数据库索引,而不向对应的源数据库实例添加相同的索引。

Amazon RDS for MySQL 可配置为允许针对只读副本的 DDL SQL 语句。如果希望启用读取给定只读副本之外的操作,则需要修改该只读副本的有效数据库参数组,将“read_only”参数设置为“0”。

Amazon RDS for PostgreSQL 目前不支持针对只读副本的 DDL SQL 语句的执行。

问:我能把只读副本升级为“独立”数据库实例吗?

能。有关详细信息,请参阅 Amazon RDS User Guide

问:只读副本是否会与其源数据库实例一起保持最新状态?

源数据库实例的更新会自动复制到所有关联的只读副本。不过,鉴于支持引擎的异步复制技术,出于各种原因,只读副本更新可能会落后于源数据库实例。常见的原因包括:

  • 源数据库实例的写入 I/O 卷超出对读取副本应用更改的速度 (如果读取副本的计算容量低于源数据库实例,则尤其可能出现此问题)
  • 源数据库实例复杂或长时间运行的事务拦截复制读取副本
  • 源数据库实例和读取副本之间有网络分区或延迟

只读副本受支持引擎本机复制的优点和缺点影响。如果使用读取副本,您应了解读取副本与其源数据库实例之间可能存在滞后或“不一致”。如果读取副本远远落后于源,请单击此处了解进一步的操作指南。

问:如何查看我的有效只读副本状态?

您可以使用标准 DescribeDBInstances API 返回已部署的所有数据库实例的列表 (包括只读副本),或者直接单击 Amazon RDS 控制台的“数据库实例”选项卡进行查看。

通过 Amazon RDS,您可以看到只读副本的更新落后其源数据库实例多远。只读副本更新落后主实例的那几秒被公布为 Amazon CloudWatch 指标 (“副本滞后”),可通过 AWS 管理控制台或 Amazon CloudWatch API 提供。对于 Amazon RDS for MySQL,此信息来源与发出只读副本标准的“显示从服务器状态”MySQL 命令后显示的信息相同。对于 Amazon RDS for PostgreSQL,您可以使用源数据库实例上的 pg_stat_replication 视图探索复制指标。

Amazon RDS 将监控只读副本的复制状态,如果由于任何原因停止复制 (例如,如果在与主数据库实例上的更新相冲突的副本上运行 DML 查询,可能会导致复制错误),Amazon RDS 会在 AWS 管理控制台中将“复制状态”字段更新为“错误”。您可以通过查看“复制错误”字段来查看 MySQL 引擎产生的相关错误的详细信息,然后进行适当操作以对其进行恢复。您可以在 Amazon RDS for MySQLPostgreSQL 用户指南的只读副本故障排除问题部分了解有关复制问题故障排除的更多信息。

如果复制错误得到修复,“复制状态”将更改为“复制中”。

问:我的只读副本已远远落后于源数据库实例。我应该怎么办?

如上一问题中所述,使用异步复制时,只读副本与源数据库实例之间的“不一致”或滞后非常常见。如果现有的读取副本已远远落后而无法满足您的要求,您可以将其删除,并使用与所删除的读取副本相同的数据库实例标识符和源数据库实例标识符按相同的终端节点重新创建一个。请注意,重新创建过程在滞后程度较小时 (例如,在滞后五分钟的情况下) 会产生相反的效果,应谨慎使用 (即仅在读取副本远远落后于源数据库实例的情况下使用)。另请注意,副本滞后可能会随时间推移自然而然地加大和缩小,具体取决于源数据库实例的稳定状态使用模式。

有时,扩展读取副本的数据库实例等级可以减小复制滞后,特别是当源数据库实例等级大于读取副本数据库实例等级时。不过,不能保证所有情况下对于读取副本都起作用。可能会存在一些情况或使用模式,读取副本在初始创建后永远无法追上源,或者落后于源过远以致无法满足您的使用案例要求。

问:我对源数据库实例的计算和/或存储容量进行了扩展,是否也应扩展关联的只读副本的资源?

为使副本有效运行,我们建议读取副本配有与其各自的源数据库实例相同容量或更多的计算和存储资源。否则,复制滞后可能会加大或者读取副本可能会用完存储副本更新的空间。

问:是否可以对只读副本拍摄数据库快照或执行自动备份?

不可以。如果您希望通过从读取副本 (而非源数据库实例) 执行备份而增强数据库写入可用性,可以采用多可用区域部署方式运行数据库实例来实现相同的目标。 然后,将继承多可用区域备用副本的备份,以尽可能降低对可用性的影响。

问:如何删除只读副本?如果源数据库实例被删除,只读副本是否会自动删除?

您在 AWS 管理控制台中单击几下鼠标或将数据库实例标识符传送到 DeleteDBInstance API,即可轻松地删除只读副本。

即使在已删除相应的源数据库实例后,Amazon Aurora (MySQL) 只读副本仍然保持有效并可继续接受读取流量。群集中的其中一个只读副本将自动升级为新的主副本,并开始接受写入流量。

即使在已删除相应的源数据库实例后,适用于 MySQL 或 MariaDB 的 Amazon RDS 只读副本仍然有效并可继续接受读取流量。如果您需要同时删除只读副本和源数据库实例,则必须使用 DeleteDBInstance API 或 AWS 管理控制台明确执行此操作。

如果您删除了一个具有只读副本的 Amazon RDS for PostgreSQL 数据库实例,则所有的只读副本都将被提升为独立的数据库实例,并将能够接受读取和写入流量。新提升的数据库实例将彼此独立地运行。如果您需要同时删除这些数据库实例和源数据库实例,则必须使用 DeleteDBInstance API 或 AWS 管理控制台明确执行此操作。

问:能否直接访问数据库实例的事件日志?

借助适用于 MySQL 的 Amazon RDS 或适用于 MariaDB 的 Amazon RDS,您可以使用 mysqlbinlog 实用工具从数据库实例上下载或者以流式传输二进制日志。适用于 PostgreSQL 的 Amazon RDS 目前也不提供访问数据库实例 WAL 文件的权限。

问:只读副本的成本是多少?如何计算记账周期?

只读副本按标准数据库实例进行计费,且费率相同。有关数据库实例账单的更多信息,请单击此处访问常见问题。如同标准数据库实例,只读副本的每“数据库实例小时”费用取决于只读副本的数据库实例等级 – 有关最新的定价信息,请参见 Amazon RDS 详细信息页面。在源数据库实例和读取副本之间复制数据,产生的数据传输不收取费用。

读取副本的账单周期从成功创建读取副本后开始 (即当列出的状态为“有效”时)。只读副本将继续按标准 Amazon RDS 数据库实例小时费率计费,直到您发布命令将其删除为止。

问:只读副本支持与支持此功能的 Amazon RDS 引擎之间有怎样的不同?

借助适用于 PostgreSQL、MySQL 和 MariaDB 的 Amazon RDS 中的只读副本,您可以不受单个数据库实例的容量限制灵活地进行扩展,从而处理高读取量的工作负载。这些实施中有相似之处也有不同之处,因为它们利用的是本机引擎功能。欲了解详细信息,请参见下表。

功能 PostgreSQL MySQL MariaDB
每个数据库实例所允许的只读副本最大量
5 5 5
复制方法 异步
物理
异步
逻辑
异步
逻辑
为支持只读副本,是否必须要启用自动备份?
适用于只读副本的引擎版本 9.3.5 或更高版本 5.5 或更高版本 10.0 或更高版本
将只读副本提升为独立的新数据库实例 支持服务 支持服务 支持服务
创建只读副本的索引 当前不支持 支持服务 支持服务
创建只读副本的备份 当前不支持 支持服务 支持服务
只读副本的链接
(即只读副本的只读副本)
当前不支持 支持服务 支持服务
跨区域只读副本 支持服务 支持服务 支持服务

问:什么是 RDS Enhanced Monitoring?

借助 RDS 增强监控能够让功能,您可以更深入地了解 RDS 实例的运行状况。只需为您的 RDS 数据库实例启用“增强监控”选项并设置粒度,“增强监控”就会按照定义的粒度收集重要的操作系统指标和进程信息。

问:我可以在“增强监控”中监控哪些指标和进程?

增强监控能够捕获 RDS 实例的系统级指标,如 CPU、内存、文件系统和磁盘 I/O 等。单击此处,查看完整指标列表。

问:Enhanced Monitoring 支持哪些引擎?

增强监控支持所有 RDS 数据库引擎。

问:增强监控支持哪些实例类型?

增强监控支持除 t1.micro 和 m1.small 以外的所有实例类型。该软件占用少量 CPU、内存和 I/O 即可实现常规监控;对于中型或大型实例,我们建议切换至更高的粒度。对于非生产数据库实例,增强监控的默认设置是“关”,您可以选择让其保持禁用状态,也可以在启用时修改粒度。

问:我可以在 RDS 控制面板上查看哪些信息?

您可以在控制台上以图形格式查看有关 RDS 数据库实例的所有系统指标和进程信息。您可以针对各个实例管理要监控的指标,并根据个人要求自定义控制面板。

问:我的 RDS 账户中的所有实例是否会按照相同粒度抽取指标?

不会。您可以为 RDS 账户中的每个数据库实例设置不同的粒度。您还可以选择要为其启用 Enhanced Monitoring 的实例,并随时修改任何实例的粒度。

问:我能够在 RDS 控制台上查看多久之前的历史指标?

您最多可以查看所有指标在 1 个小时之前的性能值,粒度最高为 1 秒 (具体取决于您的设置)。

问:如何可视化 CloudWatch 中由 RDS 增强监控生成的指标?

RDS 增强监控生成的指标会发送到您的 CloudWatch Logs 账户。您可以基于 CloudWatch Logs 在 CloudWatch 中创建指标筛选器,并在 CloudWatch 控制面板上显示相关图表。有关更多详细信息,请访问 Amazon CloudWatch 页面。

问:何时应使用 CloudWatch 而不是 RDS 控制台控制面板?

如果 RDS 控制台控制面板上未显示您要查看的历史数据,则应使用 CloudWatch。您可以在 CloudWatch 中监控 RDS 实例,以诊断整个 AWS 堆栈在单一位置上的运行状况。目前,CloudWatch 最高可支持 1 分钟的粒度,平均粒度值将低于该值。

问:我能否基于特定指标设置警报和通知?

能。您可以在 CloudWatch 中创建警报,以在警报状态更改时发送通知。警报按指定的时间段监控单个指标,并根据相对于指定阈值的指标值每隔若干个时间段执行一项或多项操作。有关 CloudWatch 警报的更多详细信息,请参阅 Amazon CloudWatch Developer Guide

问:如何将 Enhanced Monitoring 与我当前使用的工具集成?

RDS 增强监控提供了一系列将以 JSON 有效负载形式发送到您的 CloudWatch Logs 账户的指标。JSON 有效负载会按照上次为 RDS 实例配置的粒度进行发送。

您可以通过第三方控制面板或应用程序以两种方式使用这些指标。监控工具可以使用 CloudWatch Logs Subscriptions 为这些指标设置近乎实时的源。另外,您可以使用 CloudWatch Logs 中的筛选器将指标桥接到 CloudWatch,并将您的应用程序与 CloudWatch 集成。请参阅 Amazon CloudWatch 文档,了解更多详细信息。

问:如何删除历史数据?

增强监控会将 JSON 有效负载发送到您的 CloudWatch Logs 账户中的某个日志中,因此您可以像对待其他 CloudWatch Logs 流一样控制其保留期。Enhanced Monitoring 在 CloudWatch Logs 中配置的默认保留期是 30 天。有关如何更改保留期设置的详细信息,请参阅 Amazon CloudWatch Developer Guide

问:Enhanced Monitoring 对我每月的账单有什么影响?

由于指标会发送至 CloudWatch Logs,在超出 CloudWatch Logs 免费套餐后,您需要支付的费用将基于 CloudWatch Logs 数据传输和存储费率进行计算。您可以单击此处,了解定价详情。RDS 实例的信息传输量与 Enhanced Monitoring 功能的定义粒度呈正比。管理员可以为账户中的不同实例设置不同的粒度以管理成本。

由 Enhanced Monitoring 针对一个实例发送到 CloudWatch Logs 的数据量近似值如下所示:

粒度

60 秒

30 秒

15 秒

10 秒

5 秒

1 秒

发送到 CloudWatch Logs 的数据* (GB/月)

0.27

0.53

1.07

1.61

3.21

16.07