- 产品›
- Amazon Aurora
Amazon Aurora 常见问题
一般性问题
全部打开它表示您目前已用于 MySQL 数据库的大多数代码、应用程序、驱动程序和工具可与 Aurora 配合使用,只需对其进行少量更改或不需要更改。Amazon Aurora 数据库引擎设计旨在能使用 InnoDB 存储引擎与 MySQL 5.6 和 5.7 接线兼容。MyISAM 存储引擎之类的特定 MySQL 功能不可用于 Amazon Aurora。
它表示您目前已用于 PostgreSQL 数据库的大多数代码、应用程序、驱动程序和工具可与 Aurora 配合使用,只需对其进行少量更改或不需要更改。Amazon Aurora 数据库引擎设计旨在与 PostgreSQL 9.6 和更高版本接线兼容,且支持的一组 PostgreSQL 扩展与 RDS for PostgreSQL 9.6 及更高版本所支持的 PostgreSQL 扩展相同,以便轻松在两个引擎之间移动应用程序。
性能
全部打开CloudWatch 数据库见解是一项监控和指标解决方案,可简化和增强数据库故障排除。它可以自动收集遥测数据,包括指标、日志和跟踪,无需手动设置和配置。通过将这些遥测数据整合到 Amazon CloudWatch 中,CloudWatch 数据库洞察提供了数据库性能和运行状况的统一视图。
CloudWatch 数据库洞察的主要优势包括:
轻松收集遥测数据:自动收集数据库指标、日志和跟踪,最大限度地缩短设置时间。
精选的洞察:提供预先构建的控制面板、警报和洞察,以监控和优化数据库性能,只需最少的配置即可开始使用。
统一的 CloudWatch 视图:将来自多个数据库的遥测数据合并到一个视图中,以简化监控
人工智能/机器学习功能:使用 AI/ML 检测异常,减少手动故障排除工作
应用程序上下文监控:允许用户将数据库性能与应用程序性能关联起来。
实例集和实例级别的视图:提供高级实例集监控和用于根本原因分析的详细实例视图。
无缝的 Amazon 集成:与 Amazon CloudWatch Application Signals 和 Amazon X-Ray 集成,带来全面的可观测性体验
RDS 性能详情是一项数据库性能调优与监控功能,能帮助客户评测其数据库负载情况并确定何时以及在何处采取行动。CloudWatch 数据库洞察是一项新的数据库可观测性功能,它继承了性能详情的所有功能,同时还具备实例集级监控、与应用程序性能监控的集成,以及将数据库指标与日志和事件进行关联的能力。
计费
全部打开I/O 操作由 Aurora 数据库引擎依靠基于 SSD 的虚拟化存储层执行。每个数据库页面读取操作计为一个 I/O。
Aurora 数据库引擎依靠存储层发出读取,以获取不在缓存内的存储器中的数据库页面:
- 如果完全可从存储器或缓存中提供您的查询流量,则您从存储器检索任何数据页面的操作都不收取费用。
- 如果无法完全从存储器中提供您的查询流量,则需要从存储中检索的任何数据页面都将产生费用。
每个数据库页面在 Amazon Aurora MySQL 兼容版中为 16KB,在 Aurora PostgreSQL 兼容版本中为 8KB。
Aurora 旨在消除不必要的 I/O 操作,以降低成本并确保资源可用于提供读/写流量。只有在为了使写入持久而将 Aurora MySQL 兼容版中的重做日志记录或 Aurora PostgreSQL 兼容版中的写前日志记录永久保存到存储层时,才会使用写入 I/O 操作。
写入 I/O 操作以 4KB 为单位进行计数。例如,1024 字节的日志记录计为一个写入 I/O 操作。但是,如果日志记录超过 4KB,则将需要多个写入 I/O 操作才能将其保留。
日志记录小于 4KB 的并发写入操作可一起由 Aurora 数据库引擎进行批处理以优化 I/O 消耗。与传统数据库引擎不同,Aurora 从不会将肮脏数据页面刷新到存储。
您可以在亚马逊云科技管理控制台看到 Aurora 实例消耗的 I/O 请求数量。要查询 I/O 消耗,请转到控制台的 Amazon RDS 部分,查看您的实例列表,选择 Aurora 实例,然后在监控部分查找“计费的读取操作”和“计费的写入操作”指标。
有关 I/O 操作定价的更多信息,请访问 Aurora 定价页面。将数据库集群配置为 Aurora 标准版配置时,您需要为读取和写入 I/O 操作付费。将数据库集群配置为 Amazon Aurora I/O 优化版后,您无需为读取和写入 I/O 操作付费。
Aurora 可根据您的性价比和价格可预测性需求在两个配置选项之间进行选择,让您得以灵活地优化数据库支出。这两个配置选项就是 Aurora 标准版和 Aurora I/O 优化版。这两个选项都不需要预付 I/O 或存储配置,而且两者都可以扩展 I/O 操作以支持要求最苛刻的应用程序。
Aurora 标准版是一种数据库集群配置,可为绝大多数 I/O 使用率从低到中的应用程序提供经济实惠的定价。使用 Aurora 标准版,您为数据库实例、存储和按请求付费的 I/O 付费。
Aurora I/O 优化版是一种数据库集群配置,可为支付处理系统、电子商务系统和金融应用程序等 I/O 密集型应用程序提供更高的性价比。此外,如果您的 I/O 支出超过 Aurora 数据库总支出的 25%,则使用 Aurora I/O 优化版,您可以为 I/O 密集型工作负载节省高达 40% 的成本。由于读取和写入 I/O 操作不收取任何费用,Aurora I/O 优化版为所有应用程序提供可预测的定价,此配置非常适合 I/O 可变性较高的工作负载。
当您需要为应用程序提供可预测的成本时,Aurora I/O 优化版是理想的选择。它为需要高写入吞吐量或运行处理大量数据的分析查询的 I/O 密集型应用程序提供了更高的性价比。对于 I/O 支出超过 Aurora 账单 25% 的客户,使用 Aurora I/O 优化版,您可以为 I/O 密集型工作负载节省高达 40% 的成本。
硬件和扩展
全部打开在亚马逊云科技管理控制台中,选择所需的数据库实例并点击“修改”按钮,即可扩展分配至数据库实例的计算资源。通过更改数据库实例类来修改内存和 CPU 资源。
修改数据库实例类时,系统将在指定的维护时段内应用您请求的更改。或者,您可以使用“立即应用”标记立即应用您的扩展请求。执行扩展操作时,这两种选项均会造成几分钟的可用性影响。请注意,任何其他待定的系统更改也将同时应用。
备份和还原
全部打开高可用性和复制
全部打开Amazon Aurora MySQL 和 Amazon Aurora PostgreSQL 都支持 Amazon Aurora 副本,这些副本与同一亚马逊云科技中国区域内的主实例共享相同的底层卷。主实例进行的更新对所有 Amazon Aurora 副本可见。借助 Amazon Aurora MySQL,您还可以根据 MySQL 基于二进制日志的复制引擎创建跨区域复制的 MySQL 只读副本。在 MySQL 只读副本中,您的主实例中的数据会作为事务在您的副本上重放。对于大多数使用案例,包括读取扩展和高可用性,我们推荐使用 Amazon Aurora 副本。
您可以根据应用程序需求灵活地混合搭配这两种副本类型:
功能 |
Amazon Aurora 副本 |
MySQL 副本 |
|---|---|---|
副本数量 |
最多 15 个 |
最多 5 个 |
复制类型 |
异步(毫秒) |
异步(秒) |
对主实例的性能影响 |
低 |
高 |
副本位置 |
区域内 |
跨区域 |
作为故障转移目标 |
是(无数据损失) |
是(可能有几分钟的数据损失) |
自动故障转移 |
是 |
否 |
支持用户定义的复制延迟 |
否 |
是 |
支持不同的数据或架构与主实例 |
否 |
是 |
能,您可以通过物理或逻辑复制功能来设置跨区域 Aurora 副本。物理复制也称为 Aurora Global Database,它使用专用基础设施,使您的数据库完全可用于为应用程序提供服务。它可用于 Aurora MySQL 和 Aurora PostgreSQL。对于低延迟全球读取和灾难恢复,我们建议使用 Aurora Global Database。Aurora 支持各种数据库引擎的原生逻辑复制(MySQL 的二进制日志以及 PostgreSQL 的 PostgreSQL 复制槽),因此您可以复制到 Aurora 和非 Aurora 数据库,甚至可以跨区域复制。Aurora MySQL 还提供方便易用的逻辑跨区域只读副本功能,可支持亚马逊云科技中国区域,包括由光环新网运营的亚马逊云科技中国(北京)区域和由西云数据运营的亚马逊云科技中国(宁夏)区域。此功能基于单线程的 MySQL 二进制日志复制操作,因此复制滞后时间会受到更改/应用速度以及所选特定区域之间的网络通信延迟影响。
您可以添加 Amazon Aurora 副本。同一亚马逊云科技中国区域中的 Aurora 副本与主实例共享相同的底层存储。任何 Aurora 副本都可在不丢失任何数据的情况下被提升为主实例,因此,它可用于在主数据库实例发生故障时提高容错能力。要提高数据库可用性,只需在 3 个可用区的任何一个创建 1 到 15 个副本,Amazon RDS 将在数据库运行中断时将这些副本纳入故障转移主选择中。
如果您希望数据库跨越多个亚马逊云科技中国区域,可以使用 Aurora Global Database。这样可以在不影响数据库性能的情况下复制您的数据,并在区域范围的中断时提供灾难恢复。
Amazon Aurora 会自动处理故障转移,以便您的应用程序可以尽快恢复数据库操作,而无需手动管理干预。
- 如果您在相同或不同的可用区中有 Amazon Aurora 副本,当进行故障转移时,Aurora 会翻转您的数据库实例的别名记录 (CNAME),以指向运行状态正常的副本;相应地,此副本会提升为新的主实例。从开始到结束,故障转移通常会在 30 秒内完成。
- 如果您运行的是 Aurora Serverless,当数据库实例或可用区不可用时,Aurora 将自动在不同的可用区重新创建该数据库实例。
- 如果您没有 Amazon Aurora 副本(即单个实例),也未运行 Aurora Serverless,则 Aurora 将尝试在与原始实例相同的可用区中创建新数据库实例。原始实例的这种替换是尽最大努力进行的,可能不会成功,例如,如果存在广泛影响可用区的问题。
您的应用程序应在连接中断时重新尝试发出数据库连接。
跨区域进行灾难恢复是一个手动过程,在此期间,您可以提升辅助区域以获取读/写工作负载。
Amazon RDS 将自动检测主实例中的问题并触发故障转移。如果您使用的是集群终端节点,您的读取/写入连接将自动重定向至将被提升为主实例的 Amazon Aurora 副本。
此外,您的 Aurora 副本提供的读取流量将短暂中断。如果您使用集群读取器终端节点将读取流量定向至 Aurora 副本,则只读连接将定向至新提升的 Aurora 副本,直到原主节点恢复为副本时为止。
Amazon Aurora 副本与同一亚马逊云科技中国区域内的主实例共享同一个数据卷,因此几乎没有复制滞后。据我们观察,滞后时间一般在 10 毫秒内。对于 MySQL 只读副本,复制滞后可根据更改/应用速度以及网络通信的延迟无限增长。不过,一般情况下,1 分钟以内的复制滞后是很常见的。
对于使用逻辑复制的跨区域副本,其滞后时间会受到更改/应用速度以及所选特定区域之间的网络通信延迟的影响。使用 Aurora Global Database 的跨区域副本通常有不到一秒的滞后时间。
是的,您可以在 Aurora MySQL 实例和外部 MySQL 数据库之间设置二进制日志复制。另一个数据库可以在 Amazon RDS 上运行,或作为自我管理的数据库在亚马逊云科技上运行,或完全在亚马逊云科技之外运行。
如果您运行的是 Aurora MySQL 5.7,请考虑设置基于 GTID 的二进制日志复制。这将提供完全一致性,即使在故障转移或停机后,您的复制也不会错过事务或生成冲突。
Amazon Aurora Global Database 是一项功能,允许单个 Amazon Aurora 数据库跨越多个亚马逊云科技中国区域。它可以在不影响数据库性能的情况下复制您的数据,支持在每个区域中实现快速本地读取,典型延迟时间不到一秒,并可从区域范围的中断进行灾难恢复。在不太可能发生区域性性能下降或中断的情况下,它可以在不到 1 分钟的时间内将辅助区域提升为具有完全读/写功能。
此功能可用于 Aurora MySQL 和 Aurora PostgreSQL。
不会。如果您的主区域不可用,您可以手动从 Aurora Global Database 中删除辅助区域,并对其进行提升以获取完全的读取和写入。您还需要将应用程序指向新提升的区域。
安全性
全部打开无服务器
全部打开Aurora Serverless 是 Amazon Aurora 的一种按需自动扩缩配置。 使用 Aurora Serverless,您无需管理数据库容量即可在云中运行数据库。手动管理数据库容量可能很耗时,并且会导致数据库资源的使用效率低下。借助 Aurora Serverless,您可以创建数据库,指定所需的数据库容量范围,然后连接您的应用程序。Aurora 会根据您的应用程序需求自动在指定的范围内调整容量。
您需要在数据库处于活动状态期间按照每秒使用的数据库容量进行付费。了解有关 Aurora Serverless 的更多信息,并在 Amazon RDS 管理控制台中通过几个步骤开始使用。
Parallel Query
全部打开更快的性能:Parallel Query 可将分析查询的运行速度提高多达 2 个数量级。
操作简易性和数据新鲜度:您可以直接对 Aurora 集群中的当前事务数据发出查询。
同一数据库上的事务工作负载和分析工作负载:借助 Parallel Query 功能,Aurora 可以在处理并行分析查询的同时保持较高的事务吞吐量。
不会,查询产生的 IO 费用在存储层进行计量,启用 Parallel Query 后,该费用可能保持不变,也可能会增加。您可以获得的好处是查询性能提高了。
使用 Parallel Query 后,有两个原因可能会导致 IO 费用增加。首先,即使表中的一些数据在缓冲池中,PQ 也要求在存储层扫描所有数据,从而产生 IO。其次,避免缓冲池中资源争用的副作用是运行 PQ 查询不会预热缓冲池。因此,连续运行相同的 PQ 查询将产生完整 IO 费用。
零 ETL 集成
全部打开当您需要近乎实时地访问交易数据时,应当使用 Amazon Aurora 与 Amazon Redshift 的零 ETL 集成。借助这一集成,您可以通过简单的 SQL 命令使用 Amazon Redshift 机器学习。
适用于 Aurora MySQL 3.05.2 版本(兼容 MySQL 8.0.32)和更高版本的 Aurora MySQL 兼容版本提供了 Aurora 与 Amazon Redshift 的零 ETL 集成。适用于 Aurora PostgreSQL 16.4 版本和更高版本的 Aurora PostgreSQL 兼容版本提供了 Aurora 与 Amazon Redshift 的零 ETL 集成。
使用 Aurora 与 Amazon Redshift 的零 ETL 集成,您无需构建和维护复杂的数据管道。您可以将来自各个 Aurora 数据库集群的多个表的数据整合到单个 Amazon Redshift 数据库集群中,并使用 Amazon Redshift 对来自 Aurora 的 PB 级交易数据执行近乎实时的分析和机器学习。您可以选择要从 Aurora 复制到 Amazon Redshift 的数据库和表。根据您的分析需求,对特定数据库和表进行数据筛选,这样有助于选择性地将数据导入到 Amazon Redshift。
Aurora 与 Amazon Redshift 的零 ETL 集成与 Aurora Serverless v2 兼容。当同时使用 Aurora Serverless v2 和 Amazon Redshift Serverless 时,您可以对交易数据生成近乎实时的分析,而无需管理任何数据管道基础设施。
要开始使用零 ETL 集成,您可以使用 Amazon RDS 控制台,通过指定 Aurora 来源和 Amazon Redshift 目的地来创建零 ETL 集成。一旦创建此集成,Aurora 数据库将复制到 Amazon Redshift,完成初始播种之后,您就可以开始查询数据了。有关更多信息,请阅读 Aurora 与 Amazon Redshift 的零 ETL 集成入门指南。
零 ETL 集成对数据变更进行持续处理,且不收取额外费用。您需要为现有的 Amazon RDS 和 Amazon Redshift 资源付费,这些资源用来创建和处理作为零 ETL 集成的一部分而生成的变更数据。这些资源可能包括:
- 通过启用增强型二进制日志而使用的其他 I/O 和存储
- 负责为您的 Amazon Redshift 数据库提供种子的初始数据导出操作产生的快照导出成本
- 用来存储复制的数据的其他 Amazon Redshift 存储
- 用来处理数据复制操作的其他 Amazon Redshift 计算
- 将数据从来源转移到目标时产生的跨可用区数据传输成本
要了解更多信息,请访问 Aurora 定价页面。
是,对于 Aurora 与 Amazon Redshift 的零 ETL 集成所需的资源,您可以使用 Amazon CloudFormation 来管理和自动完成它们的配置和部署。要了解更多信息,请访问具有零 ETL 集成的 CloudFormation 模板。
Trusted Language Extensions for PostgreSQL
全部打开Trusted Language Extensions(TLE)for PostgreSQL 使开发人员能够构建高性能 PostgreSQL 扩展,并在 Amazon Aurora 和 Amazon RDS 上安全地运行它们。这样,TLE 可以缩短您的上市时间,无需数据库管理员认证用于生产数据库工作负载的自定义代码和第三方代码。一旦您确定某个扩展能够满足您的需求,您就可以开始使用它。通过 TLE,独立软件供应商(ISV)可以向在 Aurora 和 Amazon RDS 上运行的客户提供新的 PostgreSQL 扩展。
PostgreSQL 扩展在同一个进程空间中执行,以实现高性能。但是,扩展可能存在软件缺陷,从而导致数据库崩溃。
TLE for PostgreSQL 提供了多层保护来缓解这种风险。TLE 能够限制对系统资源的访问。rds_superuser 角色可以决定谁有权安装特定的扩展。但是,这些更改只能通过 TLE API 进行。TLE 能够将扩展缺陷的影响限制在单个数据库连接的范围内。除了这些保障措施外,TLE 还能够为 rds_superuser 角色的数据库管理员提供对谁可以安装扩展的精细在线控制,并让他们可以创建运行扩展的权限模型。只有具有足够权限的用户才能在 TLE 扩展上使用“CREATE EXTENSION”命令运行和创建。数据库管理员还可以允许会修改数据库内部行为且通常需要提升权限的更复杂扩展所需的“PostgreSQL 挂钩”。
TLE for PostgreSQL 可用于 Amazon Aurora PostgreSQL 兼容版和 Amazon RDS on PostgreSQL 版本 14.5 及更高版本。TLE 本身作为 PostgreSQL 扩展实现,类似于 Aurora 和 Amazon RDS 上支持的其他扩展,您可以通过 rds_superuser 角色激活它。
您可以在 Amazon Aurora 和 Amazon RDS 中的 PostgreSQL 14.5 或更高版本中运行 TLE for PostgreSQL。
TLE for PostgreSQL 现已在所有亚马逊云科技区域推出,其中包括由光环新网运营的亚马逊云科技中国(北京)区域和由西云数据运营的亚马逊云科技中国(宁夏)区域。
Aurora 和 Amazon RDS 客户可以免费使用 TLE for PostgreSQL。
Aurora 和 Amazon RDS 支持一组数量超过 85 个的精选 PostgreSQL 扩展。亚马逊云科技根据亚马逊云科技责任共担模式管理其中每个扩展的安全风险。这一组扩展中包含实现 TLE for PostgreSQL 的扩展。您编写的扩展或从第三方源获取并安装在 TLE 中的扩展将被视为应用程序代码的组成部分。您需要对使用 TLE 扩展的应用程序的安全性负责。
您可以构建开发者功能,如位图压缩和差分隐私(如可公开访问但保护个人隐私的统计查询)。
TLE for PostgreSQL 目前支持 JavaScript、PL/pgSQL、Perl 和 SQL。
一旦 rds_superuser 角色激活了 TLE for PostgreSQL,您就可以使用 SQL CREATE EXTENSION 命令从任何 PostgreSQL 客户端(如 psql)部署 TLE 扩展。这类似于创建用过程语言(如 PL/pgSQL 或 PL/Perl)编写的用户定义函数的方式。您可以控制哪些用户有权部署 TLE 扩展和使用特定扩展。
TLE for PostgreSQL 只能通过 TLE API 访问 PostgreSQL 数据库。TLE 支持的可信语言包括 PostgreSQL 服务器编程接口(SPI)的所有函数和对 PostgreSQL 挂钩的支持,包括检查密码挂钩。
您可以在 TLE GitHub 官方页面上了解有关 TLE for PostgreSQL 项目的更多信息。
Amazon RDS 蓝绿部署
全部打开Amazon RDS 蓝绿部署可用于 Amazon Aurora MySQL 兼容版、Amazon RDS for MySQL 和 Amazon RDS for MariaDB。
Amazon RDS 蓝绿部署可用于 Amazon Aurora MySQL 兼容版 5.6 及更高版本、RDS for MySQL 5.7 及更高版本,以及 RDS for MariaDB 10.2 及更高版本。有关可用版本的更多信息,请参阅 Aurora、RDS for MySQL 和 RDS for MariaDB 文档。
Amazon RDS 蓝绿部署现已在所有亚马逊云科技区域推出,其中包括由光环新网运营的亚马逊云科技中国(北京)区域和由西云数据运营的亚马逊云科技中国(宁夏)区域。
在绿色实例上运行工作负载的价格与在蓝色实例上运行工作负载的价格相同。在蓝色和绿色实例上运行的成本包括我们对 db.instance 当前的标准定价、存储成本、读/写 I/O 成本,以及任何已启用功能的成本,如备份和 Amazon RDS 性能详情的成本。实际上,在蓝绿部署的生命周期内,您支付的费用大约是在 db.instance 上运行工作负载的成本的 2 倍。
例如:您有一个 RDS for MySQL 5.7 数据库在采用多可用区(MAZ)配置的亚马逊云科技中国(宁夏)区域的两个 r5.2xlarge db.instance(一个主数据库实例和一个只读副本)上运行。每个 r5.2xlarge db.instance 都配置了 20 GiB 通用 Amazon Elastic Block Storage(EBS)。您使用 Amazon RDS 蓝绿部署创建蓝色实例拓扑的克隆,运行 15 天(360 小时),然后在成功切换后删除蓝色实例。以按需费率 13.34 元/小时(实例 + EBS 成本)计算,15 天的蓝色实例的成本为 4802.85 元。在这 15 天内,使用蓝绿部署的总成本为 9605.7 元,即该时间段内运行蓝色实例成本的 2 倍。
Amazon RDS 蓝绿部署可帮助您更安全、更简单、更快速地进行数据库更改,如进行主要或次要版本升级、架构更改、实例扩缩、引擎参数更改和维护更新。
在 Amazon RDS 蓝绿部署中,蓝色环境是您当前的生产环境。绿色环境是您的模拟环境,它将在切换后成为您的新生产环境。
当 Amazon RDS 蓝绿部署启动切换时,对蓝色和绿色环境的写入会被阻止,直至切换完成。在切换期间,模拟环境(即绿色环境)会跟上生产系统进度,从而确保模拟环境和生产环境之间的数据保持一致。生产和模拟环境完全同步后,蓝绿部署会通过将流量重定向到新提升的生产环境,来将模拟环境提升为新的生产环境。蓝绿部署设计为在切换完成后再启用对绿色环境的写入,从而确保在切换过程中实现零数据丢失。
Amazon RDS 蓝绿部署不会删除您的旧生产环境。如果需要,您可以访问它,以进行其他验证和性能/回归测试。如果您不再需要旧的生产环境,可以将其删除。您需要为旧生产实例缴纳标准账单费用,直到您将其删除。
Amazon RDS 蓝绿部署切换防护机制会阻止对您的蓝色和绿色环境进行的写入,直到绿色环境跟上进度,然后再切换。蓝绿部署还会对蓝色和绿色环境中的主实例和副本实例执行运行状况检查。例如,它们还会执行复制运行状况检查,以查看复制是否已停止或是否存在错误。它们会检测在蓝色与绿色环境之间长时间运行的事务。您可以指定允许的最长停机时间(最短可为 30 秒)。一旦正在进行的事务超过此值,则切换将超时。
否,Amazon RDS 蓝绿部署不支持全球数据库、Amazon RDS 代理、跨区域只读副本或级联只读副本。
否,目前您无法使用 Amazon RDS 蓝绿部署来回滚更改。