数据库存储 - 在上运行 Oracle 数据库的最佳实践 AWS

本白皮书仅供历史参考。有些内容可能已过时,有些链接可能不可用。

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

数据库存储

大多数用户通常使用 Amazon EBS 进行数据库存储。对于一些非常高性能的架构,您可以使用实例存储 SSDs,但应使用 Amazon EBS 存储对其进行扩展,以实现可靠的持久性。

为了获得高且一致的 IOPS 和数据库性能,AWS 强烈建议使用通用型 (GP2) 卷或预配置 IOPS (PIOPS) 卷。 GP2 而且 PIOPS 卷可用于亚马逊 EC2 和亚马逊 RDS。请参阅 Amazon RDS 数据库实例存储,了解两种 GP2 卷类型和 PIOPS 卷类型对每个卷的 IOPS 的最新限制。 GP2 卷在价格和性能之间取得了出色的平衡,可满足大多数数据库需求。当您的数据库需要的 IOPS 高于所 GP2 能提供的 IOPS 时,PIOPS 卷是正确的选择。

对于 PIOPS 卷,您可以在创建卷时指定 IOPS 速率,Amazon EBS 在给定年份的 99.9% 的时间内提供预配置 IOPS 性能的 10% 以内。预配置 IOPS 与请求的卷大小的比率最多可以为 30。例如,要获得 3,000 IOPS,您的卷大小应至少为 100 GB。

与 PIOPS 卷类似, GP2 卷也是基于 SSD 的,但是您从卷中获得的 IOPS 可以从基准 IOPS 到每个 GP2 卷的最大可突发 3,000 IOPS 不等。这对于大多数数据库工作负载来说效果非常好,因为数据库所需的 IOPS 性能在一段时间内会根据负载大小和正在执行的查询数量而变化多次。

通用型 (SSD) 卷性能受卷大小控制,卷大小决定了卷的基本性能级别及其积累积积分 I/O 的速度。卷越大,基础性能等级越高,积累积 I/O 积分的速度也更快。

I/O 积分表示当需要超过基本性能 I/O 时,您的通用型 (SSD) 卷可以用来突发大量可用带宽。您的卷获得的 I/O 积分越多,它突破基本性能水平的时间就越长,在需要更高性能时性能也越好。

吞吐量优化的 HDD 卷 (st1) 提供低成本的 HDD 卷,专为需要较少 IOPS 但需要高吞吐量的密集型工作负载而设计。用于数据仓库和数据分析目的的 Oracle 数据库可以利用 st1 卷。

任何需要高吞吐量的日志处理或数据暂存区域(例如 Oracle 外部表或外部 BLOB 存储)都可以利用 st1 卷。吞吐量优化 (st1) 卷每个卷最多可以处理 500 个 IOPS。

Cold HDD 卷 (sc1) 适用于处理遗留系统,这些系统会随身携带以供偶尔参考或存档。这些系统的访问频率较低,每天对卷进行几次扫描。

一个好的方法是估算数据库持续需要的 IOPS 量,然后分配足够的 GP2 存储空间来获得这么多 IOPS。周期性峰值所需的任何额外 IOPS 都应根据可用积分在突发性能中得到满足。

有关可用于确定 Oracle 数据库的 IOPS 需求的估算方法的信息,请参阅《确定 AWS 上的 Orac le 数据库的 IOPS 需求》白皮书。

卷的突增持续时间取决于卷的大小、所需的突增 IOPS 以及突增开始时的积分余额。如果您发现您的卷性能通常仅限于基本级别(由于 I/O 积分余额为空),则应考虑使用更大的通用型 (SSD) 卷(基本性能级别更高),或者对于需要持续 IOPS 性能超过 10,000 IOPS 的工作负载,切换到预配置 IOPS (SSD) 卷。有关 GP2 卷的更多详细信息,请参阅 Amazon EBS 卷类型

对于 Amazon RDS,通用型 (SSD) 存储可提供每预配置 GB 3 IOPS 的稳定基准,并能够突增至 3,000 IOPS。如果您已经在 Amazon RDS 中使用磁性存储,则可以转换为通用型 (SSD) 存储,但这样做会对可用性造成短暂影响。使用预配置 IOPS,您最多可以预配置当前的最大存储限制和每个数据库实例的最大 IOPS。

根据您的数据库工作负载、实例类型和数据库引擎,您实际实现的 IOPS 可能与您的预配置量有所不同。有关更多信息,请参阅 Amazon RDS 用户指南中的影响已实现 IOPS 速率的因素

对于 Amazon 上的 Oracle 数据库 EC2,将多个卷分成条带以获得更高的 IOPS 和更大的容量。您可以单独使用多个 Amazon EBS 卷来存储不同的数据文件,但是将它们分散在一起可以实现更好的平衡和可扩展性。

Oracle 自动存储管理 (ASM) 可用于条带化。将数据文件、日志文件和二进制文件保存在单独的 Amazon EBS 卷上,并定期拍摄日志文件卷的快照。选择具有本地 SSD 存储的实例类型允许您使用智能闪存缓存(如果操作系统是 Oracle Linux)以及使用本地存储来存储临时文件和表空间,从而提高数据库性能。

对于 AWS 上的 Oracle VMware 云数据库,vSAN 提供了跨裸机主机分条的必要虚拟化存储。vSAN 虚拟化存储功能可以在 Oracle RAC 中用于高性能共享存储。

为 Oracle RAC 创建的 VMDK(虚拟机磁盘)文件必须配置为急于零的厚度,并启用多写入器标志。 VMware 已在 AWS 上发布了一份针对 VMware 云上的 Oracle 数据库的详细性能研究