Skip to main content
NetApp database solutions
简体中文版经机器翻译而成,仅供参考。如与英语版出现任何冲突,应以英语版为准。

TR-4974:在 AWS FSx/EC2 上使用 NFS/ASM 进行独立重启时 Oracle 19c

贡献者 kevin-hoke

Allen Cao、Niyaz Mohamed, NetApp

该解决方案提供了在 AWS FSx ONTAP存储和 EC2 计算实例中使用 NFS 协议进行 Oracle 数据库部署和保护的概述和详细信息,以及在独立 ReStart 中使用 asm 作为卷管理器配置的 Oracle 数据库。

目的

ASM(自动存储管理)是一种流行的 Oracle 存储卷管理器,在许多 Oracle 安装中都有使用。它也是Oracle推荐的存储管理解决方案。它为传统的卷管理器和文件系统提供了替代方案。自 Oracle 11g 版本以来,ASM 已与网格基础架构(而不是数据库)打包在一起。因此,为了在没有 RAC 的情况下利用 Oracle ASM 进行存储管理,必须在独立服务器中安装 Oracle 网格基础架构(也称为 Oracle Restart)。这样做无疑会给原本简单的 Oracle 数据库部署增加更多的复杂性。但是,顾名思义,当 Oracle 以重启模式部署时,任何失败的 Oracle 服务都会在主机重启后重新启动,无需用户干预,从而提供一定程度的高可用性或 HA 功能。

Oracle ASM 一般部署在 FC、iSCSI 存储协议和 lun 作为原始存储设备中。不过,Oracle 也支持 NFS 协议和 NFS 文件系统上的 ASM 配置。在本文档中,我们演示了如何在具有 EC2 计算实例的Amazon FSx ONTAP存储环境中使用 NFS 协议和 Oracle ASM 部署 Oracle 19c 数据库。我们还演示了如何通过NetApp BlueXP控制台使用NetApp SnapCenter服务来备份、恢复和克隆 Oracle 数据库,以用于开发/测试或 AWS 公共云中存储高效的数据库操作的其他用例。

此解决方案适用于以下用例:

  • 使用 NFS/ASM 在Amazon FSx ONTAP存储和 EC2 计算实例中部署 Oracle 数据库

  • 使用 NFS/ASM 在公共 AWS 云中测试和验证 Oracle 工作负载

  • 测试和验证在 AWS 中部署的 Oracle 数据库重启功能

受众

此解决方案适用于以下人群:

  • 一位 DBA 想要使用 NFS/ASM 在 AWS 公共云中部署 Oracle。

  • 一位数据库解决方案架构师想要在 AWS 公共云中测试 Oracle 工作负载。

  • 想要部署和管理部署到 AWS FSx 存储的 Oracle 数据库的存储管理员。

  • 希望在 AWS FSx/EC2 中建立 Oracle 数据库的应用程序所有者。

解决方案测试和验证环境

该解决方案的测试和验证是在可能与最终部署环境不匹配的 AWS FSx 和 EC2 环境中进行的。有关更多信息,请参阅部署考虑的关键因素

架构

此图提供了具有 iSCSI 和 ASM 的 AWS 公共云中的 Oracle 部署配置的详细图片。

硬件和软件组件

硬件

FSx ONTAP存储

AWS 提供的当前版本

同一 VPC 和可用区中的一个 FSx HA 集群

用于计算的 EC2 实例

t2.xlarge/4vCPU/16G

两个 EC2 T2 xlarge EC2 实例,一个作为主数据库服务器,另一个作为克隆数据库服务器

软件

红帽Linux

RHEL-8.6.0_HVM-20220503-x86_64-2-Hourly2-GP2

部署 RedHat 订阅进行测试

Oracle 网格基础设施

19.18 版

已应用RU补丁p34762026_190000_Linux-x86-64.zip

Oracle 数据库

19.18 版

已应用RU补丁p34765931_190000_Linux-x86-64.zip

Oracle OPatch

版本 12.2.0.1.36

最新补丁 p6880880_190000_Linux-x86-64.zip

SnapCenter服务

版本

v2.3.1.2324

部署考虑的关键因素

  • EC2 计算实例。在这些测试和验证中,我们使用 AWS EC2 t2.xlarge 实例类型作为 Oracle 数据库计算实例。 NetApp建议在生产部署中使用 M5 类型的 EC2 实例作为 Oracle 的计算实例,因为它针对数据库工作负载进行了优化。您需要根据实际工作负载需求,适当调整 EC2 实例的 vCPU 数量和 RAM 容量。

  • *FSx 存储 HA 集群单区域或多区域部署。*在这些测试和验证中,我们在单个 AWS 可用区中部署了一个 FSx HA 集群。对于生产部署, NetApp建议在两个不同的可用区部署 FSx HA 对。 FSx HA 集群始终在 HA 对中配置,该 HA 对在主动-被动文件系统中同步镜像,以提供存储级冗余。多区域部署进一步增强了单个 AWS 区域发生故障时的高可用性。

  • FSx 存储集群大小。 Amazon FSx ONTAP存储文件系统提供高达 160,000 个原始 SSD IOPS、高达 4GBps 的吞吐量以及最大 192TiB 的容量。但是,您可以根据部署时的实际需求,根据预配置的 IOPS、吞吐量和存储限制(最小 1,024 GiB)来确定集群大小。容量可以动态调整,而不会影响应用程序的可用性。

  • Oracle 数据和日志布局。在我们的测试和验证中,我们分别部署了两个 ASM 磁盘组用于数据和日志。在 +DATA asm 磁盘组中,我们在数据 NFS 文件系统挂载点中配置了四个磁盘。在 +LOGS asm 磁盘组中,我们在日志 NFS 文件系统挂载点中配置了两个磁盘。对于大型数据库部署,可以构建 ASM 磁盘组以跨越多个 FSx 文件系统,并通过 FSx 文件系统上锚定的多个 NFS 挂载点分布 ASM NFS 磁盘。此特定设置旨在满足超过 4GBps 吞吐量的数据库吞吐量和 160,000 原始 SSD IOPS 要求。

  • dNFS 配置。 dNFS 内置于 Oracle 内核中,并且已知当 Oracle 部署到 NFS 存储时可显著提高 Oracle 数据库性能。dNFS 打包到 Oracle 二进制文件中,但默认情况下未打开。对于 NFS 上的任何 Oracle 数据库部署,都应该启用它。对于大型数据库的多个 FSx 文件系统部署,应正确配置 dNFS 多路径。

  • *您创建的每个 Oracle ASM 磁盘组使用的 Oracle ASM 冗余级别。*由于 FSx 已在 FSx 集群级别镜像存储,因此您应该 `ONLY`使用外部冗余,这意味着该选项不允许 Oracle ASM 镜像磁盘组的内容。这一点尤其重要,因为 Oracle 数据库数据存储的 NFS 需要 HARD NFS 挂载选项,而这对于在 Oracle 级别镜像 ASM 内容来说是不可取的。

  • 数据库备份。 NetApp提供了 SaaS 版本的SnapCenter software服务,用于在云中进行数据库备份、恢复和克隆,可通过NetApp BlueXP控制台 UI 使用。 NetApp建议实施这样的服务,以实现快速(一分钟内)的 SnapShot 备份、快速(几分钟)的数据库恢复和数据库克隆。

解决方案部署

以下部分提供了分步部署过程。

部署先决条件

Details

部署需要以下先决条件。

  1. 已设置 AWS 账户,并在您的 AWS 账户内创建了必要的 VPC 和网络段。

  2. 从 AWS EC2 控制台,您必须部署两个 EC2 Linux 实例,一个作为主 Oracle DB 服务器,另一个作为可选的备用克隆目标 DB 服务器。有关环境设置的更多详细信息,请参阅上一节中的架构图。还请查看"Linux 实例用户指南"了解更多信息。

  3. 从 AWS EC2 控制台部署Amazon FSx ONTAP存储 HA 集群来托管 Oracle 数据库卷。如果您不熟悉 FSx 存储的部署,请参阅文档"创建 FSx ONTAP文件系统"以获得分步说明。

  4. 步骤 2 和 3 可以使用以下 Terraform 自动化工具包执行,该工具包创建一个名为 ora_01`以及一个名为 `fsx_01。在执行之前,请仔细检查说明并更改变量以适合您的环境。

    git clone https://github.com/NetApp-Automation/na_aws_fsx_ec2_deploy.git
备注 确保您已在 EC2 实例根卷中分配至少 50G,以便有足够的空间来暂存 Oracle 安装文件。

EC2 实例内核配置

Details

满足先决条件后,以 ec2-user 身份登录 EC2 实例,并使用 sudo 以 root 用户身份配置 Linux 内核以进行 Oracle 安装。

  1. 创建暂存目录 `/tmp/archive`文件夹并设置 `777`允许。

    mkdir /tmp/archive
    
    chmod 777 /tmp/archive
  2. 下载 Oracle 二进制安装文件和其他所需的 rpm 文件并将其暂存到 `/tmp/archive`目录。

    请参阅以下安装文件列表以说明 `/tmp/archive`在 EC2 实例上。

    [ec2-user@ip-172-30-15-58 ~]$ ls -l /tmp/archive
    total 10537316
    -rw-rw-r--. 1 ec2-user ec2-user      19112 Mar 21 15:57 compat-libcap1-1.10-7.el7.x86_64.rpm
    -rw-rw-r--  1 ec2-user ec2-user 3059705302 Mar 21 22:01 LINUX.X64_193000_db_home.zip
    -rw-rw-r--  1 ec2-user ec2-user 2889184573 Mar 21 21:09 LINUX.X64_193000_grid_home.zip
    -rw-rw-r--. 1 ec2-user ec2-user     589145 Mar 21 15:56 netapp_linux_unified_host_utilities-7-1.x86_64.rpm
    -rw-rw-r--. 1 ec2-user ec2-user      31828 Mar 21 15:55 oracle-database-preinstall-19c-1.0-2.el8.x86_64.rpm
    -rw-rw-r--  1 ec2-user ec2-user 2872741741 Mar 21 22:31 p34762026_190000_Linux-x86-64.zip
    -rw-rw-r--  1 ec2-user ec2-user 1843577895 Mar 21 22:32 p34765931_190000_Linux-x86-64.zip
    -rw-rw-r--  1 ec2-user ec2-user  124347218 Mar 21 22:33 p6880880_190000_Linux-x86-64.zip
    -rw-r--r--  1 ec2-user ec2-user     257136 Mar 22 16:25 policycoreutils-python-utils-2.9-9.el8.noarch.rpm
  3. 安装 Oracle 19c 预安装 RPM,满足大多数内核配置要求。

    yum install /tmp/archive/oracle-database-preinstall-19c-1.0-2.el8.x86_64.rpm
  4. 下载并安装缺失的 `compat-libcap1`在 Linux 8 中。

    yum install /tmp/archive/compat-libcap1-1.10-7.el7.x86_64.rpm
  5. 从NetApp下载并安装NetApp主机实用程序。

    yum install /tmp/archive/netapp_linux_unified_host_utilities-7-1.x86_64.rpm
  6. 安装 policycoreutils-python-utils,这在 EC2 实例中不可用。

    yum install /tmp/archive/policycoreutils-python-utils-2.9-9.el8.noarch.rpm
  7. 安装开放的JDK版本1.8。

    yum install java-1.8.0-openjdk.x86_64
  8. 安装 nfs-utils。

    yum install nfs-utils
  9. 在当前系统中禁用透明大页面。

    echo never > /sys/kernel/mm/transparent_hugepage/enabled
    echo never > /sys/kernel/mm/transparent_hugepage/defrag

    添加以下行 `/etc/rc.local`禁用 `transparent_hugepage`重启后:

      # Disable transparent hugepages
              if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
                echo never > /sys/kernel/mm/transparent_hugepage/enabled
              fi
              if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
                echo never > /sys/kernel/mm/transparent_hugepage/defrag
              fi
  10. 通过更改禁用 selinux SELINUX=enforcing`到 `SELINUX=disabled。您必须重新启动主机才能使更改生效。

    vi /etc/sysconfig/selinux
  11. 添加以下行到 limit.conf`设置文件描述符限制和堆栈大小(不带引号) `" "

    vi /etc/security/limits.conf
      "*               hard    nofile          65536"
      "*               soft    stack           10240"
  12. 按照以下说明向 EC2 实例添加交换空间:"如何使用交换文件分配内存作为 Amazon EC2 实例中的交换空间?"要添加的具体空间量取决于 RAM 的大小,最高可达 16G。

  13. 添加要用于 asm sysasm 组的 ASM 组

    groupadd asm
  14. 修改 oracle 用户以添加 ASM 作为辅助组(oracle 用户应该在 Oracle 预安装 RPM 安装后创建)。

    usermod -a -G asm oracle
  15. 重启 EC2 实例。

配置并导出要挂载到 EC2 实例主机的 NFS 卷

Details

通过 ssh 以 fsxadmin 用户身份使用 FSx 集群管理 IP 登录 FSx 集群,从命令行配置三个卷来托管 Oracle 数据库二进制文件、数据和日志文件。

  1. 以 fsxadmin 用户身份通过 SSH 登录 FSx 集群。

    ssh fsxadmin@172.30.15.53
  2. 执行以下命令为 Oracle 二进制文件创建卷。

    vol create -volume ora_01_biny -aggregate aggr1 -size 50G -state online  -type RW -junction-path /ora_01_biny -snapshot-policy none -tiering-policy snapshot-only
  3. 执行以下命令为 Oracle 数据创建卷。

    vol create -volume ora_01_data -aggregate aggr1 -size 100G -state online  -type RW -junction-path /ora_01_data -snapshot-policy none -tiering-policy snapshot-only
  4. 执行以下命令为 Oracle 日志创建卷。

    vol create -volume ora_01_logs -aggregate aggr1 -size 100G -state online  -type RW -junction-path /ora_01_logs -snapshot-policy none -tiering-policy snapshot-only
  5. 验证创建的数据库卷。

    vol show

    预计返回结果如下:

    FsxId02ad7bf3476b741df::> vol show
      (vol show)
    FsxId06c3c8b2a7bd56458::> vol show
    Vserver   Volume       Aggregate    State      Type       Size  Available Used%
    --------- ------------ ------------ ---------- ---- ---------- ---------- -----
    svm_ora   ora_01_biny  aggr1        online     RW         50GB    47.50GB    0%
    svm_ora   ora_01_data  aggr1        online     RW        100GB    95.00GB    0%
    svm_ora   ora_01_logs  aggr1        online     RW        100GB    95.00GB    0%
    svm_ora   svm_ora_root aggr1        online     RW          1GB    972.1MB    0%
    4 entries were displayed.

数据库存储配置

Details

现在,在 EC2 实例主机上导入并设置 Oracle 网格基础设施和数据库安装的 FSx 存储。

  1. 使用您的 SSH 密钥和 EC2 实例 IP 地址,以 ec2-user 身份通过 SSH 登录 EC2 实例。

    ssh -i ora_01.pem ec2-user@172.30.15.58
  2. 创建 /u01 目录来挂载 Oracle 二进制文件系统

    sudo mkdir /u01
  3. 挂载二进制卷到 /u01,更改为您的 FSx NFS lif IP 地址。如果您通过NetApp自动化工具包部署了 FSx 集群,则 FSx 虚拟存储服务器 NFS lif IP 地址将在资源配置执行结束时列在输出中。否则,可以从 AWS FSx 控制台 UI 中检索它。

    sudo mount -t nfs 172.30.15.19:/ora_01_biny /u01 -o rw,bg,hard,vers=3,proto=tcp,timeo=600,rsize=65536,wsize=65536
  4. 改变 `/u01`挂载点所有权归 Oracle 用户及其关联的主要组。

    sudo chown oracle:oinstall /u01
  5. 创建/oradata目录来挂载Oracle数据文件系统

    sudo mkdir /oradata
  6. 挂载数据卷到 /oradata,更改为您的 FSx NFS lif IP 地址

    sudo mount -t nfs 172.30.15.19:/ora_01_data /oradata -o rw,bg,hard,vers=3,proto=tcp,timeo=600,rsize=65536,wsize=65536
  7. 改变 `/oradata`挂载点所有权归 Oracle 用户及其关联的主要组。

    sudo chown oracle:oinstall /oradata
  8. 创建 /oralogs 目录以挂载 Oracle 日志文件系统

    sudo mkdir /oralogs
  9. 挂载日志卷到 /oralogs,更改为您的 FSx NFS lif IP 地址

    sudo mount -t nfs 172.30.15.19:/ora_01_logs /oralogs -o rw,bg,hard,vers=3,proto=tcp,timeo=600,rsize=65536,wsize=65536
  10. 改变 `/oralogs`挂载点所有权归 Oracle 用户及其关联的主要组。

    sudo chown oracle:oinstall /oralogs
  11. 添加挂载点 /etc/fstab

    sudo vi /etc/fstab

    添加以下行。

    172.30.15.19:/ora_01_biny       /u01            nfs     rw,bg,hard,vers=3,proto=tcp,timeo=600,rsize=65536,wsize=65536   0       0
    172.30.15.19:/ora_01_data       /oradata        nfs     rw,bg,hard,vers=3,proto=tcp,timeo=600,rsize=65536,wsize=65536   0       0
    172.30.15.19:/ora_01_logs       /oralogs        nfs     rw,bg,hard,vers=3,proto=tcp,timeo=600,rsize=65536,wsize=65536   0       0
  12. sudo 到 oracle 用户,创建 asm 文件夹,用于存放 asm 磁盘文件

    sudo su
    su - oracle
    mkdir /oradata/asm
    mkdir /oralogs/asm
  13. 以 oracle 用户身份创建 asm 数据磁盘文件,更改计数以匹配具有块大小的磁盘大小。

    dd if=/dev/zero of=/oradata/asm/nfs_data_disk01 bs=1M count=20480 oflag=direct
    dd if=/dev/zero of=/oradata/asm/nfs_data_disk02 bs=1M count=20480 oflag=direct
    dd if=/dev/zero of=/oradata/asm/nfs_data_disk03 bs=1M count=20480 oflag=direct
    dd if=/dev/zero of=/oradata/asm/nfs_data_disk04 bs=1M count=20480 oflag=direct
  14. 修改数据盘文件权限为640

    chmod 640 /oradata/asm/*
  15. 以 oracle 用户身份创建 asm 日志磁盘文件,并将计数更改为与块大小匹配的磁盘大小。

    dd if=/dev/zero of=/oralogs/asm/nfs_logs_disk01 bs=1M count=40960 oflag=direct
    dd if=/dev/zero of=/oralogs/asm/nfs_logs_disk02 bs=1M count=40960 oflag=direct
  16. 将日志文件权限更改为 640

    chmod 640 /oralogs/asm/*
  17. 重新启动 EC2 实例主机。

Oracle 网格基础设施安装

Details
  1. 通过 SSH 以 ec2-user 身份登录 EC2 实例,并通过取消注释来启用密码验证 PasswordAuthentication yes`然后注释掉 `PasswordAuthentication no

    sudo vi /etc/ssh/sshd_config
  2. 重新启动 sshd 服务。

    sudo systemctl restart sshd
  3. 重置 Oracle 用户密码。

    sudo passwd oracle
  4. 以 Oracle Restart 软件所有者用户 (oracle) 身份登录。创建 Oracle 目录如下:

    mkdir -p /u01/app/oracle
    mkdir -p /u01/app/oraInventory
  5. 更改目录权限设置。

    chmod -R 775 /u01/app
  6. 创建网格主目录并更改至该目录。

    mkdir -p /u01/app/oracle/product/19.0.0/grid
    cd /u01/app/oracle/product/19.0.0/grid
  7. 解压网格安装文件。

    unzip -q /tmp/archive/LINUX.X64_193000_grid_home.zip
  8. 从网格主页中删除 `OPatch`目录。

    rm -rf OPatch
  9. 从网格主页复制 `p6880880_190000_Linux-x86-64.zip`到grid_home,然后解压。

    cp /tmp/archive/p6880880_190000_Linux-x86-64.zip .
    unzip p6880880_190000_Linux-x86-64.zip
  10. 从网格主页,修改 cv/admin/cvu_config,取消注释并替换 CV_ASSUME_DISTID=OEL5`和 `CV_ASSUME_DISTID=OL7

    vi cv/admin/cvu_config
  11. 准备一个 `gridsetup.rsp`文件进行静默安装,并将 rsp 文件放在 `/tmp/archive`目录。 rsp 文件应涵盖 A、B 和 G 部分,并包含以下信息:

    INVENTORY_LOCATION=/u01/app/oraInventory
    oracle.install.option=HA_CONFIG
    ORACLE_BASE=/u01/app/oracle
    oracle.install.asm.OSDBA=dba
    oracle.install.asm.OSOPER=oper
    oracle.install.asm.OSASM=asm
    oracle.install.asm.SYSASMPassword="SetPWD"
    oracle.install.asm.diskGroup.name=DATA
    oracle.install.asm.diskGroup.redundancy=EXTERNAL
    oracle.install.asm.diskGroup.AUSize=4
    oracle.install.asm.diskGroup.disks=/oradata/asm/nfs_data_disk01,/oradata/asm/nfs_data_disk02,/oradata/asm/nfs_data_disk03,/oradata/asm/nfs_data_disk04
    oracle.install.asm.diskGroup.diskDiscoveryString=/oradata/asm/*,/oralogs/asm/*
    oracle.install.asm.monitorPassword="SetPWD"
    oracle.install.asm.configureAFD=false
  12. 以 root 用户身份登录 EC2 实例。

  13. 安装 cvuqdisk-1.0.10-1.rpm

    rpm -ivh /u01/app/oracle/product/19.0.0/grid/cv/rpm/cvuqdisk-1.0.10-1.rpm
  14. 以 Oracle 用户身份登录 EC2 实例并提取补丁 `/tmp/archive`文件夹。

    unzip p34762026_190000_Linux-x86-64.zip
  15. 从 grid home /u01/app/oracle/product/19.0.0/grid 并以 oracle 用户身份启动 `gridSetup.sh`用于电网基础设施安装。

     ./gridSetup.sh -applyRU /tmp/archive/34762026/ -silent -responseFile /tmp/archive/gridsetup.rsp

    忽略有关电网基础设施错误组的警告。我们使用单个 Oracle 用户来管理 Oracle Restart,因此这是预料之中的。

  16. 以 root 用户身份执行以下脚本:

    /u01/app/oraInventory/orainstRoot.sh
    
    /u01/app/oracle/product/19.0.0/grid/root.sh
  17. 以Oracle用户执行以下命令完成配置:

    /u01/app/oracle/product/19.0.0/grid/gridSetup.sh -executeConfigTools -responseFile /tmp/archive/gridsetup.rsp -silent
  18. 以 Oracle 用户身份创建 LOGS 磁盘组。

    bin/asmca -silent -sysAsmPassword 'yourPWD' -asmsnmpPassword 'yourPWD' -createDiskGroup -diskGroupName LOGS -disk '/oralogs/asm/nfs_logs_disk*' -redundancy EXTERNAL -au_size 4
  19. 以 Oracle 用户身份,在安装配置后验证网格服务。

    bin/crsctl stat res -t
    +
    Name                Target  State        Server                   State details
    Local Resources
    ora.DATA.dg         ONLINE  ONLINE       ip-172-30-15-58          STABLE
    ora.LISTENER.lsnr   ONLINE  ONLINE       ip-172-30-15-58          STABLE
    ora.LOGS.dg         ONLINE  ONLINE       ip-172-30-15-58          STABLE
    ora.asm             ONLINE  ONLINE       ip-172-30-15-58          Started,STABLE
    ora.ons             OFFLINE OFFLINE      ip-172-30-15-58          STABLE
    Cluster Resources
    ora.cssd            ONLINE  ONLINE       ip-172-30-15-58          STABLE
    ora.diskmon         OFFLINE OFFLINE                               STABLE
    ora.driver.afd      ONLINE  ONLINE       ip-172-30-15-58          STABLE
    ora.evmd            ONLINE  ONLINE       ip-172-30-15-58          STABLE

Oracle数据库安装

Details
  1. 以 Oracle 用户身份登录并取消设置 `$ORACLE_HOME`和 `$ORACLE_SID`如果已设置。

    unset ORACLE_HOME
    unset ORACLE_SID
  2. 创建 Oracle DB 主目录并更改至该目录。

    mkdir /u01/app/oracle/product/19.0.0/db1
    cd /u01/app/oracle/product/19.0.0/db1
  3. 解压缩 Oracle DB 安装文件。

    unzip -q /tmp/archive/LINUX.X64_193000_db_home.zip
  4. 从数据库主目录删除 `OPatch`目录。

    rm -rf OPatch
  5. 从 DB 主页复制 p6880880_190000_Linux-x86-64.zip`到 `grid_home,然后解压缩。

    cp /tmp/archive/p6880880_190000_Linux-x86-64.zip .
    unzip p6880880_190000_Linux-x86-64.zip
  6. 从 DB 主页修改 cv/admin/cvu_config,并取消注释并替换 CV_ASSUME_DISTID=OEL5`和 `CV_ASSUME_DISTID=OL7

    vi cv/admin/cvu_config
  7. 从 `/tmp/archive`目录中,解压DB 19.18 RU补丁。

    unzip p34765931_190000_Linux-x86-64.zip
  8. 准备 DB 静默安装 rsp 文件 `/tmp/archive/dbinstall.rsp`具有以下值的目录:

    oracle.install.option=INSTALL_DB_SWONLY
    UNIX_GROUP_NAME=oinstall
    INVENTORY_LOCATION=/u01/app/oraInventory
    ORACLE_HOME=/u01/app/oracle/product/19.0.0/db1
    ORACLE_BASE=/u01/app/oracle
    oracle.install.db.InstallEdition=EE
    oracle.install.db.OSDBA_GROUP=dba
    oracle.install.db.OSOPER_GROUP=oper
    oracle.install.db.OSBACKUPDBA_GROUP=oper
    oracle.install.db.OSDGDBA_GROUP=dba
    oracle.install.db.OSKMDBA_GROUP=dba
    oracle.install.db.OSRACDBA_GROUP=dba
    oracle.install.db.rootconfig.executeRootScript=false
  9. 从 db1 home /u01/app/oracle/product/19.0.0/db1 执行静默纯软件 DB 安装。

     ./runInstaller -applyRU /tmp/archive/34765931/ -silent -ignorePrereqFailure -responseFile /tmp/archive/dbinstall.rsp
  10. 以 root 用户身份运行 `root.sh`仅安装软件后的脚本。

    /u01/app/oracle/product/19.0.0/db1/root.sh
  11. 以 Oracle 用户身份创建 `dbca.rsp`包含以下条目的文件:

    gdbName=db1.demo.netapp.com
    sid=db1
    createAsContainerDatabase=true
    numberOfPDBs=3
    pdbName=db1_pdb
    useLocalUndoForPDBs=true
    pdbAdminPassword="yourPWD"
    templateName=General_Purpose.dbc
    sysPassword="yourPWD"
    systemPassword="yourPWD"
    dbsnmpPassword="yourPWD"
    storageType=ASM
    diskGroupName=DATA
    characterSet=AL32UTF8
    nationalCharacterSet=AL16UTF16
    listeners=LISTENER
    databaseType=MULTIPURPOSE
    automaticMemoryManagement=false
    totalMemory=8192
    备注 根据 EC2 实例主机中的可用内存设置总内存。 Oracle 分配 75% `totalMemory`到数据库实例 SGA 或缓冲区缓存。
  12. 以 Oracle 用户身份,使用 dbca 启动 DB 创建。

    bin/dbca -silent -createDatabase -responseFile /tmp/archive/dbca.rsp
    
    output:
    Prepare for db operation
    7% complete
    Registering database with Oracle Restart
    11% complete
    Copying database files
    33% complete
    Creating and starting Oracle instance
    35% complete
    38% complete
    42% complete
    45% complete
    48% complete
    Completing Database Creation
    53% complete
    55% complete
    56% complete
    Creating Pluggable Databases
    60% complete
    64% complete
    69% complete
    78% complete
    Executing Post Configuration Actions
    100% complete
    Database creation complete. For details check the logfiles at:
     /u01/app/oracle/cfgtoollogs/dbca/db1.
    Database Information:
    Global Database Name:db1.demo.netapp.com
    System Identifier(SID):db1
    Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/db1/db1.log" for further details.
  13. 以 Oracle 用户身份,在创建数据库后验证 Oracle Restart HA 服务。

    [oracle@ip-172-30-15-58 db1]$ ../grid/bin/crsctl stat res -t
    --------------------------------------------------------------------------------
    Name           Target  State        Server                   State details
    --------------------------------------------------------------------------------
    Local Resources
    --------------------------------------------------------------------------------
    ora.DATA.dg
                   ONLINE  ONLINE       ip-172-30-15-58          STABLE
    ora.LISTENER.lsnr
                   ONLINE  ONLINE       ip-172-30-15-58          STABLE
    ora.LOGS.dg
                   ONLINE  ONLINE       ip-172-30-15-58          STABLE
    ora.asm
                   ONLINE  ONLINE       ip-172-30-15-58          Started,STABLE
    ora.ons
                   OFFLINE OFFLINE      ip-172-30-15-58          STABLE
    --------------------------------------------------------------------------------
    Cluster Resources
    --------------------------------------------------------------------------------
    ora.cssd
          1        ONLINE  ONLINE       ip-172-30-15-58          STABLE
    ora.db1.db
          1        ONLINE  ONLINE       ip-172-30-15-58          Open,HOME=/u01/app/o
                                                                 racle/product/19.0.0
                                                                 /db1,STABLE
    ora.diskmon
          1        OFFLINE OFFLINE                               STABLE
    ora.evmd
          1        ONLINE  ONLINE       ip-172-30-15-58          STABLE
    --------------------------------------------------------------------------------
    [oracle@ip-172-30-15-58 db1]$
  14. 设置 Oracle 用户 .bash_profile

    vi ~/.bash_profile
  15. 添加以下条目:

    export ORACLE_HOME=/u01/app/oracle/product/19.0.0/db1
    export ORACLE_SID=db1
    export PATH=$PATH:$ORACLE_HOME/bin
    alias asm='export ORACLE_HOME=/u01/app/oracle/product/19.0.0/grid;export ORACLE_SID=+ASM;export PATH=$PATH:$ORACLE_HOME/bin'
  16. 验证创建的 CDB/PDB。

    . ~/.bash_profile
    
    sqlplus / as sysdba
    
    SQL> select name, open_mode from v$database;
    
    NAME      OPEN_MODE
    
    DB1       READ WRITE
    
    SQL> select name from v$datafile;
    
    NAME
    
    +DATA/DB1/DATAFILE/system.256.1132176177
    +DATA/DB1/DATAFILE/sysaux.257.1132176221
    +DATA/DB1/DATAFILE/undotbs1.258.1132176247
    +DATA/DB1/86B637B62FE07A65E053F706E80A27CA/DATAFILE/system.265.1132177009
    +DATA/DB1/86B637B62FE07A65E053F706E80A27CA/DATAFILE/sysaux.266.1132177009
    +DATA/DB1/DATAFILE/users.259.1132176247
    +DATA/DB1/86B637B62FE07A65E053F706E80A27CA/DATAFILE/undotbs1.267.1132177009
    +DATA/DB1/F7852758DCD6B800E0533A0F1EAC1DC6/DATAFILE/system.271.1132177853
    +DATA/DB1/F7852758DCD6B800E0533A0F1EAC1DC6/DATAFILE/sysaux.272.1132177853
    +DATA/DB1/F7852758DCD6B800E0533A0F1EAC1DC6/DATAFILE/undotbs1.270.1132177853
    +DATA/DB1/F7852758DCD6B800E0533A0F1EAC1DC6/DATAFILE/users.274.1132177871
    
    NAME
    
    +DATA/DB1/F785288BBCD1BA78E0533A0F1EACCD6F/DATAFILE/system.276.1132177871
    +DATA/DB1/F785288BBCD1BA78E0533A0F1EACCD6F/DATAFILE/sysaux.277.1132177871
    +DATA/DB1/F785288BBCD1BA78E0533A0F1EACCD6F/DATAFILE/undotbs1.275.1132177871
    +DATA/DB1/F785288BBCD1BA78E0533A0F1EACCD6F/DATAFILE/users.279.1132177889
    +DATA/DB1/F78529A14DD8BB18E0533A0F1EACB8ED/DATAFILE/system.281.1132177889
    +DATA/DB1/F78529A14DD8BB18E0533A0F1EACB8ED/DATAFILE/sysaux.282.1132177889
    +DATA/DB1/F78529A14DD8BB18E0533A0F1EACB8ED/DATAFILE/undotbs1.280.1132177889
    +DATA/DB1/F78529A14DD8BB18E0533A0F1EACB8ED/DATAFILE/users.284.1132177907
    
    19 rows selected.
    
    SQL> show pdbs
    
        CON_ID CON_NAME                       OPEN MODE  RESTRICTED
    
             2 PDB$SEED                       READ ONLY  NO
             3 DB1_PDB1                       READ WRITE NO
             4 DB1_PDB2                       READ WRITE NO
             5 DB1_PDB3                       READ WRITE NO
    SQL>
  17. 以 oracle 用户身份,切换到 Oracle 数据库主目录 /u01/app/oracle/product/19.0.0/db1 并启用 dNFS

    cd /u01/app/oracle/product/19.0.0/db1
    
    mkdir rdbms/lib/odm
    
    cp lib/libnfsodm19.so rdbms/lib/odm/
  18. 在ORACLE_HOME中配置oranfstab文件

    vi $ORACLE_HOME/dbs/oranfstab
    
    add following entries:
    
    server: fsx_01
    local: 172.30.15.58 path: 172.30.15.19
    nfs_version: nfsv3
    export: /ora_01_biny mount: /u01
    export: /ora_01_data mount: /oradata
    export: /ora_01_logs mount: /oralogs
  19. 以 oracle 用户身份,从 sqlplus 登录数据库并将 DB 恢复大小和位置设置为 +LOGS 磁盘组。

    . ~/.bash_profile
    
    sqlplus / as sysdba
    
    alter system set db_recovery_file_dest_size = 80G scope=both;
    
    alter system set db_recovery_file_dest = '+LOGS' scope=both;
  20. 启用存档日志模式并重启 Oracle DB 实例

    shutdown immediate;
    
    startup mount;
    
    alter database archivelog;
    
    alter database open;
    
    alter system switch logfile;
  21. 实例重启后验证 DB 日志模式和 dNFS

    SQL> select name, log_mode from v$database;
    
    NAME      LOG_MODE
    --------- ------------
    DB1       ARCHIVELOG
    
    SQL> select svrname, dirname from v$dnfs_servers;
    
    SVRNAME
    --------------------------------------------------------------------------------
    DIRNAME
    --------------------------------------------------------------------------------
    fsx_01
    /ora_01_data
    
    fsx_01
    /ora_01_biny
    
    fsx_01
    /ora_01_logs
  22. 验证 Oracle ASM

    [oracle@ip-172-30-15-58 db1]$ asm
    [oracle@ip-172-30-15-58 db1]$ sqlplus / as sysasm
    
    SQL*Plus: Release 19.0.0.0.0 - Production on Tue May 9 20:39:39 2023
    Version 19.18.0.0.0
    
    Copyright (c) 1982, 2022, Oracle.  All rights reserved.
    
    
    Connected to:
    Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
    Version 19.18.0.0.0
    
    SQL> set lin 200
    SQL> col path form a30
    SQL> select name, path, header_status, mount_status, state from v$asm_disk;
    
    NAME                           PATH                           HEADER_STATU MOUNT_S STATE
    ------------------------------ ------------------------------ ------------ ------- --------
    DATA_0002                      /oradata/asm/nfs_data_disk01   MEMBER       CACHED  NORMAL
    DATA_0000                      /oradata/asm/nfs_data_disk02   MEMBER       CACHED  NORMAL
    DATA_0001                      /oradata/asm/nfs_data_disk03   MEMBER       CACHED  NORMAL
    DATA_0003                      /oradata/asm/nfs_data_disk04   MEMBER       CACHED  NORMAL
    LOGS_0000                      /oralogs/asm/nfs_logs_disk01   MEMBER       CACHED  NORMAL
    LOGS_0001                      /oralogs/asm/nfs_logs_disk02   MEMBER       CACHED  NORMAL
    
    6 rows selected.
    
    
    SQL> select name, state, ALLOCATION_UNIT_SIZE, TOTAL_MB, FREE_MB from v$asm_diskgroup;
    
    NAME                           STATE       ALLOCATION_UNIT_SIZE   TOTAL_MB    FREE_MB
    ------------------------------ ----------- -------------------- ---------- ----------
    DATA                           MOUNTED                  4194304      81920      73536
    LOGS                           MOUNTED                  4194304      81920      81640
    
    This completes Oracle 19c version 19.18 Restart deployment on an Amazon FSx ONTAP and EC2 compute instance with NFS/ASM. If desired, NetApp recommends relocating the Oracle control file and online log files to the +LOGS disk group.

自动部署选项

NetApp将发布与 Ansible 配套的全自动解决方案部署工具包,以促进该解决方案的实施。请回来检查工具包是否可用。发布后会在这里发布链接。

使用SnapCenter服务备份、恢复和克隆 Oracle 数据库

目前,具有 NFS 和 ASM 存储选项的 Oracle 数据库仅受传统SnapCenter Server UI 工具支持,请参阅"采用SnapCenter的混合云数据库解决方案"有关使用NetApp SnapCenter UI 工具备份、恢复和克隆 Oracle 数据库的详细信息。