重新托管建议 - AWS 规范性指导

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

重新托管建议

在亚马逊上重新托管 Oracle 时 EC2,您需要安装和配置 Oracle 数据库并执行所有维护操作,包括 Oracle 的小升级、Oracle 的主要升级、操作系统修补、操作系统配置、数据库配置、内存分配、存储分配和存储配置。

Amazon EC2 实例类型注意事项

该 EC2 实例必须有足够的 CPU、内存和存储空间来处理预期的数据库工作负载。我们建议您为 Oracle 数据库使用最新一代的 EC2实例类。这些实例类型(例如在 Nitro 系统上构建的实例)支持硬件虚拟机 (HVM)。HVM Amazon Machine Images (AMIs) 需要使用增强的联网功能,而且它们还提供了更高的安全性。

在 Nitro 系统上构建的虚拟化实例包括 r5b、x2iDN 和 x2iedn。要获得较高的亚马逊 EBS 卷吞吐量,请考虑 Amazon EC2 R5b 和 X2 实例类型。这些实例最多支持 260,000 IOPS。亚马逊 EC2 R5b 实例的最大吞吐量为 7,500。 MBps亚马逊 EC2 x2iDN 和 x2iedn 实例的最大吞吐量为 10,000。 MBps有关更多信息,请查看亚马逊文档中的亚马逊 EBS 优化实例和最大 IOPS。 EC2

亚马逊 EBS 卷类型注意事项

亚马逊 EBS 通用型 (gp3) 卷比亚马逊 EBS 预配置 IOPS (io2) 卷便宜。如果 gp3 卷满足您的 I/O 和吞吐量要求,则它们应该是您的首选解决方案。单个 gp3 卷每个卷不能超过 16,000 个 IOPS。您还必须考虑可以分配给 EC2 实例的最大 EBS 卷数量。此数字因 EC2 实例类型而异;但是,Nitro System 实例的最大 EBS 卷数为 28。通常,专门用于 Oracle 数据库的 EBS 卷不应超过 24 个。

如果您的磁盘 I/O 要求很高,可以考虑使用 Amazon EBS io2 Block Express 卷。它们旨在为每个卷提供高达 4,000 的 MBps 吞吐量,每个卷 256,000 IOPS,64 TiB 的存储容量,亚毫秒级的延迟和 99.999% 的持久性。我们建议您在以下情况下使用 Amazon EBS io2 Block Express 卷:

  • 数据库分配的空间超过 384 TiB。这包括但不限于数据库文件、重做日志、TEMP空间、UNDO空间、闪回恢复区空间和数据暂存区。Amazon EBS io2 Block Express 卷使用单个实例最多可以支持 1.536 PiB。 EC2

  • 您需要亚毫秒范围内的存储延迟。

  • 您需要一个专为 999% 持久性而设计的数据库,而 Amazon EBS gp3 卷的持久性为 99.9%。

  • 您需要一个虚拟存储阵列来为单个 EC2 实例提供 100 万或更高的 IOPS。

  • 在你的 Exadata 本地系统中,Exadata Smart Flash Cache 和 Exadata 智能闪存日志记录功能非常高。Exadata 智能闪存缓存读取操作的 I/O 延迟通常小于 400 微秒。Amazon EBS io2 Block Express 的 I/O 延迟通常在 400 到 600 微秒之间。

甲骨文 ASM 注意事项

当你在亚马逊上使用 Oracle 时 EC2,Oracle AWS 建议你实施 Oracle 自动存储管理 (ASM) 外部冗余,以避免 Amazon EBS 的故障率。但是,如果 EBS 卷在 ASM 外部冗余模式下不可用,则关联的 ASM 磁盘组将进入强制卸载状态。必须找到所有磁盘才能成功装载 ASM 磁盘组。因此,在所有 EBS 卷都可用之前,数据库将不可用。ASM 外部冗余有效地提供了 RAID 0 级别的可靠性,因此,每添加一个 EBS 卷,ASM 磁盘组受到影响的几率就会增加,总体故障率是每个 EBS 卷故障率的倍数。

Amazon EBS 卷是在 AWS 可用区域内复制的。但是,EBS 卷仍可能出现故障。例如,gp3 卷的年故障率为 0.1-0.2%,而 io2 卷的年故障率为 0.001%。您可以实现具有普通冗余或高冗余的 ASM 磁盘组,以减少由单个 EBS 卷故障引起的中断。但是,这不是最佳实践,因为 EBS 卷是在可用区内复制的,而且 ASM 故障组 EBS 卷也可以与 ASM 主组 EBS 卷位于相同的物理主机上。

其他 ASM 注意事项:

  • 使用 Oracle ASM 过滤器驱动程序 (ASMFD) 来实现 ASM。

  • 确保磁盘组中的所有 Oracle ASM 磁盘都具有相似的存储性能和可用性特征。在具有混合速度驱动器(例如闪存和硬盘驱动器 (HDD))的存储配置中, I/O 性能会受到速度最慢的驱动器的限制。

  • 确保磁盘组中的 Oracle ASM 磁盘具有相同的容量以保持平衡。

  • Oracle ASM 将数据随机分配到选定的 ASM 磁盘集中。配置系统的存储空间时,请考虑系统的初始容量和未来的增长计划。Oracle ASM 简化了适应增长的任务。如前所述,Amazon EC2 Nitro 系统实例最多支持 28 个卷。如果 DATA ASM 磁盘组需要 96 TiB,那么四个 24 TiB 的 Amazon EBS io2 Block Express 卷将比十六个 6 TiB Amazon EBS io2 Block Express 卷更好的选择。

  • 在两个 ASM 磁盘组中设置至少两个控制文件。

亚马逊上的 Oracle EC2 最佳实践

在将数据从本地 Exadata 迁移到亚马逊上的 Oracle 之后 EC2,在向最终用户提供访问权限之前,请考虑以下最佳实践:

  • 启用EC2 实例终止保护。这样可以要求用户在终止 EC2实例之前禁用保护,从而防止实例被意外终止。

  • 启用 Amazon EC2 自动恢复功能,该功能可在托管 EC2 实例的硬件受损时解决问题。此功能可在不同的底层硬件上恢复实例,并减少手动干预的需求。

  • 亚马逊 EC2 提供的实例内存高达 24 TiB。这些实例支持超大的 Oracle SGAs ,如果您使用的是多 Tib Oracle,则应该是您的首选。 SGAs但是,许多 EC2 实例和 Amazon RDS for Oracle 实例也支持本地实例存储。如果您使用带 NVMe 固态硬盘实例存储的 Amazon EC2 或 Amazon RDS for Oracle 实例,则可以使用临时存储来扩展 Oracle SGA 数据库块缓冲区。这种方法使您能够使用实例存储来缓存对象,并且读取操作的平均 I/O 延迟为 100 微秒。智能闪存和/2 级闪存仅适用于使用实例存储且需要 Oracle Linux 操作系统的实例。OLTP 和数据仓库环境可以从这项技术中受益。设置 Oracle 初始化参数DB_FLASH_CACHE_FILEDB_FLASH_CACHE_SIZE并使用智能闪存缓存。

  • 使用 Oracle Linux 作为您的实例的操作系统。如果不能选择 Oracle Linux,可以考虑红帽企业 Linux (RHEL)。 EC2基于 Graviton 处理器的实例不支持 Oracle 数据库,因为 Oracle 尚未发布为 ARM 处理器编译的 Oracle 数据库二进制文件。此外,甲骨文数据库不支持亚马逊 Linux。

  • 使用最新版本的 Oracle 软件来安装 Oracle 网格基础架构。您可以使用旧版本的 Oracle 数据库部署最新版本的 Oracle 网格基础架构。例如,Oracle 网格基础设施 21c 支持 Oracle 数据库 19c。

  • 如果您使用 Oracle RMAN 或 Oracle Data Guard 从 Exadata 上的 Oracle 数据库的较早版本迁移,请考虑在迁移后将数据库版本升级到最新版本。如果您使用 Oracle Data Pump,请在迁移 AWS 之前安装最新的 Oracle 数据库版本。

  • 使用 Oracle 快速恢复区 (FRA) 可以在不使用 RMAN 备份的情况下快速恢复数据库。如果可能,请将 FRA 设置为至少一天。必须设置 Oracle 初始化参数DB_RECOVERY_FILE_DEST_SIZEDB_RECOVERY_FILE_DEST、和DB_FLASHBACK_RETENTION_TARGET(表示时间,以分钟为单位)。

  • 如果您将多个数据库工作负载迁移到单个 EC2 实例中,请考虑实施 Oracle 数据库资源管理器来管理数据库资源分配。

  • 实施 Oracle SPFILE 而不是独立的PFILESPFILE是一个二进制文件,它允许动态修改,而无需重启实例。如果正在使用STARTUP命令,请勿指定PFILE何时使用命令。SPFILE

  • 启用 Oracle 自动共享内存管理器 (ASMM),这样可以简化 SGA 内存管理。Oracle 数据库会自动在 SGA 组件之间分配内存,以确保最有效的内存利用率。

  • 数据库写入进程 (DBWR) 中,您可能会遇到 Oracle db 文件并行写入等待事件。此等待表示 DBWR 等待 I/O 完成所花费的时间。要解决此问题,请确认已启用异步 I/O (Oracle 初始化参数DISK_ASYNCH_IO),增加 EBS 卷的 IOPS,并验证数据库缓冲区缓存是否足够大,足以防止抖动。

  • 定期对 EC2实例进行扫描(至少每两周一次),并验证合规性。你可以使用 Amazon Inspector 进行此扫描。Amazon Inspector 是一项自动安全评估服务,可帮助提高部署在其上的应用程序的安全性和合规性 AWS。它会自动评估应用程序的暴露程度、漏洞以及与最佳实践的偏差。执行评估后,它会生成一份按严重程度划分优先顺序的安全发现的详细列表。您可以直接查看这些发现,也可以在通过 Amazon Inspector 控制台或 API 提供的详细评估报告中查看这些发现。

  • 为设置亚马逊 CloudWatch 警报AWS CloudTrail。例如,当安全组发生配置更改时,应激活 CloudWatch 警报。当有人试图访问 EC2 实例时,这会提醒运营团队。

  • 如果您的组织需要零或接近零的恢复点目标 (RPO),请在最大可用性模式下使用 Oracle Data Guard 或 Oracle Active Data Guard。备用数据库应位于与主数据库不同的可用区中。最大保护和最大可用性模式提供了一个专为不丢失数据而设计的自动故障转移环境。最高性能模式提供了一个自动故障转移环境,该环境旨在丢失的数据量不超过FastStartFailoverLagLimit配置属性指定的数据量(以秒为单位)。我们还建议您使用 Oracle Data Guard 或 Oracle Active Data Guard 实施数据保护代理。Data Guard Broker 可自动执行 Data Guard 的配置和监控任务。主动数据防护需要 Oracle 许可证。

  • 考虑使用 Oracle 主动数据防护自动块介质恢复。如果在访问主数据库时遇到损坏的数据块,则该块将自动替换为物理备用数据库中该块的未损坏副本。但是,要使用此功能,Active Data Guard 必须以最大可用性模式运行,并将 Oracle 初始化参数LOG_ARCHIVE_DEST_n设置为SYNC重做传输模式。最高性能模式不支持此功能。

  • 如果您的组织需要跨区域灾难恢复,请考虑实施 Oracle Far Sync。Far Sync 需要 Oracle 主动数据卫士许可证。

  • 使用 Oracle Secure Backup (OSB) 通过 Oracle RMAN 将数据库备份到 Amazon S3。OSB 需要 Oracle 许可证。OSB 的定价基于正在使用的 Oracle RMAN 渠道的数量。您也可以使用AWS Storage Gateway将数据库直接备份到 Amazon S3。您可以对 Amazon S3 中的备份应用生命周期策略,将较旧的备份移至 Amazon Glacier 进行存档。