AWS Architecture Blog

Deploy Oracle Database step by step on Amazon EVS with FSx for ONTAP

6.9内容质量

TL;DR · AI 摘要

Deploy Oracle Database step by step on Amazon EVS with FSx for ONTAP AWS Architecture Blog Deploy Oracle Database step b...

核心要点

  • 主题聚焦:Deploy Oracle Database step by step on Amazon EV
  • 来源:AWS Architecture Blog,建议结合原文判断细节。
  • AI 分析暂不可用,本条为保底评分与摘要。
#AI#后端#云计算#安全#产品
打开原文

在 Amazon EVS 上使用 FSx for ONTAP 分步部署 Oracle 数据库 | AWS 架构博客

在 Amazon EVS 上使用 FSx for ONTAP 分步部署 Oracle 数据库

本文提供分步指南,介绍如何在 Amazon 弹性 VMware 服务(Amazon EVS)上部署 Oracle 数据库,并使用 Amazon FSx for NetApp ONTAP 作为 NFS 数据存储。您将创建存储卷、挂载 NFS 数据存储、安装 Oracle,并配置 SnapMirror 复制以实现跨区域灾难恢复。

在 VMware 上运行 Oracle 数据库的企业希望找到一条通往 AWS 的路径,该路径能够保留其现有操作流程,无需重新架构和重新培训。在我们相关的文章《在 Amazon EVS 和 FSx for ONTAP 上构建高可用 Oracle 数据库》中,我们解释了如何设计该环境:选择 Amazon 弹性计算云(Amazon EC2)裸机实例、调整虚拟机规模、在 vSAN 和 FSx for NetApp ONTAP 之间分配存储,并规划跨区域灾难恢复的 SnapMirror 复制。

本文从架构设计的后续步骤开始。我们提供分步指南,介绍如何部署整个堆栈——从创建第一个 Oracle 虚拟机和创建 FSx for ONTAP 卷,到挂载 NFS 数据存储、安装 Oracle 19c,以及配置 SnapMirror 和 SnapCenter。我们还涵盖四种迁移路径,用于将现有的本地 Oracle 工作负载迁移到 EVS,并包括后续操作,如快照备份、时间点恢复和数据库克隆。

关于架构决策、实例类型选择、存储设计原理以及高可用性规划,请参阅我们的相关文章:《在 Amazon EVS 和 FSx for ONTAP 上构建高可用 Oracle 数据库》。

分步部署流程

本节将逐步介绍端到端的部署工作流程:创建 Oracle 虚拟机、创建 FSx for ONTAP 存储卷、在 vSphere 中挂载 NFS 数据存储、安装 Oracle 19c,以及配置跨区域灾难恢复的 SnapMirror。首先完成先决条件,然后按顺序执行步骤 1 到 8。

先决条件

  • 已部署 Amazon EVS 环境(VCF 9.1、ESXi 9.1。使用 VCF 9.x 时,Amazon EVS 会提供裸机基础设施和 VLAN,您使用 Broadcom 的 VCF 安装程序部署 VCF)。
  • 每个集群至少 4 个主机。建议为 Oracle 使用专用数据库集群。
  • 配置了路由服务器端点、AWS Transit Gateway 和 AWS Direct Connect 的虚拟私有云(VPC)。
  • 用于 FSx for ONTAP 部署的 AWS 身份和访问管理(IAM)权限。
  • VCF 许可证授权(Broadcom 的 BYOL)。

步骤 1:在 EVS 上部署 Oracle 虚拟机

  • 登录到连接到 EVS vCenter 的 vSphere 客户端。
  • 在生产数据库集群中创建新虚拟机:客户操作系统:Red Hat Enterprise Linux 8(64 位)或 Oracle Linux 8。vCPU:根据 Oracle 工作负载大小(通常为 8–32 个 vCPU)。内存:根据 SGA/PGA 要求,32–256 GiB。磁盘:在 vSAN 数据存储上分配 100 GiB(操作系统 + Oracle 安装目录 + 交换空间 + 临时表空间)。网络:连接到生产可信 Tier-1 网关的数据库网段。
  • 启动虚拟机并配置客户操作系统:
code
# 设置主机名
hostnamectl set-hostname ora-db1

# 在 vSAN 后端磁盘(本地 NVMe,单数字毫秒延迟)上创建交换空间
# vSAN 数据存储已作为虚拟机的主磁盘可用
# 为交换空间分配专用分区或逻辑卷
lvcreate -L 16G -n swap vgos
mkswap /dev/vgos/swap
swapon /dev/vgos/swap
echo "/dev/vgos/swap swap swap defaults 0 0" >> /etc/fstab

安装 Oracle 依赖项

sudo yum install -y oracle-database-preinstall-19c python3

code

对于 HA/DR 场景,建议复制整个 Oracle 虚拟机,而非在 DR 集群中维护独立的授权实例(详见架构文章中的 DR 授权考量)。

> Oracle 授权考量:实例类型选择会影响 Oracle 授权成本,这是需要重点考虑的因素。我们建议申请 AWS 优化和授权评估(AWS OLA)以获取进一步指导。

### 步骤 2:创建 FSx for NetApp ONTAP 文件系统

- 打开 Amazon FSx 控制台,选择 **创建文件系统**,然后选择 **Amazon FSx for NetApp ONTAP**。
- 选择标准创建和配置:
设置 | 值
--- | ---
部署类型 | 单可用区(EVS 需求)
SSD 存储容量 | Oracle 数据 + 日志 + 20% 容量冗余
吞吐容量 | 512–2048 MB/s(写入负载大小,参见不对称说明)
IOPS | 自动(3/GiB)或用户指定(最高 80,000)
VPC | 与 EVS 环境相同 VPC
子网 | EVS 服务访问子网,与数据库集群相同 AZ
安全组 | 允许从 EVS 管理 VLAN 的 NFS(TCP 2049, 111, 635)

- 设置 fsxadmin 密码(ONTAP CLI 自动化所需)。
- 创建 SVM(存储虚拟机)并设置 vsadmin 密码。
- 禁用自动每日备份,改用 SnapCenter 进行 Oracle 意识的调度。
- 创建完成后,选择 SVM,进入 **端点** 页面,复制 NFS DNS 名称。

### 步骤 3:创建 Oracle 数据库卷

通过 SSH 连接到 FSx for ONTAP 集群(`ssh fsxadmin@management-endpoint`)并创建卷:

Oracle 二进制卷

vol create -volume oradb1bin -aggregate aggr1 -size 50G \ -state online -policy default -tiering-policy none \ -junction-path /oradb1bin

Oracle 数据卷

vol create -volume oradb1data -aggregate aggr1 -size 500G \ -state online -policy default -tiering-policy none \ -junction-path /oradb1data

Oracle 日志卷(重做 + 归档)

vol create -volume oradb1log -aggregate aggr1 -size 250G \ -state online -policy default -tiering-policy none \ -junction-path /oradb1log

code

设置 `-tiering-policy none` 可将所有数据固定在 SSD 层。日志卷大小应满足 24 小时归档日志需求。

### 步骤 4:在 vSphere 中将 FSx for ONTAP 挂载为 NFS 数据存储

- 在 vSphere 客户端中,选择数据库集群,依次选择 **配置 > 存储 > 新建数据存储**。
- 选择 **NFS**,然后选择 **NFS 3**。
- 输入:服务器:`svm-id.fs-id.fsx.region.amazonaws.com`,文件夹:`/oradb1data`,数据存储名称:`fsx-ora-db1-data`。
- 重复操作创建二进制(`/oradb1bin`)和日志(`/oradb1log`)卷的数据存储。
- 在集群存储视图中验证三个数据存储是否显示正确容量。

### 步骤 5:在 FSx for ONTAP 数据存储上创建 Oracle VMDK

在 ESXi 主机级别挂载 NFS 数据存储(步骤 4)后,在这些数据存储上创建 Oracle 虚拟磁盘:

- 在 vSphere 客户端中,选择 Oracle 虚拟机,选择 **编辑设置**,然后选择 **添加新设备 > 硬盘**。
- 创建以下 VMDK:

VMDK | 数据存储 | 大小 | 客户端挂载路径 | 用途
--- | --- | --- | --- | ---
硬盘 2 | `fsx-ora-db1-data` | 500 GiB | `/u02` | Oracle 数据文件
硬盘 3 | `fsx-ora-db1-log` | 250 GiB | `/u03` | Oracle 重做 + 归档日志
硬盘 4 | `fsx-ora-db1-bin` | 50 GiB | `/u01` | Oracle 家目录二进制文件

- 为数据和日志 VMDK 选择 **厚分配** 和 **急零初始化**(可获得最佳 Oracle 性能)。

Oracle 数据库可以创建在 Oracle ASM 或文件系统(本地/NFS)上。此安装基于在本地 XFS 文件系统上创建 Oracle 数据库。

在 Oracle VM 客户机操作系统中,对新磁盘进行分区并挂载:

识别新磁盘

lsblk

在每个磁盘上创建文件系统(示例:/dev/sdb 用于数据)

mkfs.xfs /dev/sdb mkfs.xfs /dev/sdc mkfs.xfs /dev/sdd

创建挂载点

mkdir -p /u01 /u02 /u03

挂载

mount /dev/sdd /u01 # Oracle 安装目录(二进制文件) mount /dev/sdb /u02 # Oracle 数据文件 mount /dev/sdc /u03 # Oracle 重做日志 + 归档日志

持久化配置到 /etc/fstab

cat >> /etc/fstab <<EOF /dev/sdb /u02 xfs defaults,noatime 0 0 /dev/sdc /u03 xfs defaults,noatime 0 0 /dev/sdd /u01 xfs defaults,noatime 0 0 EOF

设置所有权

chown -R oracle:oinstall /u01 /u02 /u03

code

关键点:Oracle VM 将 /u02 和 /u03 作为本地 XFS 块设备进行访问。它不会意识到底层存储是通过 FSx for ONTAP 支持的 NFS 数据存储。所有 NFS 通信都在 ESXi 主机层面完成,每台主机通过自己的网络路径连接到 FSx for ONTAP。

### 第 6 步:安装并配置 Oracle 19c

以 oracle 用户身份

export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1 cd $ORACLE_HOME ./runInstaller -silent -responseFile /path/to/db_install.rsp

code

使用 /u02 存储数据、/u03 存储日志创建数据库:

CREATE DATABASE orcl DATAFILE '/u02/oradata/orcl/system01.dbf' SIZE 1G LOGFILE GROUP 1 '/u03/oralogs/orcl/redo01.log' SIZE 512M, GROUP 2 '/u03/oralogs/orcl/redo02.log' SIZE 512M, GROUP 3 '/u03/oralogs/orcl/redo03.log' SIZE 512M;

code

Oracle 将 /u02 和 /u03 作为本地 XFS 文件系统访问。标准的 Oracle ASM 或基于文件系统的存储管理方案适用。由于 ESXi 虚拟机管理程序抽象了 NFS 层,因此无需进行 NFS 特定的 Oracle 配置。

### 第 7 步:为跨区域 DR 配置 SnapMirror

对等集群(生产环境 → DR 环境):

cluster peer create -peer-addrs <dr-cluster-intercluster-ip> \ -username fsxadmin -initial-allowed-vserver-peers *

code

对等 SVM:

vserver peer create -vserver svm-prod -peer-vserver svm-dr \ -peer-cluster FSxDR -applications snapmirror

code

在 DR FSx for ONTAP 上创建 DP 卷:

vol create -volume oradb1bin -aggregate aggr1 -size 50G -state online -type DP vol create -volume oradb1data -aggregate aggr1 -size 500G -state online -type DP vol create -volume oradb1log -aggregate aggr1 -size 250G -state online -type DP

code

创建并初始化 SnapMirror:

snapmirror create -source-path svm-prod:oradb1data \ -destination-path svm-dr:oradb1data -throttle unlimited \ -policy MirrorAllSnapshots -type DP

snapmirror create -source-path svm-prod:oradb1log \ -destination-path svm-dr:oradb1log -throttle unlimited \ -policy MirrorAllSnapshots -type DP

snapmirror create -source-path svm-prod:oradb1bin \ -destination-path svm-dr:oradb1bin -throttle unlimited \ -policy MirrorAllSnapshots -type DP

初始化

snapmirror initialize -destination-path svm-dr:oradb1data snapmirror initialize -destination-path svm-dr:oradb1log snapmirror initialize -destination-path svm-dr:oradb1bin

code

> 重要提示:在制定灾难恢复(DR)策略时,请考虑Oracle的许可要求。一种替代方案是通过NetApp SnapMirror将Oracle VM从生产环境复制到DR环境。在发生故障切换之前,将DR复制卷保留为数据保护(DP)卷,且不要在DR主机上将其挂载为NFS数据存储,以避免Oracle双重许可。只有在声明故障切换后,才解除SnapMirror关系,将NFS数据存储挂载到DR主机,并启动虚拟机。即使在没有虚拟机运行的情况下,提前将SnapMirror卷作为数据存储挂载到主机上,也可能导致Oracle认为这些主机上已存在“安装”,从而需要在整个DR集群中进行许可。我们建议请求AWS优化和许可评估(AWS OLA)以获取进一步指导。

### 第8步:配置SnapCenter备份

- 部署SnapCenter Server(或使用SnapCenter SaaS)。
- 使用集群管理IP添加FSx for ONTAP存储系统。
- 在每台Oracle VM上安装SnapCenter Oracle插件。
- 创建备份策略:

策略 | 范围 | 频率 | SnapMirror更新 | 完整数据库备份
---|---|---|---|---
Full DB Backup | 数据 + 控制 + 归档 | 每4–6小时 | 是
Archive Log | 归档日志仅 | 每10–15分钟 | 否

- 创建资源组,分配策略并安排执行。

## 从本地VMware迁移到EVS的数据库迁移

### 选项1:VMware HCX实时迁移

对于已有本地VMware环境的企业:

- 在本地部署HCX Connector,在EVS上部署HCX Cloud Manager。
- 创建站点配对和网络扩展(L2扩展)。
- 使用HCX vMotion(零停机时间)或批量迁移迁移Oracle虚拟机。
- 迁移后:通过存储vMotion将Oracle VMDK从vSAN迁移到FSx for ONTAP NFS数据存储,以实现快照/复制功能。

### 选项2:SnapMirror ONTAP到ONTAP

如果本地Oracle已使用NetApp ONTAP存储:

- 在本地ONTAP与AWS FSx for ONTAP之间建立SnapMirror关系。
- 逐步复制直至切换。
- 在切换时:暂停Oracle,刷新归档日志,执行最终SnapMirror同步,解除镜像。
- 在EVS Oracle VM上挂载FSx for ONTAP卷,恢复数据库并开放服务。

### 选项3:Oracle PDB迁移(多租户)

对于已采用PDB/CDB多租户模型的Oracle数据库:

- 在EVS上使用FSx for ONTAP存储创建目标CDB。
- 使用PDB热克隆将PDB从本地CDB迁移到AWS CDB。
- 服务中断最小化。仅最终切换需要短暂停机。

### 选项4:RMAN备份/恢复(非ONTAP本地环境)

如果Oracle运行在非ONTAP存储的本地环境:

- 创建RMAN备份,通过AWS DataSync或AWS Direct Connect将备份传输到Amazon Simple Storage Service(Amazon S3)。
- 在EVS上部署Oracle VM,挂载FSx for ONTAP卷。
- 从RMAN备份恢复,应用归档日志。
- 打开数据库并重定向应用程序。

## 第2天操作

### 快照备份

SnapCenter将完整数据库快照作为存储层操作进行管理,提供高效的备份能力。

### 时间点恢复

在SnapCenter中选择SCN或时间戳,挂载日志快照,恢复数据快照,应用归档日志,并使用RESETLOGS打开数据库。

### 数据库克隆

SnapCenter FlexClone创建空间高效的数据库副本。克隆与源共享未更改的块,仅消耗增量数据的存储空间。适用于开发/测试、补丁验证和报表。

### 高可用性故障切换流程

- 解除DR卷上的SnapMirror关系。

- 将 SnapMirror 卷挂载为 DR ESXi 主机上的 NFS 数据存储,然后启动 Oracle 虚拟机。

- 恢复到最近可用的归档日志。

- 打开数据库。更新 DNS/连接字符串。

## 清理

测试部署完成后,为避免产生费用,请按以下顺序删除以下资源:

- Oracle 虚拟机 — 从 vSphere 清单中关闭并删除 Oracle 数据库虚拟机。

- NFS 数据存储 — 在 vSphere 中从 ESXi 主机卸载 FSx for ONTAP 数据存储。

- SnapMirror 关系 — 删除 DR FSx for ONTAP 文件系统上的 SnapMirror 关系和 DP 卷。

- FSx for ONTAP 文件系统 — 从 Amazon FSx 控制台删除生产环境和 DR 文件系统。此操作会删除这些文件系统上的所有卷和数据。

- Amazon EVS 环境 — 从 Amazon EVS 控制台删除 EVS 环境。这将终止底层的 EC2 裸金属实例。

- 网络 — 如果这些资源仅为此部署创建,请删除 Transit Gateway 附件、VPC Route Server 配置和 Direct Connect 连接。

> 重要:删除 FSx for ONTAP 文件系统会永久删除所有数据。操作前请确认已备份所需数据。

## 结论

在本文中,我们演示了如何在 Amazon 弹性 VMware 服务(Amazon EVS)上部署 Oracle 数据库,并使用 Amazon FSx for NetApp ONTAP 作为 NFS 数据存储。您创建了 Oracle 虚拟机,配置了 FSx for ONTAP 卷,在 vSphere 中挂载 NFS 数据存储,安装了 Oracle 19c,并配置了 SnapMirror 实现跨区域灾难恢复和 SnapCenter 实现 Oracle 意识备份。我们还介绍了现有本地 Oracle 工作负载的四种迁移路径,以及备份、时间点恢复和克隆的后续操作。

要开始使用,请查阅《Amazon EVS 用户指南》并阅读《将 FSx for ONTAP 配置为 EVS 的 NFS 数据存储》,然后在 Amazon EVS 上部署您的首个 Oracle 虚拟机。有关此部署的架构决策,请参阅相关文章《在 Amazon EVS 和 FSx for ONTAP 上构建高可用 Oracle 数据库》。在评论区分享您的反馈和问题。

## 附加资源

- [Amazon EVS 用户指南](https://docs.aws.amazon.com/evs/latest/userguide/)

- [EVS 支持的 VCF 版本和实例类型](https://docs.aws.amazon.com/evs/latest/userguide/supported-vcf.html)

- [将 FSx for ONTAP 配置为 EVS 的 NFS 数据存储](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/fsx-ontap-nfs-datastore.html)

- [FSx for NetApp ONTAP 与 EVS](https://docs.aws.amazon.com/evs/latest/userguide/fsx-ontap.html)

- [Amazon EVS 定价](https://aws.amazon.com/evs/pricing/)

- [介绍 Amazon EVS — AWS 博客](https://aws.amazon.com/blogs/aws/introducing-amazon-evs/)

- [NetApp Oracle 自动化工具包](https://www.netapp.com/us/solutions/oracle-automation-toolkit/) 

## 作者简介

'"`
 /think