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

TR-4979:在 VMware Cloud on AWS 中使用客户机安装的 FSx ONTAP实现简化的自主管理 Oracle

贡献者 netapp-revathid kevin-hoke

Allen Cao、Niyaz Mohamed, NetApp

该解决方案概述并详细介绍了在 AWS 中的 VMware Cloud 中部署和保护 Oracle 的情况,其中使用 FSx ONTAP作为主数据库存储,并使用 asm 作为卷管理器在独立 ReStart 中配置 Oracle 数据库。

目的

几十年来,企业一直在私有数据中心的 VMware 上运行 Oracle。 AWS 上的 VMware Cloud (VMC) 提供一键式解决方案,将 VMware 的企业级软件定义数据中心 (SDDC) 软件引入 AWS 云的专用、弹性、裸机基础设施。 AWS FSx ONTAP为 VMC SDDC 提供优质存储和数据结构,使客户能够在基于 vSphere 的私有云、公共云和混合云环境中运行 Oracle 等业务关键型应用程序,并优化对 AWS 服务的访问。无论是现有还是新的 Oracle 工作负载,AWS 上的 VMC 均可在 VMware 上提供熟悉、简化且自我管理的 Oracle 环境,并具备 AWS 云的所有优势,同时将所有平台管理和优化工作交给 VMware。

本文档演示了如何在 VMC 环境中使用Amazon FSx ONTAP作为主数据库存储来部署和保护 Oracle 数据库。 Oracle 数据库可以作为直接 VM 客户机挂载的 LUN 或 NFS 挂载的 VMware VMDK 数据存储磁盘部署到 FSx 存储上的 VMC。本技术报告重点介绍如何将 Oracle 数据库部署为使用 iSCSI 协议和 Oracle ASM 的 VMC 集群中的 VM 的直接客户机安装的 FSx 存储。我们还演示了如何使用NetApp SnapCenter UI 工具备份、恢复和克隆 Oracle 数据库,以用于开发/测试或其他用例,以便在 AWS 上的 VMC 中进行存储高效的数据库操作。

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

  • 在 AWS 上的 VMC 中部署 Oracle 数据库,并使用Amazon FSx ONTAP作为主数据库存储

  • 使用NetApp SnapCenter工具在 AWS 上的 VMC 中备份和恢复 Oracle 数据库

  • 使用NetApp SnapCenter工具在 AWS 上的 VMC 中克隆 Oracle 数据库以用于开发/测试或其他用例

受众

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

  • 一位 DBA 希望使用Amazon FSx ONTAP在 AWS 上的 VMC 中部署 Oracle

  • 一位数据库解决方案架构师,希望在 AWS 云上的 VMC 中测试 Oracle 工作负载

  • 一位存储管理员希望使用Amazon FSx ONTAP部署和管理部署到 AWS 上的 VMC 的 Oracle 数据库

  • 希望在 AWS 云上的 VMC 中建立 Oracle 数据库的应用程序所有者

解决方案测试和验证环境

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

架构

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

硬件和软件组件

硬件

FSx ONTAP存储

AWS 提供的当前版本

一个与 VMC 位于同一 VPC 和可用区域中的 FSx ONTAP HA 集群

VMC SDDC 集群

Amazon EC2 i3.metal 单节点/Intel Xeon E5-2686 CPU,36核/512G RAM

10.37 TB vSAN存储

软件

红帽Linux

RHEL-8.6,4.18.0-372.9.1.el8.x86_64 内核

部署 RedHat 订阅进行测试

Windows Server

2022 标准版,10.0.20348 内部版本 20348

托管SnapCenter服务器

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 服务器

版本 4.9P1

工作组部署

BlueXP backup and recovery

版本 1.0

部署为 ova vSphere 插件虚拟机

VMware vSphere

版本 8.0.1.00300

VMware Tools,版本:11365 - Linux,12352 - Windows

打开 JDK

版本 java-1.8.0-openjdk.x86_64

数据库虚拟机上的SnapCenter插件要求

AWS 上的 VMC 中的 Oracle 数据库配置

服务器

数据库

数据库存储

ora_01

cdb1(cdb1_pdb1,cdb1_pdb2,cdb1_pdb3)

FSx ONTAP上的 VMDK 数据存储

ora_01

cdb2(cdb2_pdb)

FSx ONTAP上的 VMDK 数据存储

ora_02

cdb3(cdb3_pdb1,cdb3_pdb2,cdb3_pdb3)

直接客户机安装的 FSx ONTAP

ora_02

cdb4(cdb4_pdb)

直接客户机安装的 FSx ONTAP

部署考虑的关键因素

  • *FSx 到 VMC 的连接。*当您在 VMware Cloud on AWS 上部署 SDDC 时,它会在 AWS 帐户和专用于您的组织并由 VMware 管理的 VPC 中创建。您还必须将 SDDC 连接到属于您的 AWS 帐户(称为客户 AWS 帐户)。此连接允许您的 SDDC 访问属于您的客户帐户的 AWS 服务。 FSx ONTAP是部署在您的客户账户中的 AWS 服务。一旦 VMC SDDC 连接到您的客户帐户,FSx 存储即可供 VMC SDDC 中的虚拟机直接安装。

  • *FSx 存储 HA 集群单区域或多区域部署。*在这些测试和验证中,我们在单个 AWS 可用区中部署了一个 FSx HA 集群。 NetApp还建议在同一可用区内部署 FSx ONTAP和 VMware Cloud on AWS,以获得更好的性能并避免可用区之间的数据传输费用。

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

  • Oracle 数据和日志布局。在我们的测试和验证中,我们分别部署了两个 ASM 磁盘组用于数据和日志。在 +DATA asm 磁盘组中,我们在数据卷中配置了四个 LUN。在 +LOGS asm 磁盘组中,我们在日志卷中配置了两个 LUN。通常, Amazon FSx ONTAP卷内布局的多个 LUN 可提供更好的性能。

  • iSCSI 配置。 VMC SDDC 中的数据库虚拟机通过 iSCSI 协议连接到 FSx 存储。通过仔细分析 Oracle AWR 报告来确定应用程序和 iSCSI 流量吞吐量要求,从而衡量 Oracle 数据库峰值 I/O 吞吐量要求,这一点很重要。 NetApp还建议为两个 FSx iSCSI 端点分配四个 iSCSI 连接,并正确配置多路径。

  • *您创建的每个 Oracle ASM 磁盘组使用的 Oracle ASM 冗余级别。*由于 FSx ONTAP已经在 FSx 集群级别镜像存储,因此您应该使用外部冗余,这意味着该选项不允许 Oracle ASM 镜像磁盘组的内容。

  • 数据库备份。 NetApp提供了SnapCenter software套件,用于数据库备份、恢复和克隆,并具有用户友好的 UI 界面。 NetApp建议实施这样的管理工具,以实现快速(一分钟内)的 SnapShot 备份、快速(几分钟内)的数据库恢复和数据库克隆。

解决方案部署

以下部分提供了在 AWS 上的 VMC 中部署 Oracle 19c 的分步过程,其中将 FSx ONTAP存储直接安装到单节点中的 DB VM,使用 Oracle ASM 作为数据库卷管理器重新启动配置。

部署先决条件

Details

部署需要以下先决条件。

  1. 已创建使用 VMware Cloud on AWS 的软件定义数据中心 (SDDC)。有关如何在 VMC 中创建 SDDC 的详细说明,请参阅 VMware 文档"VMware Cloud on AWS 入门"

  2. 已设置 AWS 账户,并在您的 AWS 账户内创建了必要的 VPC 和网络段。 AWS 帐户已链接到您的 VMC SDDC。

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

  4. 上述步骤可以使用以下 Terraform 自动化工具包执行,该工具包创建一个 EC2 实例作为 VMC 中通过 SSH 和 FSx 文件系统访问 SDDC 的跳转主机。在执行之前,请仔细查看说明并更改变量以适合您的环境。

    git clone https://github.com/NetApp-Automation/na_aws_fsx_ec2_deploy.git
  5. 在 AWS 上的 VMware SDDC 中构建虚拟机,以托管要在 VMC 中部署的 Oracle 环境。在我们的演示中,我们构建了两个 Linux VM 作为 Oracle DB 服务器,一个 Windows 服务器作为SnapCenter服务器,以及一个可选的 Linux 服务器作为 Ansible 控制器,以便在需要时自动安装或配置 Oracle。以下是解决方案验证的实验室环境快照。

    显示 VMC SDDC 测试环境的屏幕截图。

  6. 另外, NetApp还提供多个自动化工具包,以便在适用时运行 Oracle 部署和配置。

备注 确保您已在 Oracle VM 根卷中分配至少 50G,以便有足够的空间来存放 Oracle 安装文件。

DB VM 内核配置

Details

在满足先决条件后,通过 SSH 以管理员用户身份登录 Oracle VM,并以 root 用户身份使用 sudo 配置 Linux 内核以进行 Oracle 安装。 Oracle 安装文件可以暂存于 AWS S3 存储桶中并传输到 VM 中。

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

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

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

    [admin@ora_02 ~]$ ls -l /tmp/archive/
    total 10539364
    -rw-rw-r--. 1 admin  admin         19112 Oct  4 17:04 compat-libcap1-1.10-7.el7.x86_64.rpm
    -rw-rw-r--. 1 admin  admin    3059705302 Oct  4 17:10 LINUX.X64_193000_db_home.zip
    -rw-rw-r--. 1 admin  admin    2889184573 Oct  4 17:11 LINUX.X64_193000_grid_home.zip
    -rw-rw-r--. 1 admin  admin        589145 Oct  4 17:04 netapp_linux_unified_host_utilities-7-1.x86_64.rpm
    -rw-rw-r--. 1 admin  admin         31828 Oct  4 17:04 oracle-database-preinstall-19c-1.0-2.el8.x86_64.rpm
    -rw-rw-r--. 1 admin  admin    2872741741 Oct  4 17:12 p34762026_190000_Linux-x86-64.zip
    -rw-rw-r--. 1 admin  admin    1843577895 Oct  4 17:13 p34765931_190000_Linux-x86-64.zip
    -rw-rw-r--. 1 admin  admin     124347218 Oct  4 17:13 p6880880_190000_Linux-x86-64.zip
    -rw-rw-r--. 1 admin  admin        257136 Oct  4 17:04 policycoreutils-python-utils-2.9-9.el8.noarch.rpm
    [admin@ora_02 ~]$
  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

    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. 安装 iSCSI 启动器实用程序。

    yum install iscsi-initiator-utils
  9. 安装 sg3_utils。

    yum install sg3_utils
  10. 安装设备映射器多路径。

    yum install device-mapper-multipath
  11. 在当前系统中禁用透明大页面。

    echo never > /sys/kernel/mm/transparent_hugepage/enabled
    echo never > /sys/kernel/mm/transparent_hugepage/defrag
  12. 添加以下行 `/etc/rc.local`禁用 `transparent_hugepage`重启后。

    vi /etc/rc.local
      # 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
  13. 通过更改禁用 selinux SELINUX=enforcing`到 `SELINUX=disabled。您必须重新启动主机才能使更改生效。

    vi /etc/sysconfig/selinux
  14. 添加以下行到 `limit.conf`设置文件描述符限制和堆栈大小。

    vi /etc/security/limits.conf
    *               hard    nofile          65536
    *               soft    stack           10240
  15. 如果没有配置交换空间,请使用以下指令为 DB VM 添加交换空间:"如何使用交换文件分配内存作为 Amazon EC2 实例中的交换空间?"要添加的具体空间量取决于 RAM 的大小,最高可达 16G。

  16. 改变 `node.session.timeo.replacement_timeout`在 `iscsi.conf`配置文件从120秒减少到5秒。

    vi /etc/iscsi/iscsid.conf
  17. 在 EC2 实例上启用并启动 iSCSI 服务。

    systemctl enable iscsid
    systemctl start iscsid
  18. 检索用于数据库 LUN 映射的 iSCSI 启动器地址。

    cat /etc/iscsi/initiatorname.iscsi
  19. 为 asm 管理用户(oracle)添加 asm 组。

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

    usermod -a -G asmadmin oracle
    usermod -a -G asmdba oracle
    usermod -a -G asmoper oracle
  21. 如果 Linux 防火墙处于活动状态,请停止并禁用它。

    systemctl stop firewalld
    systemctl disable firewalld
  22. 通过取消注释为管理员用户启用无密码 sudo # %wheel ALL=(ALL) NOPASSWD: ALL /etc/sudoers 文件中的行。更改文件权限以进行编辑。

    chmod 640 /etc/sudoers
    vi /etc/sudoers
    chmod 440 /etc/sudoers
  23. 重启 EC2 实例。

配置 FSx ONTAP LUN 并将其映射到 DB VM

Details

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

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

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

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

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

    vol create -volume ora_02_logs -aggregate aggr1 -size 100G -state online  -type RW -snapshot-policy none -tiering-policy snapshot-only
  5. 验证创建的卷。

    vol show ora*

    命令输出:

    FsxId0c00cec8dad373fd1::> vol show ora*
    Vserver   Volume       Aggregate    State      Type       Size  Available Used%
    --------- ------------ ------------ ---------- ---- ---------- ---------- -----
    nim       ora_02_biny  aggr1        online     RW         50GB    22.98GB   51%
    nim       ora_02_data  aggr1        online     RW        100GB    18.53GB   80%
    nim       ora_02_logs  aggr1        online     RW         50GB     7.98GB   83%
  6. 在数据库二进制卷内创建二进制 LUN。

    lun create -path /vol/ora_02_biny/ora_02_biny_01 -size 40G -ostype linux
  7. 在数据库数据卷内创建数据 LUN。

    lun create -path /vol/ora_02_data/ora_02_data_01 -size 20G -ostype linux
    lun create -path /vol/ora_02_data/ora_02_data_02 -size 20G -ostype linux
    lun create -path /vol/ora_02_data/ora_02_data_03 -size 20G -ostype linux
    lun create -path /vol/ora_02_data/ora_02_data_04 -size 20G -ostype linux
  8. 在数据库日志卷内创建日志 LUN。

    lun create -path /vol/ora_02_logs/ora_02_logs_01 -size 40G -ostype linux
    lun create -path /vol/ora_02_logs/ora_02_logs_02 -size 40G -ostype linux
  9. 使用从上面的 EC2 内核配置的第 14 步检索到的启动器为 EC2 实例创建一个 igroup。

    igroup create -igroup ora_02 -protocol iscsi -ostype linux -initiator iqn.1994-05.com.redhat:f65fed7641c2
  10. 将 LUN 映射到上面创建的 igroup。为每个附加 LUN 依次增加 LUN ID。

    lun map -path /vol/ora_02_biny/ora_02_biny_01 -igroup ora_02 -vserver svm_ora -lun-id 0
    lun map -path /vol/ora_02_data/ora_02_data_01 -igroup ora_02 -vserver svm_ora -lun-id 1
    lun map -path /vol/ora_02_data/ora_02_data_02 -igroup ora_02 -vserver svm_ora -lun-id 2
    lun map -path /vol/ora_02_data/ora_02_data_03 -igroup ora_02 -vserver svm_ora -lun-id 3
    lun map -path /vol/ora_02_data/ora_02_data_04 -igroup ora_02 -vserver svm_ora -lun-id 4
    lun map -path /vol/ora_02_logs/ora_02_logs_01 -igroup ora_02 -vserver svm_ora -lun-id 5
    lun map -path /vol/ora_02_logs/ora_02_logs_02 -igroup ora_02 -vserver svm_ora -lun-id 6
  11. 验证 LUN 映射。

    mapping show

    预计返回结果如下:

    FsxId0c00cec8dad373fd1::> mapping show
      (lun mapping show)
    Vserver    Path                                      Igroup   LUN ID  Protocol
    ---------- ----------------------------------------  -------  ------  --------
    nim        /vol/ora_02_biny/ora_02_u01_01            ora_02        0  iscsi
    nim        /vol/ora_02_data/ora_02_u02_01            ora_02        1  iscsi
    nim        /vol/ora_02_data/ora_02_u02_02            ora_02        2  iscsi
    nim        /vol/ora_02_data/ora_02_u02_03            ora_02        3  iscsi
    nim        /vol/ora_02_data/ora_02_u02_04            ora_02        4  iscsi
    nim        /vol/ora_02_logs/ora_02_u03_01            ora_02        5  iscsi
    nim        /vol/ora_02_logs/ora_02_u03_02            ora_02        6  iscsi

数据库虚拟机存储配置

Details

现在,导入并设置 VMC 数据库 VM 上 Oracle 网格基础架构和数据库安装的 FSx ONTAP存储。

  1. 从 Windows 跳转服务器使用 Putty 以管理员用户身份通过 SSH 登录到 DB VM。

  2. 使用 SVM iSCSI IP 地址发现 FSx iSCSI 端点。更改为特定于您的环境的门户地址。

    sudo iscsiadm iscsiadm --mode discovery --op update --type sendtargets --portal 10.49.0.12
  3. 通过登录每个目标建立 iSCSI 会话。

    sudo iscsiadm --mode node -l all

    该命令的预期输出是:

    [ec2-user@ip-172-30-15-58 ~]$ sudo iscsiadm --mode node -l all
    Logging in to [iface: default, target: iqn.1992-08.com.netapp:sn.1f795e65c74911edb785affbf0a2b26e:vs.3, portal: 10.49.0.12,3260]
    Logging in to [iface: default, target: iqn.1992-08.com.netapp:sn.1f795e65c74911edb785affbf0a2b26e:vs.3, portal: 10.49.0.186,3260]
    Login to [iface: default, target: iqn.1992-08.com.netapp:sn.1f795e65c74911edb785affbf0a2b26e:vs.3, portal: 10.49.0.12,3260] successful.
    Login to [iface: default, target: iqn.1992-08.com.netapp:sn.1f795e65c74911edb785affbf0a2b26e:vs.3, portal: 10.49.0.186,3260] successful.
  4. 查看并验证活动 iSCSI 会话列表。

    sudo iscsiadm --mode session

    返回 iSCSI 会话。

    [ec2-user@ip-172-30-15-58 ~]$ sudo iscsiadm --mode session
    tcp: [1] 10.49.0.186:3260,1028 iqn.1992-08.com.netapp:sn.545a38bf06ac11ee8503e395ab90d704:vs.3 (non-flash)
    tcp: [2] 10.49.0.12:3260,1029 iqn.1992-08.com.netapp:sn.545a38bf06ac11ee8503e395ab90d704:vs.3 (non-flash)
  5. 验证 LUN 是否已导入主机。

    sudo sanlun lun show

    这将返回来自 FSx 的 Oracle LUN 列表。

    [admin@ora_02 ~]$ sudo sanlun lun show
    controller(7mode/E-Series)/                                                  device          host                  lun
    vserver(cDOT/FlashRay)        lun-pathname                                   filename        adapter    protocol   size    product
    -------------------------------------------------------------------------------------------------------------------------------
    nim                           /vol/ora_02_logs/ora_02_u03_02                 /dev/sdo        host34     iSCSI      20g     cDOT
    nim                           /vol/ora_02_logs/ora_02_u03_01                 /dev/sdn        host34     iSCSI      20g     cDOT
    nim                           /vol/ora_02_data/ora_02_u02_04                 /dev/sdm        host34     iSCSI      20g     cDOT
    nim                           /vol/ora_02_data/ora_02_u02_03                 /dev/sdl        host34     iSCSI      20g     cDOT
    nim                           /vol/ora_02_data/ora_02_u02_02                 /dev/sdk        host34     iSCSI      20g     cDOT
    nim                           /vol/ora_02_data/ora_02_u02_01                 /dev/sdj        host34     iSCSI      20g     cDOT
    nim                           /vol/ora_02_biny/ora_02_u01_01                 /dev/sdi        host34     iSCSI      40g     cDOT
    nim                           /vol/ora_02_logs/ora_02_u03_02                 /dev/sdh        host33     iSCSI      20g     cDOT
    nim                           /vol/ora_02_logs/ora_02_u03_01                 /dev/sdg        host33     iSCSI      20g     cDOT
    nim                           /vol/ora_02_data/ora_02_u02_04                 /dev/sdf        host33     iSCSI      20g     cDOT
    nim                           /vol/ora_02_data/ora_02_u02_03                 /dev/sde        host33     iSCSI      20g     cDOT
    nim                           /vol/ora_02_data/ora_02_u02_02                 /dev/sdd        host33     iSCSI      20g     cDOT
    nim                           /vol/ora_02_data/ora_02_u02_01                 /dev/sdc        host33     iSCSI      20g     cDOT
    nim                           /vol/ora_02_biny/ora_02_u01_01                 /dev/sdb        host33     iSCSI      40g     cDOT
  6. 配置 `multipath.conf`包含以下默认和黑名单条目的文件。

    sudo vi /etc/multipath.conf

    添加以下条目:

    defaults {
        find_multipaths yes
        user_friendly_names yes
    }
    
    blacklist {
        devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
        devnode "^hd[a-z]"
        devnode "^cciss.*"
    }
  7. 启动多路径服务。

    sudo systemctl start multipathd

    现在多路径设备出现在 `/dev/mapper`目录。

    [ec2-user@ip-172-30-15-58 ~]$ ls -l /dev/mapper
    total 0
    lrwxrwxrwx 1 root root       7 Mar 21 20:13 3600a09806c574235472455534e68512d -> ../dm-0
    lrwxrwxrwx 1 root root       7 Mar 21 20:13 3600a09806c574235472455534e685141 -> ../dm-1
    lrwxrwxrwx 1 root root       7 Mar 21 20:13 3600a09806c574235472455534e685142 -> ../dm-2
    lrwxrwxrwx 1 root root       7 Mar 21 20:13 3600a09806c574235472455534e685143 -> ../dm-3
    lrwxrwxrwx 1 root root       7 Mar 21 20:13 3600a09806c574235472455534e685144 -> ../dm-4
    lrwxrwxrwx 1 root root       7 Mar 21 20:13 3600a09806c574235472455534e685145 -> ../dm-5
    lrwxrwxrwx 1 root root       7 Mar 21 20:13 3600a09806c574235472455534e685146 -> ../dm-6
    crw------- 1 root root 10, 236 Mar 21 18:19 control
  8. 通过 SSH 以 fsxadmin 用户身份登录 FSx ONTAP集群,检索以 6c574xxx…​ 开头的每个 LUN 的序列十六进制数,十六进制数以 3600a0980 开头,这是 AWS 供应商 ID。

    lun show -fields serial-hex

    并返回如下结果:

    FsxId02ad7bf3476b741df::> lun show -fields serial-hex
    vserver path                            serial-hex
    ------- ------------------------------- ------------------------
    svm_ora /vol/ora_02_biny/ora_02_biny_01 6c574235472455534e68512d
    svm_ora /vol/ora_02_data/ora_02_data_01 6c574235472455534e685141
    svm_ora /vol/ora_02_data/ora_02_data_02 6c574235472455534e685142
    svm_ora /vol/ora_02_data/ora_02_data_03 6c574235472455534e685143
    svm_ora /vol/ora_02_data/ora_02_data_04 6c574235472455534e685144
    svm_ora /vol/ora_02_logs/ora_02_logs_01 6c574235472455534e685145
    svm_ora /vol/ora_02_logs/ora_02_logs_02 6c574235472455534e685146
    7 entries were displayed.
  9. 更新 `/dev/multipath.conf`文件来为多路径设备添加一个用户友好的名称。

    sudo vi /etc/multipath.conf

    包含以下条目:

    multipaths {
            multipath {
                    wwid            3600a09806c574235472455534e68512d
                    alias           ora_02_biny_01
            }
            multipath {
                    wwid            3600a09806c574235472455534e685141
                    alias           ora_02_data_01
            }
            multipath {
                    wwid            3600a09806c574235472455534e685142
                    alias           ora_02_data_02
            }
            multipath {
                    wwid            3600a09806c574235472455534e685143
                    alias           ora_02_data_03
            }
            multipath {
                    wwid            3600a09806c574235472455534e685144
                    alias           ora_02_data_04
            }
            multipath {
                    wwid            3600a09806c574235472455534e685145
                    alias           ora_02_logs_01
            }
            multipath {
                    wwid            3600a09806c574235472455534e685146
                    alias           ora_02_logs_02
            }
    }
  10. 重新启动多路径服务以验证 `/dev/mapper`已更改为 LUN 名称而非序列十六进制 ID。

    sudo systemctl restart multipathd

    查看 `/dev/mapper`返回如下:

    [ec2-user@ip-172-30-15-58 ~]$ ls -l /dev/mapper
    total 0
    crw------- 1 root root 10, 236 Mar 21 18:19 control
    lrwxrwxrwx 1 root root       7 Mar 21 20:41 ora_02_biny_01 -> ../dm-0
    lrwxrwxrwx 1 root root       7 Mar 21 20:41 ora_02_data_01 -> ../dm-1
    lrwxrwxrwx 1 root root       7 Mar 21 20:41 ora_02_data_02 -> ../dm-2
    lrwxrwxrwx 1 root root       7 Mar 21 20:41 ora_02_data_03 -> ../dm-3
    lrwxrwxrwx 1 root root       7 Mar 21 20:41 ora_02_data_04 -> ../dm-4
    lrwxrwxrwx 1 root root       7 Mar 21 20:41 ora_02_logs_01 -> ../dm-5
    lrwxrwxrwx 1 root root       7 Mar 21 20:41 ora_02_logs_02 -> ../dm-6
  11. 使用单个主分区对二进制 LUN 进行分区。

    sudo fdisk /dev/mapper/ora_02_biny_01
  12. 使用 XFS 文件系统格式化分区的二进制 LUN。

    sudo mkfs.xfs /dev/mapper/ora_02_biny_01p1
  13. 挂载二进制 LUN 到 /u01

    sudo mkdir /u01
    sudo mount -t xfs /dev/mapper/ora_02_biny_01p1 /u01
  14. 改变 `/u01`挂载点所有权归 oracle 用户及其关联的主要组。

    sudo chown oracle:oinstall /u01
  15. 查找二进制 LUN 的 UUI。

    sudo blkid /dev/mapper/ora_02_biny_01p1
  16. 添加挂载点 /etc/fstab

    sudo vi /etc/fstab

    添加以下行。

    UUID=d89fb1c9-4f89-4de4-b4d9-17754036d11d       /u01    xfs     defaults,nofail 0       2
  17. 以 root 用户身份添加 Oracle 设备的 udev 规则。

    vi /etc/udev/rules.d/99-oracle-asmdevices.rules

    包括以下条目:

    ENV{DM_NAME}=="ora*", GROUP:="oinstall", OWNER:="oracle", MODE:="660"
  18. 以 root 用户身份重新加载 udev 规则。

    udevadm control --reload-rules
  19. 以root用户身份触发udev规则。

    udevadm trigger
  20. 以 root 用户身份重新加载 multipathd。

    systemctl restart multipathd
  21. 重新启动 EC2 实例主机。

Oracle 网格基础设施安装

Details
  1. 通过 SSH 以管理员用户身份登录数据库虚拟机,并通过取消注释启用密码验证 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

    unzip -q /tmp/archive/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=asmdba
    oracle.install.asm.OSOPER=asmoper
    oracle.install.asm.OSASM=asmadmin
    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=/dev/mapper/ora_02_data_01,/dev/mapper/ora_02_data_02,/dev/mapper/ora_02_data_03,/dev/mapper/ora_02_data_04
    oracle.install.asm.diskGroup.diskDiscoveryString=/dev/mapper/*
    oracle.install.asm.monitorPassword="SetPWD"
    oracle.install.asm.configureAFD=true
  12. 以 root 用户身份登录 EC2 实例并设置 ORACLE_HOME`和 `ORACLE_BASE

    export ORACLE_HOME=/u01/app/oracle/product/19.0.0/
    export ORACLE_BASE=/tmp
    cd /u01/app/oracle/product/19.0.0/grid/bin
  13. 初始化磁盘设备以供 Oracle ASM 过滤驱动程序使用。

     ./asmcmd afd_label DATA01 /dev/mapper/ora_02_data_01 --init
     ./asmcmd afd_label DATA02 /dev/mapper/ora_02_data_02 --init
     ./asmcmd afd_label DATA03 /dev/mapper/ora_02_data_03 --init
     ./asmcmd afd_label DATA04 /dev/mapper/ora_02_data_04 --init
     ./asmcmd afd_label LOGS01 /dev/mapper/ora_02_logs_01 --init
     ./asmcmd afd_label LOGS02 /dev/mapper/ora_02_logs_02 --init
  14. 安装 cvuqdisk-1.0.10-1.rpm

    rpm -ivh /u01/app/oracle/product/19.0.0/grid/cv/rpm/cvuqdisk-1.0.10-1.rpm
  15. 取消设置 $ORACLE_BASE

    unset ORACLE_BASE
  16. 以 Oracle 用户身份登录 EC2 实例并提取补丁 `/tmp/archive`文件夹。

    unzip -q /tmp/archive/p34762026_190000_Linux-x86-64.zip -d /tmp/archive
  17. 从 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
  18. 以 root 用户身份执行以下脚本:

    /u01/app/oraInventory/orainstRoot.sh
    /u01/app/oracle/product/19.0.0/grid/root.sh
  19. 以 root 用户身份重新加载 multipathd。

    systemctl restart multipathd
  20. 以Oracle用户执行以下命令完成配置:

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

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

    bin/crsctl stat res -t
    [oracle@ora_02 grid]$ bin/crsctl stat res -t
    --------------------------------------------------------------------------------
    Name           Target  State        Server                   State details
    --------------------------------------------------------------------------------
    Local Resources
    --------------------------------------------------------------------------------
    ora.DATA.dg
                   ONLINE  ONLINE       ora_02                   STABLE
    ora.LISTENER.lsnr
                   ONLINE  INTERMEDIATE ora_02                   Not All Endpoints Re
                                                                 gistered,STABLE
    ora.LOGS.dg
                   ONLINE  ONLINE       ora_02                   STABLE
    ora.asm
                   ONLINE  ONLINE       ora_02                   Started,STABLE
    ora.ons
                   OFFLINE OFFLINE      ora_02                   STABLE
    --------------------------------------------------------------------------------
    Cluster Resources
    --------------------------------------------------------------------------------
    ora.cssd
          1        ONLINE  ONLINE       ora_02                   STABLE
    ora.diskmon
          1        OFFLINE OFFLINE                               STABLE
    ora.driver.afd
          1        ONLINE  ONLINE       ora_02                   STABLE
    ora.evmd
          1        ONLINE  ONLINE       ora_02                   STABLE
    --------------------------------------------------------------------------------
  23. 验证 ASM 过滤器驱动程序状态。

    [oracle@ora_02 grid]$ export ORACLE_HOME=/u01/app/oracle/product/19.0.0/grid
    [oracle@ora_02 grid]$ export ORACLE_SID=+ASM
    [oracle@ora_02 grid]$ export PATH=$PATH:$ORACLE_HOME/bin
    [oracle@ora_02 grid]$ asmcmd
    ASMCMD> lsdg
    State    Type    Rebal  Sector  Logical_Sector  Block       AU  Total_MB  Free_MB  Req_mir_free_MB  Usable_file_MB  Offline_disks  Voting_files  Name
    MOUNTED  EXTERN  N         512             512   4096  4194304     81920    81780                0           81780              0             N  DATA/
    MOUNTED  EXTERN  N         512             512   4096  4194304     40960    40852                0           40852              0             N  LOGS/
    ASMCMD> afd_state
    ASMCMD-9526: The AFD state is 'LOADED' and filtering is 'ENABLED' on host 'ora_02'
    ASMCMD> exit
    [oracle@ora_02 grid]$
  24. 验证 HA 服务状态。

    [oracle@ora_02 bin]$ ./crsctl check has
    CRS-4638: Oracle High Availability Services is online

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/cdb3
    cd /u01/app/oracle/product/19.0.0/cdb3
  3. 解压缩 Oracle DB 安装文件。

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

    rm -rf OPatch
  5. 从 DB home 解压缩 p6880880_190000_Linux-x86-64.zip

    unzip -q /tmp/archive/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 -q /tmp/archive/p34765931_190000_Linux-x86-64.zip -d /tmp/archive
  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/cdb3
    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. 从 cdb3 home /u01/app/oracle/product/19.0.0/cdb3 执行静默纯软件 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=cdb3.demo.netapp.com
    sid=cdb3
    createAsContainerDatabase=true
    numberOfPDBs=3
    pdbName=cdb3_pdb
    useLocalUndoForPDBs=true
    pdbAdminPassword="yourPWD"
    templateName=General_Purpose.dbc
    sysPassword="yourPWD"
    systemPassword="yourPWD"
    dbsnmpPassword="yourPWD"
    datafileDestination=+DATA
    recoveryAreaDestination=+LOGS
    storageType=ASM
    diskGroupName=DATA
    characterSet=AL32UTF8
    nationalCharacterSet=AL16UTF16
    listeners=LISTENER
    databaseType=MULTIPURPOSE
    automaticMemoryManagement=false
    totalMemory=8192
  12. 以 oracle 用户身份,使用 dbca 启动 DB 创建。

    bin/dbca -silent -createDatabase -responseFile /tmp/archive/dbca.rsp

    输出:

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/cdb3.
Database Information:
Global Database Name:cdb3.vmc.netapp.com
System Identifier(SID):cdb3
Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/cdb3/cdb3.log" for further details.
  1. 重复步骤 2 中的相同步骤,在单独的 ORACLE_HOME /u01/app/oracle/product/19.0.0/cdb4 中使用单个 PDB 创建容器数据库 cdb4。

  2. 以 Oracle 用户身份,在创建数据库后验证 Oracle Restart HA 服务,确保所有数据库(cdb3、cdb4)都已在 HA 服务中注册。

    /u01/app/oracle/product/19.0.0/grid/crsctl stat res -t

    输出:

    [oracle@ora_02 bin]$ ./crsctl stat res -t
    --------------------------------------------------------------------------------
    Name           Target  State        Server                   State details
    --------------------------------------------------------------------------------
    Local Resources
    --------------------------------------------------------------------------------
    ora.DATA.dg
                   ONLINE  ONLINE       ora_02                   STABLE
    ora.LISTENER.lsnr
                   ONLINE  INTERMEDIATE ora_02                   Not All Endpoints Re
                                                                 gistered,STABLE
    ora.LOGS.dg
                   ONLINE  ONLINE       ora_02                   STABLE
    ora.asm
                   ONLINE  ONLINE       ora_02                   Started,STABLE
    ora.ons
                   OFFLINE OFFLINE      ora_02                   STABLE
    --------------------------------------------------------------------------------
    Cluster Resources
    --------------------------------------------------------------------------------
    ora.cdb3.db
          1        ONLINE  ONLINE       ora_02                   Open,HOME=/u01/app/o
                                                                 racle/product/19.0.0
                                                                 /cdb3,STABLE
    ora.cdb4.db
          1        ONLINE  ONLINE       ora_02                   Open,HOME=/u01/app/o
                                                                 racle/product/19.0.0
                                                                 /cdb4,STABLE
    ora.cssd
          1        ONLINE  ONLINE       ora_02                   STABLE
    ora.diskmon
          1        OFFLINE OFFLINE                               STABLE
    ora.driver.afd
          1        ONLINE  ONLINE       ora_02                   STABLE
    ora.evmd
          1        ONLINE  ONLINE       ora_02                   STABLE
    --------------------------------------------------------------------------------
  3. 设置 Oracle 用户 .bash_profile

    vi ~/.bash_profile

    添加以下条目:

    export ORACLE_HOME=/u01/app/oracle/product/19.0.0/db3
    export ORACLE_SID=db3
    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'
    alias cdb3='export ORACLE_HOME=/u01/app/oracle/product/19.0.0/cdb3;export ORACLE_SID=cdb3;export PATH=$PATH:$ORACLE_HOME/bin'
    alias cdb4='export ORACLE_HOME=/u01/app/oracle/product/19.0.0/cdb4;export ORACLE_SID=cdb4;export PATH=$PATH:$ORACLE_HOME/bin'
  4. 验证为 cdb3 创建的 CDB/PDB。

    cdb3
    [oracle@ora_02 ~]$ sqlplus / as sysdba
    
    SQL*Plus: Release 19.0.0.0.0 - Production on Mon Oct 9 08:19:20 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> select name, open_mode from v$database;
    
    NAME      OPEN_MODE
    --------- --------------------
    CDB3      READ WRITE
    
    SQL> show pdbs
    
        CON_ID CON_NAME                       OPEN MODE  RESTRICTED
    ---------- ------------------------------ ---------- ----------
             2 PDB$SEED                       READ ONLY  NO
             3 CDB3_PDB1                      READ WRITE NO
             4 CDB3_PDB2                      READ WRITE NO
             5 CDB3_PDB3                      READ WRITE NO
    SQL>
    
    SQL> select name from v$datafile;
    
    NAME
    --------------------------------------------------------------------------------
    +DATA/CDB3/DATAFILE/system.257.1149420273
    +DATA/CDB3/DATAFILE/sysaux.258.1149420317
    +DATA/CDB3/DATAFILE/undotbs1.259.1149420343
    +DATA/CDB3/86B637B62FE07A65E053F706E80A27CA/DATAFILE/system.266.1149421085
    +DATA/CDB3/86B637B62FE07A65E053F706E80A27CA/DATAFILE/sysaux.267.1149421085
    +DATA/CDB3/DATAFILE/users.260.1149420343
    +DATA/CDB3/86B637B62FE07A65E053F706E80A27CA/DATAFILE/undotbs1.268.1149421085
    +DATA/CDB3/06FB206DF15ADEE8E065025056B66295/DATAFILE/system.272.1149422017
    +DATA/CDB3/06FB206DF15ADEE8E065025056B66295/DATAFILE/sysaux.273.1149422017
    +DATA/CDB3/06FB206DF15ADEE8E065025056B66295/DATAFILE/undotbs1.271.1149422017
    +DATA/CDB3/06FB206DF15ADEE8E065025056B66295/DATAFILE/users.275.1149422033
    
    NAME
    --------------------------------------------------------------------------------
    +DATA/CDB3/06FB21766256DF9AE065025056B66295/DATAFILE/system.277.1149422033
    +DATA/CDB3/06FB21766256DF9AE065025056B66295/DATAFILE/sysaux.278.1149422033
    +DATA/CDB3/06FB21766256DF9AE065025056B66295/DATAFILE/undotbs1.276.1149422033
    +DATA/CDB3/06FB21766256DF9AE065025056B66295/DATAFILE/users.280.1149422049
    +DATA/CDB3/06FB22629AC1DFD7E065025056B66295/DATAFILE/system.282.1149422049
    +DATA/CDB3/06FB22629AC1DFD7E065025056B66295/DATAFILE/sysaux.283.1149422049
    +DATA/CDB3/06FB22629AC1DFD7E065025056B66295/DATAFILE/undotbs1.281.1149422049
    +DATA/CDB3/06FB22629AC1DFD7E065025056B66295/DATAFILE/users.285.1149422063
    
    19 rows selected.
    
    SQL>
  5. 验证为 cdb4 创建的 CDB/PDB。

    cdb4
    [oracle@ora_02 ~]$ sqlplus / as sysdba
    
    SQL*Plus: Release 19.0.0.0.0 - Production on Mon Oct 9 08:20:26 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> select name, open_mode from v$database;
    
    NAME      OPEN_MODE
    --------- --------------------
    CDB4      READ WRITE
    
    SQL> show pdbs
    
        CON_ID CON_NAME                       OPEN MODE  RESTRICTED
    ---------- ------------------------------ ---------- ----------
             2 PDB$SEED                       READ ONLY  NO
             3 CDB4_PDB                       READ WRITE NO
    SQL>
    
    SQL> select name from v$datafile;
    
    NAME
    --------------------------------------------------------------------------------
    +DATA/CDB4/DATAFILE/system.286.1149424943
    +DATA/CDB4/DATAFILE/sysaux.287.1149424989
    +DATA/CDB4/DATAFILE/undotbs1.288.1149425015
    +DATA/CDB4/86B637B62FE07A65E053F706E80A27CA/DATAFILE/system.295.1149425765
    +DATA/CDB4/86B637B62FE07A65E053F706E80A27CA/DATAFILE/sysaux.296.1149425765
    +DATA/CDB4/DATAFILE/users.289.1149425015
    +DATA/CDB4/86B637B62FE07A65E053F706E80A27CA/DATAFILE/undotbs1.297.1149425765
    +DATA/CDB4/06FC3070D5E12C23E065025056B66295/DATAFILE/system.301.1149426581
    +DATA/CDB4/06FC3070D5E12C23E065025056B66295/DATAFILE/sysaux.302.1149426581
    +DATA/CDB4/06FC3070D5E12C23E065025056B66295/DATAFILE/undotbs1.300.1149426581
    +DATA/CDB4/06FC3070D5E12C23E065025056B66295/DATAFILE/users.304.1149426597
    
    11 rows selected.
  6. 使用 sqlplus 以 sysdba 身份登录到每个 cdb,并将 DB 恢复目标大小设置为两个 cdb 的 +LOGS 磁盘组大小。

    alter system set db_recovery_file_dest_size = 40G scope=both;
  7. 使用 sqlplus 以 sysdba 身份登录每个 cdb,并按顺序使用以下命令集启用存档日志模式。

    sqlplus /as sysdba
    shutdown immediate;
    startup mount;
    alter database archivelog;
    alter database open;

这完成了在Amazon FSx ONTAP存储和 VMC DB VM 上重新启动 Oracle 19c 版本 19.18 的部署。如果需要, NetApp建议将 Oracle 控制文件和联机日志文件重新定位到 +LOGS 磁盘组。

使用SnapCenter进行 Oracle 备份、恢复和克隆

SnapCenter设置

Details

SnapCenter依靠数据库 VM 上的主机端插件来执行应用程序感知的数据保护管理活动。有关适用于 Oracle 的NetApp SnapCenter插件的详细信息,请参阅此文档"您可以使用 Oracle 数据库插件做什么"。以下提供了设置SnapCenter以进行 Oracle 数据库备份、恢复和克隆的高级步骤。

  1. 从NetApp支持站点下载最新版本的SnapCenter software:"NetApp支持下载"

  2. 以管理员身份安装最新的 Java JDK"获取用于桌面应用程序的 Java"在SnapCenter服务器 Windows 主机上。

    备注 如果 Windows 服务器部署在域环境中,请将域用户添加到SnapCenter服务器本地管理员组,并使用域用户运行SnapCenter安装。
  3. 以安装用户身份通过 HTTPS 端口 8846 登录SnapCenter UI 以配置SnapCenter for Oracle。

  4. 更新 `Hypervisor Settings`在全局设置中。

    显示SnapCenter配置的屏幕截图。

  5. 创建 Oracle 数据库备份策略。理想情况下,创建单独的存档日志备份策略,以允许更频繁的备份间隔,从而最大限度地减少故障时的数据丢失。

    显示SnapCenter配置的屏幕截图。

  6. 添加数据库服务器 `Credential`用于SnapCenter访问 DB VM。该凭证应在 Linux VM 上具有 sudo 权限或在 Windows VM 上具有管理员权限。

    显示SnapCenter配置的屏幕截图。

  7. 将 FSx ONTAP存储集群添加到 `Storage Systems`具有集群管理 IP 并通过 fsxadmin 用户 ID 进行身份验证。

    显示SnapCenter配置的屏幕截图。

  8. 在 VMC 中添加 Oracle 数据库 VM `Hosts`使用前面步骤 6 中创建的服务器凭证。

    显示SnapCenter配置的屏幕截图。

备注 确保SnapCenter服务器名称可以解析为 DB VM 的 IP 地址,并且 DB VM 名称可以解析为SnapCenter服务器的 IP 地址。

数据库备份

Details

与传统的基于 RMAN 的方法相比, SnapCenter利用 FSx ONTAP卷快照实现更快的数据库备份、恢复或克隆。由于数据库在快照之前处于 Oracle 备份模式,因此快照与应用程序一致。

  1. Resources`选项卡,将 VM 添加到SnapCenter后,会自动发现 VM 上的任何数据库。最初,数据库状态显示为 `Not protected

    显示SnapCenter配置的屏幕截图。

  2. 创建一个资源组,按照逻辑分组(例如按 DB VM 等)备份数据库。在此示例中,我们创建了一个 ora_02_data 组,对 VM ora_02 上的所有数据库进行完整的在线数据库备份。资源组 ora_02_log 仅在 VM 上执行归档日志的备份。创建资源组还定义了执行备份的计划。

    显示SnapCenter配置的屏幕截图。

  3. 还可以通过单击 `Back up Now`并按照资源组中定义的策略执行备份。

    显示SnapCenter配置的屏幕截图。

  4. 备份作业可以在 `Monitor`单击正在运行的作业来打开选项卡。

    显示SnapCenter配置的屏幕截图。

  5. 备份成功后,数据库状态显示作业状态和最近一次备份时间。

    显示SnapCenter配置的屏幕截图。

  6. 单击数据库以查看每个数据库的备份集。

    显示SnapCenter配置的屏幕截图。

数据库恢复

Details

SnapCenter为 Oracle 数据库提供了多种从快照备份中恢复的选项。在此示例中,我们演示了时间点恢复以恢复错误删除的表。在VM ora_02上,两个数据库cdb3、cdb4共享相同的+DATA、+LOGS磁盘组。一个数据库的数据库恢复不会影响另一个数据库的可用性。

  1. 首先,创建一个测试表并在表中插入一行以验证时间点恢复。

    [oracle@ora_02 ~]$ sqlplus / as sysdba
    
    SQL*Plus: Release 19.0.0.0.0 - Production on Fri Oct 6 14:15:21 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> select name, open_mode from v$database;
    
    NAME      OPEN_MODE
    --------- --------------------
    CDB3      READ WRITE
    
    SQL> show pdbs
    
        CON_ID CON_NAME                       OPEN MODE  RESTRICTED
    ---------- ------------------------------ ---------- ----------
             2 PDB$SEED                       READ ONLY  NO
             3 CDB3_PDB1                      READ WRITE NO
             4 CDB3_PDB2                      READ WRITE NO
             5 CDB3_PDB3                      READ WRITE NO
    SQL>
    
    
    SQL> alter session set container=cdb3_pdb1;
    
    Session altered.
    
    SQL> create table test (id integer, dt timestamp, event varchar(100));
    
    Table created.
    
    SQL> insert into test values(1, sysdate, 'test oracle recovery on guest mounted fsx storage to VMC guest vm ora_02');
    
    1 row created.
    
    SQL> commit;
    
    Commit complete.
    
    SQL> select * from test;
    
            ID
    ----------
    DT
    ---------------------------------------------------------------------------
    EVENT
    --------------------------------------------------------------------------------
             1
    06-OCT-23 03.18.24.000000 PM
    test oracle recovery on guest mounted fsx storage to VMC guest vm ora_02
    
    
    SQL> select current_timestamp from dual;
    
    CURRENT_TIMESTAMP
    ---------------------------------------------------------------------------
    06-OCT-23 03.18.53.996678 PM -07:00
  2. 我们从SnapCenter运行手动快照备份。然后放下桌子。

    SQL> drop table test;
    
    Table dropped.
    
    SQL> commit;
    
    Commit complete.
    
    SQL> select current_timestamp from dual;
    
    CURRENT_TIMESTAMP
    ---------------------------------------------------------------------------
    06-OCT-23 03.26.30.169456 PM -07:00
    
    SQL> select * from test;
    select * from test
                  *
    ERROR at line 1:
    ORA-00942: table or view does not exist
  3. 从上一步创建的备份集中,记下日志备份的 SCN 号。点击 `Restore`启动恢复工作流程。

    显示SnapCenter配置的屏幕截图。

  4. 选择恢复范围。

    显示SnapCenter配置的屏幕截图。

  5. 选择恢复范围直至上次完整数据库备份的日志 SCN。

    显示SnapCenter配置的屏幕截图。

  6. 指定要运行的任何可选预脚本。

    显示SnapCenter配置的屏幕截图。

  7. 指定要运行的任何可选的后续脚本。

    显示SnapCenter配置的屏幕截图。

  8. 如果需要的话,发送工作报告。

    显示SnapCenter配置的屏幕截图。

  9. 查看摘要并点击 `Finish`启动恢复和复苏。

    显示SnapCenter配置的屏幕截图。

  10. 从 Oracle Restart 网格控制中,我们观察到当 cdb3 处于恢复和恢复状态时,cdb4 处于在线且可用状态。

    显示SnapCenter配置的屏幕截图。

  11. 从 `Monitor`选项卡,打开作业来查看详细信息。

    显示SnapCenter配置的屏幕截图。

  12. 从 DB VM ora_02,验证删除的表在成功恢复后是否恢复。

    [oracle@ora_02 bin]$ sqlplus / as sysdba
    
    SQL*Plus: Release 19.0.0.0.0 - Production on Fri Oct 6 17:01:28 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> select name, open_mode from v$database;
    
    NAME      OPEN_MODE
    --------- --------------------
    CDB3      READ WRITE
    
    SQL> show pdbs
    
        CON_ID CON_NAME                       OPEN MODE  RESTRICTED
    ---------- ------------------------------ ---------- ----------
             2 PDB$SEED                       READ ONLY  NO
             3 CDB3_PDB1                      READ WRITE NO
             4 CDB3_PDB2                      READ WRITE NO
             5 CDB3_PDB3                      READ WRITE NO
    SQL> alter session set container=CDB3_PDB1;
    
    Session altered.
    
    SQL> select * from test;
    
            ID
    ----------
    DT
    ---------------------------------------------------------------------------
    EVENT
    --------------------------------------------------------------------------------
             1
    06-OCT-23 03.18.24.000000 PM
    test oracle recovery on guest mounted fsx storage to VMC guest vm ora_02
    
    
    SQL> select current_timestamp from dual;
    
    CURRENT_TIMESTAMP
    ---------------------------------------------------------------------------
    06-OCT-23 05.02.20.382702 PM -07:00
    
    SQL>

数据库克隆

Details

在此示例中,相同的备份集用于在不同的 ORACLE_HOME 中的同一 VM 上克隆数据库。如果需要,这些程序同样适用于将数据库从备份克隆到 VMC 中的单独 VM。

  1. 打开数据库cdb3备份列表。从选择的数据备份中,单击 `Clone`按钮启动数据库克隆工作流程。

    显示SnapCenter配置的屏幕截图。

  2. 将克隆数据库命名为 SID。

    显示SnapCenter配置的屏幕截图。

  3. 在 VMC 中选择一个 VM 作为目标数据库主机。主机上应该安装并配置相同的 Oracle 版本。

    显示SnapCenter配置的屏幕截图。

  4. 在目标主机上选择适当的 ORACLE_HOME、用户和组。保留默认凭证。

    显示SnapCenter配置的屏幕截图。

  5. 更改克隆数据库参数以满足克隆数据库的配置或资源要求。

    显示SnapCenter配置的屏幕截图。

  6. 选择恢复范围。 `Until Cancel`将克隆恢复到备份集中最后一个可用的日志文件。

    显示SnapCenter配置的屏幕截图。

  7. 查看摘要并启动克隆作业。

    显示SnapCenter配置的屏幕截图。

  8. 监控克隆作业的执行情况 `Monitor`选项卡。

    显示SnapCenter配置的屏幕截图。

  9. 克隆的数据库会立即在SnapCenter中注册。

    显示SnapCenter配置的屏幕截图。

  10. 从 DB VM ora_02 中,克隆的数据库也在 Oracle Restart 网格控制中注册,并且删除的测试表在克隆的数据库 cdb3tst 中恢复,如下所示。

    [oracle@ora_02 ~]$ /u01/app/oracle/product/19.0.0/grid/bin/crsctl stat res -t
    --------------------------------------------------------------------------------
    Name           Target  State        Server                   State details
    --------------------------------------------------------------------------------
    Local Resources
    --------------------------------------------------------------------------------
    ora.DATA.dg
                   ONLINE  ONLINE       ora_02                   STABLE
    ora.LISTENER.lsnr
                   ONLINE  INTERMEDIATE ora_02                   Not All Endpoints Re
                                                                 gistered,STABLE
    ora.LOGS.dg
                   ONLINE  ONLINE       ora_02                   STABLE
    ora.SC_2090922_CDB3TST.dg
                   ONLINE  ONLINE       ora_02                   STABLE
    ora.asm
                   ONLINE  ONLINE       ora_02                   Started,STABLE
    ora.ons
                   OFFLINE OFFLINE      ora_02                   STABLE
    --------------------------------------------------------------------------------
    Cluster Resources
    --------------------------------------------------------------------------------
    ora.cdb3.db
          1        ONLINE  ONLINE       ora_02                   Open,HOME=/u01/app/o
                                                                 racle/product/19.0.0
                                                                 /cdb3,STABLE
    ora.cdb3tst.db
          1        ONLINE  ONLINE       ora_02                   Open,HOME=/u01/app/o
                                                                 racle/product/19.0.0
                                                                 /cdb4,STABLE
    ora.cdb4.db
          1        ONLINE  ONLINE       ora_02                   Open,HOME=/u01/app/o
                                                                 racle/product/19.0.0
                                                                 /cdb4,STABLE
    ora.cssd
          1        ONLINE  ONLINE       ora_02                   STABLE
    ora.diskmon
          1        OFFLINE OFFLINE                               STABLE
    ora.driver.afd
          1        ONLINE  ONLINE       ora_02                   STABLE
    ora.evmd
          1        ONLINE  ONLINE       ora_02                   STABLE
    --------------------------------------------------------------------------------
    
    [oracle@ora_02 ~]$ export ORACLE_HOME=/u01/app/oracle/product/19.0.0/cdb4
    [oracle@ora_02 ~]$ export ORACLE_SID=cdb3tst
    [oracle@ora_02 ~]$ sqlplus / as sysdba
    
    SQL*Plus: Release 19.0.0.0.0 - Production on Sat Oct 7 08:04:51 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> select name, open_mode from v$database;
    
    NAME      OPEN_MODE
    --------- --------------------
    CDB3TST   READ WRITE
    
    SQL> show pdbs
    
        CON_ID CON_NAME                       OPEN MODE  RESTRICTED
    ---------- ------------------------------ ---------- ----------
             2 PDB$SEED                       READ ONLY  NO
             3 CDB3_PDB1                      READ WRITE NO
             4 CDB3_PDB2                      READ WRITE NO
             5 CDB3_PDB3                      READ WRITE NO
    SQL> alter session set container=CDB3_PDB1;
    
    Session altered.
    
    SQL> select * from test;
    
            ID
    ----------
    DT
    ---------------------------------------------------------------------------
    EVENT
    --------------------------------------------------------------------------------
             1
    06-OCT-23 03.18.24.000000 PM
    test oracle recovery on guest mounted fsx storage to VMC guest vm ora_02
    
    
    SQL>

这完成了 AWS 上的 VMC SDDC 中 Oracle 数据库的SnapCenter备份、恢复和克隆的演示。