Amazon RDS for MySQL 常见问题
Amazon RDS 支持 MySQL 的哪些版本?
Amazon Relational Database(Amazon RDS)for MySQL 目前支持 MySQL 社区版 5.7 和 8.0。有关支持的次要版本的信息,请参阅 Amazon RDS 用户指南。
Amazon RDS 如何区分“主要”和“次要”发行版本?
在 MySQL 环境中,版本的编号的组织方式如下:
MySQL 版本 = X.Y.Z
X = 主要版本,Y = 发布级别,Z = 发布系列内的版本号。
从 Amazon RDS 角度来说,主要版本或发布级别变化的版本变更将被视为主要变更。示例:从 5.6.X 升级到 5.7.X。
如果版本内版次发生变更,则此版次变更被视为次要变更。示例:从 5.6.27 升级到 5.6.29。
Amazon RDS 是否针对升级引擎版本或弃用当前不受支持的引擎版本提供了准则?
可以。请参阅 Amazon RDS 常见问题。
Amazon RDS for MySQL(预览版)支持哪些存储引擎?
Amazon RDS for MySQL 的时间点恢复、快照恢复以及与 Amazon Redshift 功能的零 ETL 集成要求使用崩溃恢复存储引擎,且仅支持 InnoDB 存储引擎。虽然 MySQL 支持功能不同的多种存储引擎,但并非所有引擎都为崩溃恢复和数据耐久性而进行了优化。例如,MyISAM 存储引擎不支持可靠的崩溃恢复,并且在崩溃后重启 MySQL 时可能导致数据丢失或数据损坏,从而使时间点恢复或快照还原无法按预期工作。不过,如果您仍然选择对 Amazon RDS 使用 MyISAM,遵循以下步骤可能在某些情况下对执行数据库快照还原功能有所帮助。RDS for MySQL 当前不支持联合存储引擎。
对 RDS for MySQL 数据库实例的主用户将被授予哪些权限?
在创建新的数据库实例时,您使用的默认主用户将获得特定权限。请参阅《Amazon RDS 用户指南》中的主用户账户权限,了解权限列表。
哪些存储引擎支持用于 RDS for MySQL 只读副本?
RDS for MySQL 读取副本需要使用事务性存储引擎,并仅支持用于 InnoDB 存储引擎。非事务性 MySQL 存储引擎(如 MyISAM)可能会阻止读取副本按预期方式运行。不过,如果您仍然对读取副本选择使用 MyISAM,建议您密切监视 Amazon CloudWatch“副本滞后”指标(通过 AWS 管理控制台或 Amazon CloudWatch API 提供),并在其由于复制错误落后时重新创建读取副本。使用临时表及任何其他非事务性引擎时,也应考虑上述事项。
是否可以在源 RDS for MySQL 数据库实例和读取副本之间配置复制,以使用基于行的复制?
对于 MySQL 5.6 或更高版本,您可以将二进制日志格式设为基于行。默认情况下,复制设置为固定格式(包含基于行和基于语句的复制),它们应满足大多数使用案例的要求。要详细了解混合格式与基于行的复制之间的区别,请参阅 MySQL 文档。
Amazon 蓝绿部署常见问题
Amazon RDS 蓝绿部署支持哪些版本?
Amazon RDS 蓝绿部署在 RDS for MySQL 5.7 及更高版本中可用。在 RDS for MySQL 文档中了解有关可用版本的更多信息。
Amazon RDS 蓝绿部署支持哪些区域?
Amazon RDS 蓝绿部署现已在所有适用的 AWS 区域和 AWS GovCloud 区域推出。
我可以对 Amazon RDS 蓝绿部署进行哪些更改?
Amazon RDS 蓝绿部署可让您进行更安全、更简单、更快速的数据库更改,如主要或次要版本升级、架构更改、实例缩放、引擎参数更改和维护更新。
何时应使用 Amazon RDS 蓝绿部署?
Amazon RDS 蓝绿部署可让您实现更安全、更简单、更快速的数据库更改。蓝绿部署非常适用于主版本或次要版本数据库引擎升级、操作系统更新、在不中断逻辑复制的情况下进行绿色环境中的架构更改(例如在表末尾添加新列或数据库参数设置更改)等应用场景。您可以使用蓝绿部署通过单次切换同时更新多个数据库。这使您可以随时了解最新的安全补丁,提高数据库性能,并在可预测的短暂停机时间内访问更新的数据库功能。
使用 Amazon RDS 蓝绿部署的花费是多少?
在绿色实例上运行工作负载的成本与在蓝色实例上运行时相同。在蓝色和绿色实例上运行的成本包括 db.instances、存储成本、读/写 I/O 成本以及任何已启用功能的当前标准定价,如备份成本和 Amazon RDS 性能详情。实际上,在蓝绿部署寿命周期内,您的成本大约是在 db.instance 上运行工作负载成本的 2 倍。
例如:您的 RDS for MySQL 5.7 数据库运行在两个 r5.2xlarge db.instances 上,一个主数据库实例和一个只读副本,在具有多 AZ(MAZ)配置的 us-east-1 AWS 区域中。每个 r5.2xlarge db.instance 均配置为 20 GiB 通用型 Amazon Elastic Block Store(Amazon EBS)。使用 Amazon RDS 蓝绿部署创建蓝色实例拓扑的克隆,运行 15 天(360 小时),然后在切换成功后删除蓝色实例。蓝色实例 15 天费用为 1,387 美元,即期票汇汇率为 1.926 美元/小时(实例 + EBS 成本)。在这 15 天内,使用蓝/绿部署的总成本为 2,774 美元,是该时间段运行蓝色实例的成本的 2 倍。
我可以对 Amazon RDS 蓝绿部署进行哪些更改?
Amazon RDS 蓝绿部署可让您进行更安全、更简单、更快速的数据库更改,如主要或次要版本升级、架构更改、实例缩放、引擎参数更改和维护更新。
Amazon RDS 蓝绿部署中的“蓝色环境”是什么? “绿色环境”是什么?
Amazon RDS 蓝绿部署如何实现切换?
当 Amazon RDS 蓝绿部署启动切换时,它会阻止任何对蓝色和绿色环境的写入,直到切换完成。在切换过程中,暂存环境(或绿色环境)会跟随蓝色环境,确保蓝色和绿色环境之间的数据一致。一旦蓝色和绿色环境完全同步,蓝绿部署将通过将流量重定向到绿色环境将绿色环境提升为新的蓝色环境。蓝绿部署旨在在切换完成后启用绿色环境中的写入,确保切换过程中无数据丢失。
我能否在蓝色环境作为自行管理的逻辑副本的订阅用户/发布者时使用蓝绿部署?
如果您的蓝色环境是自行管理的逻辑副本或订阅用户,我们将阻止切换。我们建议您首先停止向蓝色环境的复制,继续进行切换,然后再继续复制。相反,如果您的蓝色环境是自行管理的逻辑副本的来源或发布者,则可以继续切换。但是,您需要更新自行管理的副本,以便在切换后从绿色环境中进行复制。
在 Amazon RDS 蓝绿部署切换结束后,我的旧生产环境会发生什么?
Amazon RDS 蓝绿部署不会删除旧生产环境。如果需要,您可以访问该环境进行其他验证和性能/回归测试。如果您不再需要旧生产环境,可以将其删除。标准账单费用适用于旧生产实例,直到您将其删除。
问:Amazon RDS 蓝绿部署切换防护机制用于检查什么?
Amazon RDS 蓝绿部署切换防护机制将阻止对蓝色和绿色环境的写入,直到您的绿色环境在切换之前成功跟随。蓝绿部署还可以对蓝色和绿色环境中的主副本执行运行状况检查。它们还将执行复制运行状况检查,例如,查看复制是否已停止或是否存在错误。它们将检测蓝绿环境之间的长时间运行事务。您可以指定可忍受的最大停机时间,最短为 30 秒,如果正在进行的事务超过此时间,则切换将超时。
Amazon RDS 蓝绿部署是否支持 Amazon RDS 代理、跨区域只读副本或级联只读副本?
否,Amazon RDS 蓝绿部署不支持 Amazon RDS 代理、跨区域只读副本或级联只读副本。
能否使用 Amazon RDS 蓝绿部署回滚更改?
否,您目前无法使用 Amazon RDS 蓝绿部署回滚更改。
Amazon RDS 优化型写入功能常见问题
Amazon RDS 优化型写入功能如何以不同于 MySQL 的方式写入数据文件?
MySQL 通过将 16KiB 页面中的数据两次写入持久性存储,首先写入“双写缓冲区”,然后写入表存储,从而保护用户免受数据丢失。Amazon RDS 优化型写入功能使用 AWS Nitro System 的 Torn Write Prevention 功能一步将您的 16KiB 数据页可靠且持久地写入您的数据文件。
哪些 RDS for MySQL 数据库版本支持 Amazon RDS 优化型写入功能?
Amazon RDS 优化型写入功能可用于 MySQL 主要版本 8.0.30 及更高版本。
哪些数据库实例类型支持 Amazon RDS 优化型写入功能? 它们在哪些区域提供?
Amazon RDS 优化型写入功能可用于 db.r6i 和 db.r5b 实例。所有提供这些实例的区域(除 AWS 中国区域外)均提供。
应在何时使用 Amazon RDS 优化型写入功能?
所有 RDS for MySQL 用户都应实施 Amazon RDS 优化型写入功能,最多可使写入事务吞吐量提高到原来的 2 倍。数字支付、金融交易和在线游戏应用程序等工作负载较大的应用程序将会发现此功能特别有用。
Amazon Aurora MySQL 兼容版中是否支持 Amazon RDS 优化型写入功能?
否,Amazon Aurora MySQL 兼容版已避免使用“双写缓冲区”。 相反,Aurora 跨三个可用区(AZ)以六种方式复制数据,并使用基于 Quorum 的方法持久地写入数据,然后正确地读取数据。
客户能否将其现有 Amazon RDS 数据库,转换为使用 Amazon RDS 优化型写入功能?
目前,此初始版本不支持为现有数据库实例启用 Amazon RDS 优化型写入功能,即使实例类支持优化型写入。
Amazon RDS 优化型写入功能如何收费?
RDS for MySQL 客户无需额外付费即可使用 Amazon RDS 优化型写入功能。
Amazon RDS 优化型读取功能常见问题
Amazon RDS 优化型读取功能如何提高查询性能?
使用 MySQL 中的临时对象进行查询处理的工作负载受益于 Amazon RDS 优化型读取功能。Optimized Reads 将临时对象放置在数据库实例的基于 NVMe 的实例存储上,而不是 Amazon EBS 卷上。这有助于将复杂的查询处理速度提高 50%。
哪些 RDS for MySQL 数据库版本支持 Amazon RDS 优化型读取功能?
Amazon RDS 优化型读取功能在 MySQL 版本 8.0.28 及更高版本中可供 RDS for MySQL 使用。
哪些数据库实例类型支持 Amazon RDS 优化型读取功能? 在哪些区域提供?
Amazon RDS 优化型读取功能在 db.r5d、db.m5d、db.r6gd、db.m6gd、X2idn 和 X2iedn 实例可用的所有区域提供。有关更多信息,请参阅 Amazon RDS 数据库实例类文档。
应在何时使用 Amazon RDS 优化型读取功能?
当客户的工作负载需要复杂查询时,应使用 Amazon RDS 优化型读取功能;通用分析;或者需要复杂的组、排序、散列聚合、高负载连接和公用表表达式(CTE)。这些使用案例导致创建临时表,从而允许优化型读取功能加快工作负载的查询处理。
客户能否将其现有 Amazon RDS 数据库转换为使用 Amazon RDS 优化型读取功能?
是的,客户可以通过将您的工作负载移动到支持 Optimized Reads 的实例,将现有的 Amazon RDS 数据库转换为使用 Amazon RDS Optimized Reads。默认情况下,所有受支持的实例类都可以使用 Optimized Reads。如果您正在 db.r5d、db.m5d、db.r6gd、db.m6gd、X2idn 和 X2iedn 实例上运行工作负载,那么您已经从 Optimized Reads 中受益。
与 Amazon Redshift 的零 ETL 集成常见问题
我什么时候应该使用 Amazon RDS for MySQL 与 Amazon Redshift 的零 ETL 集成?
如果您希望消除构建和管理复杂数据管道的需要,则应该使用 Amazon RDS for MySQL 与 Amazon Redshift 的零 ETL 集成。一旦数据进入 Amazon Redshift,您就可以从 RDS for MySQL 访问近乎实时的分析和机器学习(ML)功能,用于您的事务数据。
哪些版本的 RDS for MySQL 和哪些 AWS 区域支持零 ETL 集成?
RDS for MySQL 与 Amazon Redshift 的零 ETL 集成适用于受支持的 AWS 区域中的 MySQL 版本 8.0.32 及更高版本。
零 ETL 集成可以提供哪些好处?
RDS for MySQL 与 Amazon Redshift 的零 ETL 集成可对 PB 级事务数据进行近乎实时的分析和机器学习(ML),并且无需您构建和管理复杂的数据管道。数据写入 RDS for MySQL 后几秒钟内,就会复制到 Amazon Redshift。您可以将来自多个数据库和表的数据从 RDS for MySQL 整合到 Amazon Redshift。根据您的分析需求,对特定数据库和表的数据筛选可帮助您有选择地将数据导入 Amazon Redshift。
Amazon RDS for MySQL 与 Amazon Redshift 的零 ETL 集成如何收费?
您需要为 RDS for MySQL 和 Amazon Redshift 资源付费,这些资源用于创建和处理在零 ETL 集成过程中创建的变更数据。 这些资源包括用于初始数据填充和重新同步 Amazon Redshift 数据仓库的 Amazon RDS 快照导出成本、将数据更改从源持续复制到目标的更改数据捕获(CDC)数据传输成本、用于处理更改数据的常规 RDS I/O 和存储成本,以及用于复制数据的常规 Amazon Redshift 存储和计算成本。有关更多信息,请参阅 RDS for MySQL 定价页面。
例如,您有一个 RDS for MySQL 8.0.32 数据库和一个在美国东部(弗吉尼亚州北部)区域运行的 Amazon Redshift 数据仓库。这个 RDS for MySQL 数据库实例目前使用 50GB 通用 SSD(gp3)存储容量,其中包括预调配基准 IOPS、已启用自动备份并且已开启 MySQL 二进制日志记录。
当您为 RDS for MySQL 数据库实例创建与 Amazon Redshift 的零 ETL 集成时,系统会创建数据快照(50GB)并导出以作为 Amazon Redshift 数据仓库的种子。第二天,您更改了 RDS for MySQL 数据库实例中表的主键,这导致快照导出重新同步到 Amazon Redshift。在 30 天内,数据库处理了 5GB 的数据更改。
在此示例中,30 天内在美国东部(弗吉尼亚州北部)使用 RDS for MySQL 与 Amazon Redshift 的零 ETL 集成的费用为 50GB x(0.10 USD/GB)初始导出费用加上 50 GB x(0.10 USD/GB)重新同步费用,再加上 5 GB x(2.00 USD/GB)CDC 数据传输费用,总计 20.00 USD。除了零 ETL 集成的这些费用之外,您还需要支付正常使用 Amazon RDS 和 Amazon Redshift 处理复制数据所产生的费用,例如 I/O、存储和计算费用。
我可以使用 Amazon RDS 只读副本创建 RDS for MySQL 与 Amazon Redshift 的零 ETL 集成吗?
可以,为了减少主实例上的资源消耗,您可以使用 Amazon RDS 只读副本作为与 Amazon Redshift 进行零 ETL 集成的源 Amazon RDS 实例。
零 ETL 集成是否支持 AWS CloudFormation?
是的,您可以使用 AWS CloudFormation 管理和自动化 RDS for MySQL 与 Amazon Redshift 的零 ETL 集成所需资源的配置和部署。有关更多信息,请访问 AWS CloudFormation 用户指南。
零 ETL 集成如何处理事务? 它们是否会在复制时以原子方式提交?
RDS for MySQL 与 Amazon Redshift 的零 ETL 集成自动复制事务,以确保源 RDS for MySQL 数据库和目标 Amazon Redshift 集群之间的数据一致性。
以下是有关此集成的事务原子性的一些要点:
- 只会将 RDS for MySQL 中已提交的事务复制到 Amazon Redshift。不应用未提交或已回滚的事务。
- 该集成使用两阶段提交流程以原子方式将每个事务应用到 Amazon Redshift。应用事务中的所有数据更改,或者,如果发生错误则不应用任何数据更改。
- 源和目标之间保持事务一致性。复制后,给定事务的数据在 RDS for MySQL 和 Amazon Redshift 中将保持一致。
- 通过 DDL 或 DML 进行的架构更改也会自动应用以维护完整性。
- 事务的原子应用可确保数据库之间不会发生部分事务或不一致的数据状态。
我在 RDS for MySQL 上所做的更改会按什么顺序复制到 Amazon Redshift 中?
RDS for MySQL 与 Amazon Redshift 的零 ETL 集成可保持源 RDS for MySQL 数据库和目标 Amazon Redshift 集群之间的完全事务一致性。
如何使用零 ETL 集成来处理架构更改?
以下是关于如何处理架构更改的一些关键点:
- 诸如 CREATE TABLE、ALTER TABLE、DROP TABLE 等 DDL 语句会自动从 RDS for MySQL 复制到 Amazon Redshift。
- 该集成会在 Amazon Redshift 表中针对复制的架构更改进行必要的检查和调整。例如,在 RDS for MySQL 中添加一列将在 Amazon Redshift 中添加该列。
- 复制和架构同步近乎实时地自动发生,源数据库和目标数据库之间的延迟最小。
- 即使 DML 更改与 DDL 更改并行发生,也能保持架构一致性。