TR-4997:《使用VVO尔 在VCF中部署和保护Oracle RAC》
NetApp公司Allen Cao、Niyaz Mohamed
该解决方案简要介绍了在VMware Cloud Foundation (VCF)中使用vSphere虚拟卷(VVOl)作为主数据库存储以及在Real Application Clusters (RAC)配置中使用Oracle数据库进行Oracle部署和保护的详细信息。
目的
VMware vSphere虚拟卷(vvol)是一个SAN/NAS管理和集成框架、可将虚拟磁盘公开为本机存储对象、并可在虚拟磁盘级别执行基于阵列的操作。换言之、Vvol可使SAN/NAS设备具有VM感知能力、并在单个虚拟磁盘粒度范围内通过以VM为中心的方法充分利用基于阵列的数据服务。 利用虚拟卷、客户可以充分利用当前存储投资的独特功能、并在不中断系统运行的情况下过渡到针对适用于所有存储类型的虚拟环境而优化的更简单、更高效的运营模式。
在中"TR-4996",我们演示了使用VVO尔 在VCF中部署和保护单实例Oracle数据库的过程。本文档演示了如何在VMware Cloud Foundation环境中部署和保护Oracle RAC数据库、并将vvol作为NetApp ONTAP存储集群中的主数据库存储。Oracle RAC数据库的配置就像部署在本地存储系统的本地文件系统中一样。本技术报告重点介绍在适用于Oracle RAC部署的VCF中创建VVO尔 的步骤。我们还演示了如何使用NetApp自动化工具包在VVO尔 上的VCF中部署Oracle RAC数据库、以及如何使用NetApp SnapCenter UI工具保护RAC数据库。
此解决方案 可解决以下使用情形:
-
在VCF中部署Oracle RAC数据库、并将NetApp ONTAP AFF上的VVO尔 数据存储库用作主数据库存储
-
使用NetApp SnapCenter UI工具在VCF中使用VVO尔 数据存储库进行Oracle数据库备份和还原
audience
此解决方案 适用于以下人员:
-
希望在VCF中部署Oracle RAC并将VVO尔 数据存储库部署在NetApp ONTAP AFF上作为主数据库存储的数据库主管
-
希望在VCF中使用NetApp ONTAP AFF存储上的VVO尔 数据存储库测试Oracle RAC工作负载的数据库解决方案架构师
-
希望部署和管理已部署到VCF且在NetApp ONTAP AFF存储上具有VVO尔 数据存储库的Oracle RAC数据库的存储管理员
-
希望在VCF中使用VVOV数据存储库建立Oracle RAC数据库的应用程序所有者
解决方案 测试和验证环境
此解决方案的测试和验证是在VCF中的实验室环境中执行的、其中VVOs数据存储库位于NetApp ONTAP AFF存储上、而此数据存储库可能与最终部署环境不匹配。有关详细信息,请参阅一节 部署注意事项的关键因素。
架构
![此图详细展示了AWS公共云中使用iSCSI和ASM的Oracle部署配置。](./../media/vcf_orarac_vvol_architecture.png)
硬件和软件组件
* 硬件 * |
||
NetApp ONTAP AFF A300 |
版本9.14.1P4 |
带有24个NVMe磁盘的DS224磁盘架、总容量为35.2 TiB |
VMware vSphere集群 |
8.02版 |
12个CPU x Intel ® Xeon ® Gold 5218 CPU @ 2.30GHz、8个节点(4个管理域和4个工作负载域) |
软件 |
||
RedHat Linux |
rell-8.6、4.18.0-372.9.1.el8.x86_64内核 |
托管Oracle数据库服务器、部署RedHat订阅以进行测试 |
Windows服务器 |
2022标准版、10.0.20348内部版本20348 |
托管SnapCenter服务器 |
CentOS Linux |
CentOS Linux 8.5.2111版 |
托管Ans负责 控制器 |
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 服务器 |
6.0版 |
工作组部署 |
适用于 VMware vSphere 的 SnapCenter 插件 |
6.0版 |
作为一个ova虚拟机部署到vSphere集群 |
适用于VMware vSphere的ONTAP工具 |
9.13版 |
作为一个ova虚拟机部署到vSphere集群 |
打开JDK |
版本java-11-OpenJDK-11.0.23.0.9-3.el8.x86_64 |
DB VM上的SnapCenter插件要求 |
VCF中的Oracle RAC数据库配置
RAC节点 |
* 数据库 * |
DB存储 |
ora01 |
NTAP)(NTAP_pdb1、NTAP_pdb2、NTAP_pdb3) |
NetApp ONTAP AFF A300上的VVOS数据存储库(VCF_ORA_bins、VCF_ORA_CRS、VCF_ORA_DAT1、VCF_ORA_DAT2、VCF_ORA_LOGS) |
ora02 |
NTAP)(NTAP_pdb1、NTAP_pdb2、NTAP_pdb3) |
NetApp ONTAP AFF A300上的VVOS数据存储库(VCF_ORA_bins、VCF_ORA_CRS、VCF_ORA_DAT1、VCF_ORA_DAT2、VCF_ORA_LOGS) |
部署注意事项的关键因素
-
*用于将ONTAP与Svol建立集群连接的协议。*NFS或iSCSI是不错的选择。这些性能级别是等效的。在此解决方案演示中、我们使用iSCSI作为存储协议、以便将ONTAP连接到带下划线的存储集群。如果VCF基础架构支持、则NetApp ONTAP上的VVO尔 数据存储库也支持FC/FCoE、NVMe/FC协议。
-
*在虚拟卷数据存储库上的Oracle存储布局。*在测试和验证中、我们为Oracle二进制文件、Oracle集群注册表/投票、Oracle数据和Oracle日志文件部署了五个虚拟卷数据存储库。最好将不同类型的Oracle文件分隔到各自的数据存储库中、以便可以轻松管理和执行数据库备份、恢复或克隆。为大型数据库创建专用的卷、并为具有类似QoS配置文件的小型数据库或数据库共享此类卷。
-
* Oracle存储冗余。* `Normal Redundancy`用于关键Oracle RAC集群注册表/投票文件、以便三个ASM磁盘故障组上的三个投票文件提供最佳集群保护、并在ASM磁盘故障组之间镜像集群注册表。 `External Redundancy`用于Oracle二进制文件、数据文件和日志文件、以优化存储利用率。 `External Redundancy`使用时、带下划线的ONTAP RAID-DP可提供数据保护。
-
*用于ONTAP存储身份验证的凭据。*请仅使用ONTAP集群级别凭据进行ONTAP存储集群身份验证、包括通过SnapCenter连接到ONTAP存储集群或通过ONTAP工具连接到ONTAP存储集群。
-
*将存储从Vvol数据存储库配置到数据库虚拟机。*从Vvol数据存储库一次只向数据库VM添加一个磁盘。目前不支持同时从卷数据存储库添加多个磁盘。
-
*数据库保护。*NetApp提供了一个SnapCenter软件套件、用于通过用户友好的UI界面进行数据库备份和还原。NetApp建议实施此类管理工具、以实现快速快照备份、快速数据库还原和恢复。
解决方案 部署
以下各节介绍了在VCF中使用VVO尔 数据存储库在Oracle RAC配置中的NetApp ONTAP存储上部署Oracle 19c数据库的分步过程。
部署的前提条件
Details
部署需要满足以下前提条件。
-
已设置VMware VCF。有关如何创建VCF的信息或说明,请参阅VMware文档 "VMware Cloud Foundation文档"。
-
在VCF工作负载域中配置三个Linux VM、两个VM用于Oracle RAC数据库集群、一个VM用于Ansv可 控制器。配置一个Windows服务器VM以运行NetApp SnapCenter服务器。有关为自动化Oracle数据库部署设置Ans得 控制器的信息,请参阅以下资源 "NetApp解决方案 自动化入门"。
-
Oracle RAC数据库VM应至少配置两个网络接口—一个用于Oracle RAC专用互连、另一个用于应用程序或公共数据流量。
-
VCF中已部署适用于VMware vSphere的SnapCenter插件6.0版。有关插件部署的信息,请参见以下资源: "适用于 VMware vSphere 的 SnapCenter 插件文档"。
-
适用于VMware vSphere的ONTAP工具已部署在VCF中。有关适用于VMware vSphere的ONTAP工具部署的信息、请参见以下资源: "适用于VMware vSphere的ONTAP工具文档"
|
确保已在Oracle VM根卷中至少分配50G、以便有足够的空间来暂存Oracle安装文件。 |
创建存储功能配置文件
Details
首先、为托管此虚拟卷数据存储库的带下划线的ONTAP存储创建一个自定义存储功能配置文件。
-
从vSphere客户端快捷方式中、打开NetApp ONTAP工具。确保已在ONTAP工具部署过程中将ONTAP存储集群添加到中
Storage Systems
。 -
单击
Storage capability profile
以添加Oracle的自定义配置文件。为配置文件命名并添加简要说明。 -
选择存储控制器类别:性能、容量或混合。
-
选择协议。
-
根据需要定义QoS策略。
-
配置文件的其他存储属性。如果要使用加密功能、请确保已在NetApp控制器上启用加密、否则在应用配置文件时可能会导致问题。
-
查看摘要并完成存储功能配置文件创建。
创建和配置卷数据存储库
Details
完成前提条件后、以管理员用户身份通过vSphere客户端登录到VCF、导航到工作负载域。请勿使用内置的VMware存储选项创建vvol。请改用NetApp ONTAP工具创建虚拟卷。以下说明了创建和配置卷的过程。
-
可以从ONTAP工具界面或VCF工作负载域集群触发VVOLs创建工作流。
-
填写数据存储库的常规信息、包括配置目标、类型、名称和协议。
-
选择从上一步创建的自定义存储功能配置文件,即
Storage system
,和Storage VM
,要在其中创建虚拟卷。 -
选择
Create new volumes
,填写卷名称和大小,然后单击,再单击ADD
NEXT
以移动到摘要页面。 -
单击
Finish
此选项可为Oracle二进制文件创建虚拟卷数据存储库。 -
为Oracle集群注册表或CRS创建数据存储库。
您可以向一个数据存储库添加多个卷、也可以跨多个ONTAP控制器节点跨多个VMware数据存储库卷来提高性能或实现冗余。 -
为Oracle数据创建数据存储库。理想情况下、请在每个ONTAP控制器节点上创建单独的数据存储库、并使用Oracle ASM跨控制器节点对数据进行条带化、以最大程度地提高ONTAP存储集群容量的利用率。
-
为Oracle日志创建数据存储库。鉴于Oracle日志写入的顺序性、最好将其放置在一个ONTAP控制器节点上。
-
部署后验证Oracle数据存储库。
根据存储功能配置文件创建VM存储策略
Details
在将存储从Vvol数据存储库配置到数据库VM之前、请根据上一步创建的存储功能配置文件添加VM存储策略。以下是过程。
-
从vSphere Client菜单中,打开
Policies and Profiles
并突出显示VM Storage Policies
。单击Create
以打开VM Storage Policies
工作流。 -
为VM存储策略命名。
-
在中
Datastore specific rules
,选中Enable rules for "NetAPP.clustered.Data.ONTAP.VP.vvol" storage
-
对于NetApp.Clustered.Data.ONTAP.VP.vvol规则
Placement
,请选择上一步创建的自定义存储容量配置文件。 -
对于NetApp.Clustered.Data.ONTAP.VP.vvol规则,请选择是否不复制vVol
Replication
Disabled
。 -
存储兼容性页面显示VCF环境中的兼容VVO尔 数据存储库。
-
查看并完成VM存储策略的创建。
-
验证刚刚创建的虚拟机存储策略。
从Vvol数据存储库为RAC VM分配磁盘并配置数据库存储
Details
在vSphere Client中、通过编辑Vvol数据存储库设置将所需磁盘添加到数据库VM。然后、登录到VM以格式化二进制磁盘、并将其挂载到挂载点/u01。以下内容展示了确切的步骤和任务。
-
在将磁盘从数据存储库分配到数据库虚拟机之前、请登录到VMware ESXi主机以验证并确保在ESXi级别启用了多写入程序(将"AllowMW"值设置为1)。
[root@vcf-wkld-esx01:~] which esxcli /bin/esxcli [root@vcf-wkld-esx01:~] esxcli system settings advanced list -o /VMFS3/GBLAllowMW Path: /VMFS3/GBLAllowMW Type: integer Int Value: 1 Default Int Value: 1 Min Value: 0 Max Value: 1 String Value: Default String Value: Valid Characters: Description: Allow multi-writer GBLs. Host Specific: false Impact: none [root@vcf-wkld-esx01:~]
-
添加一个新的专用SCSI控制器、用于Oracle RAC磁盘。禁用SCSI总线共享。
-
从RAC节点1—ora01中、向VM添加一个磁盘以用于Oracle二进制存储、而不进行共享。
-
从RAC节点1中、向VM添加三个磁盘以用于Oracle RAC CRS存储、并启用多写入程序共享。
-
从RAC节点1中、从每个数据存储库向VM添加两个磁盘、用于存储数据、以供共享Oracle数据存储使用。
-
从RAC节点1中、从日志数据存储库向VM添加两个磁盘、用于共享Oracle日志文件存储。
-
从RAC节点2中、向VM添加一个磁盘以实现Oracle二进制存储、而无需共享。
-
在RAC节点2中、通过选择 `Existing Hard Disks`选项来添加其他共享磁盘、并为每个共享磁盘启用多写入程序共享。
-
在VM中
Edit Settings
Advanced Parameters
,添加具有值的属性disk.enableuuid
TRUE
。要添加高级参数、需要关闭虚拟机。通过设置此选项、SnapCenter可以准确识别您环境中的VVOV。应在所有RAC节点上执行此操作。 -
现在、重新启动虚拟机。以管理员用户身份通过ssh登录到VM、以查看新添加的磁盘驱动器。
[admin@ora01 ~]$ sudo lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 50G 0 disk ├─sda1 8:1 0 600M 0 part /boot/efi ├─sda2 8:2 0 1G 0 part /boot └─sda3 8:3 0 48.4G 0 part ├─rhel-root 253:0 0 43.4G 0 lvm / └─rhel-swap 253:1 0 5G 0 lvm [SWAP] sdb 8:16 0 50G 0 disk sdc 8:32 0 10G 0 disk sdd 8:48 0 10G 0 disk sde 8:64 0 10G 0 disk sdf 8:80 0 40G 0 disk sdg 8:96 0 40G 0 disk sdh 8:112 0 40G 0 disk sdi 8:128 0 40G 0 disk sdj 8:144 0 80G 0 disk sdk 8:160 0 80G 0 disk sr0 11:0 1 1024M 0 rom [admin@ora01 ~]$ [admin@ora02 ~]$ sudo lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 50G 0 disk ├─sda1 8:1 0 600M 0 part /boot/efi ├─sda2 8:2 0 1G 0 part /boot └─sda3 8:3 0 48.4G 0 part ├─rhel-root 253:0 0 43.4G 0 lvm / └─rhel-swap 253:1 0 5G 0 lvm [SWAP] sdb 8:16 0 50G 0 disk sdc 8:32 0 10G 0 disk sdd 8:48 0 10G 0 disk sde 8:64 0 10G 0 disk sdf 8:80 0 40G 0 disk sdg 8:96 0 40G 0 disk sdh 8:112 0 40G 0 disk sdi 8:128 0 40G 0 disk sdj 8:144 0 80G 0 disk sdk 8:160 0 80G 0 disk sr0 11:0 1 1024M 0 rom [admin@ora02 ~]$
-
在每个RAC节点中、只需接受默认选项、即可将Oracle二进制磁盘(/dev/sdb)作为主分区和单个分区进行分区。
sudo fdisk /dev/sdb
-
将分区磁盘格式化为xfs文件系统。
sudo mkfs.xfs /dev/sdb1
-
将磁盘挂载到挂载点/u01。
[admin@ora01 ~]$ df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 7.7G 36K 7.7G 1% /dev tmpfs 7.8G 1.4G 6.4G 18% /dev/shm tmpfs 7.8G 34M 7.7G 1% /run tmpfs 7.8G 0 7.8G 0% /sys/fs/cgroup /dev/mapper/rhel-root 44G 29G 16G 66% / /dev/sda2 1014M 249M 766M 25% /boot /dev/sda1 599M 5.9M 593M 1% /boot/efi /dev/sdb1 50G 24G 27G 47% /u01 tmpfs 1.6G 12K 1.6G 1% /run/user/42 tmpfs 1.6G 0 1.6G 0% /run/user/54331 tmpfs 1.6G 4.0K 1.6G 1% /run/user/1000
-
将挂载点添加到/etc/fstab中、以便在虚拟机重新启动时挂载磁盘驱动器。
sudo vi /etc/fstab
[oracle@ora_01 ~]$ cat /etc/fstab # # /etc/fstab # Created by anaconda on Wed Oct 18 19:43:31 2023 # # Accessible filesystems, by reference, are maintained under '/dev/disk/'. # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info. # # After editing this file, run 'systemctl daemon-reload' to update systemd # units generated from this file. # /dev/mapper/rhel-root / xfs defaults 0 0 UUID=aff942c4-b224-4b62-807d-6a5c22f7b623 /boot xfs defaults 0 0 /dev/mapper/rhel-swap none swap defaults 0 0 /root/swapfile swap swap defaults 0 0 /dev/sdb1 /u01 xfs defaults 0 0
在VCF中部署Oracle RAC
Details
建议利用NetApp自动化工具包在VCF中使用VVO尔 部署Oracle RAC。请仔细阅读附带的说明(自述文件)、并按照工具包中的说明配置部署参数文件、例如部署目标文件—hosts、全局变量文件—vars/vars.yml和本地数据库VM变量文件—host_vars/host_name.yml。下面是分步过程。
-
以管理员用户身份通过ssh登录到Andsv得以 控制器VM、然后克隆一份自动化工具包副本、以便在VCF中使用VVOL部署Oracle RAC。
git clone https://bitbucket.ngage.netapp.com/scm/ns-bb/na_oracle_deploy_rac.git
-
将以下Oracle安装文件暂存到RAC节点1数据库VM上的/tmp/archive文件夹中。该文件夹应允许具有777权限的所有用户访问。
LINUX.X64_193000_grid_home.zip p34762026_190000_Linux-x86-64.zip LINUX.X64_193000_db_home.zip p34765931_190000_Linux-x86-64.zip p6880880_190000_Linux-x86-64.zip
-
在Ans得 控制器和数据库VM之间设置ssh无密钥身份验证、这需要生成ssh密钥对并将公共密钥复制到数据库VM管理员用户根目录.ssh folder authorized_keys文件。
ssh-keygen
-
配置用户定义的目标主机参数文件。以下是目标主机文件hosts的典型配置示例。
#Oracle hosts [oracle] ora01 ansible_host=10.61.180.21 ansible_ssh_private_key_file=ora01.pem ora02 ansible_host=10.61.180.22 ansible_ssh_private_key_file=ora02.pem
-
配置用户定义的本地主机专用参数文件。以下是本地host_name.yml文件(ora01.yml)的典型配置示例。
# Binary lun ora_bin: /dev/sdb # Host DB configuration ins_sid: "{{ oracle_sid }}1" asm_sid: +ASM1
-
配置用户定义的全局参数文件。以下是全局参数文件vars.yml的典型配置示例
####################################################################### ### ONTAP env specific config variables ### ####################################################################### # ONTAP storage platform: on-prem, vmware-vvols ontap_platform: vmware-vvols # Prerequisite to create five vVolss in VMware vCenter # VCF_ORA_BINS - Oracle binary # VCF_ORA_CRS - Oracle cluster registry and vote # VCF_ORA_DAT1 - Oracle data on node1 # VCF_ORA_DAT2 - Oracle data on node2 # VCF_ORA_LOGS - Oracle logs on node1 or node2 # Oracle disks are added to VM from vVols: 1 binary disk, 3 CRS disks, 4 data disks, and 2 log disks. ###################################################################### ### Linux env specific config variables ### ###################################################################### redhat_sub_username: XXXXXXXX redhat_sub_password: "XXXXXXXX" # Networking configuration cluster_pub_ip: - {ip: 10.61.180.21, hostname: ora01} - {ip: 10.61.180.22, hostname: ora02} cluster_pri_ip: - {ip: 172.21.166.22, hostname: ora01-pri} - {ip: 172.21.166.24, hostname: ora02-pri} cluster_vip_ip: - {ip: 10.61.180.93, hostname: ora01-vip} - {ip: 10.61.180.94, hostname: ora02-vip} cluster_scan_name: ntap-scan cluster_scan_ip: - {ip: 10.61.180.90, hostname: ntap-scan} - {ip: 10.61.180.91, hostname: ntap-scan} - {ip: 10.61.180.92, hostname: ntap-scan} ##################################################################### ### DB env specific install and config variables ### ##################################################################### # Shared Oracle RAC storage ora_crs: - { device: /dev/sdc, name: ora_crs_01 } - { device: /dev/sdd, name: ora_crs_02 } - { device: /dev/sde, name: ora_crs_03 } ora_data: - { device: /dev/sdf, name: ora_data_01 } - { device: /dev/sdg, name: ora_data_02 } - { device: /dev/sdh, name: ora_data_03 } - { device: /dev/sdi, name: ora_data_04 } ora_logs: - { device: /dev/sdj, name: ora_logs_01 } - { device: /dev/sdk, name: ora_logs_02 } # Oracle RAC configuration oracle_sid: NTAP cluster_name: ntap-rac cluster_nodes: ora01,ora02 cluster_domain: solutions.netapp.com grid_cluster_nodes: ora01:ora01-vip:HUB,ora02:ora02-vip:HUB network_interface_list: ens33:10.61.180.0:1,ens34:172.21.166.0:5 memory_limit: 10240 # Set initial password for all required Oracle passwords. Change them after installation. initial_pwd_all: "XXXXXXXX"
-
从Andsute控制器克隆的自动化工具包主目录/HOME/admin/na_oracle_DEP_RAC中、执行前提条件操作手册以设置Andsute前提条件。
ansible-playbook -i hosts 1-ansible_requirements.yml
-
执行Linux配置操作手册。
ansible-playbook -i hosts 2-linux_config.yml -u admin -e @vars/vars.yml
-
执行Oracle部署操作手册。
ansible-playbook -i hosts 4-oracle_config.yml -u admin -e @vars/vars.yml
-
此外、还可以从一次运行中执行上述所有操作手册。
ansible-playbook -i hosts 0-all_playbook.yml -u admin -e @vars/vars.yml
在VCF中验证Oracle RAC部署
Details
本节详细介绍了如何在VCF中进行Oracle RAC部署验证、以确保所有Oracle RAC资源均已完全部署、配置并按预期正常运行。
-
以管理员用户身份登录到RAC VM以验证Oracle网格基础架构。
[admin@ora01 ~]$ sudo su [root@ora01 admin]# su - grid [grid@ora01 ~]$ crsctl stat res -t -------------------------------------------------------------------------------- Name Target State Server State details -------------------------------------------------------------------------------- Local Resources -------------------------------------------------------------------------------- ora.LISTENER.lsnr ONLINE ONLINE ora01 STABLE ONLINE ONLINE ora02 STABLE ora.chad ONLINE ONLINE ora01 STABLE ONLINE ONLINE ora02 STABLE ora.net1.network ONLINE ONLINE ora01 STABLE ONLINE ONLINE ora02 STABLE ora.ons ONLINE ONLINE ora01 STABLE ONLINE ONLINE ora02 STABLE ora.proxy_advm OFFLINE OFFLINE ora01 STABLE OFFLINE OFFLINE ora02 STABLE -------------------------------------------------------------------------------- Cluster Resources -------------------------------------------------------------------------------- ora.ASMNET1LSNR_ASM.lsnr(ora.asmgroup) 1 ONLINE ONLINE ora01 STABLE 2 ONLINE ONLINE ora02 STABLE ora.DATA.dg(ora.asmgroup) 1 ONLINE ONLINE ora01 STABLE 2 ONLINE ONLINE ora02 STABLE ora.LISTENER_SCAN1.lsnr 1 ONLINE ONLINE ora01 STABLE ora.LISTENER_SCAN2.lsnr 1 ONLINE ONLINE ora02 STABLE ora.LISTENER_SCAN3.lsnr 1 ONLINE ONLINE ora02 STABLE ora.RECO.dg(ora.asmgroup) 1 ONLINE ONLINE ora01 STABLE 2 ONLINE ONLINE ora02 STABLE ora.VOTE.dg(ora.asmgroup) 1 ONLINE ONLINE ora01 STABLE 2 ONLINE ONLINE ora02 STABLE ora.asm(ora.asmgroup) 1 ONLINE ONLINE ora01 Started,STABLE 2 ONLINE ONLINE ora02 Started,STABLE ora.asmnet1.asmnetwork(ora.asmgroup) 1 ONLINE ONLINE ora01 STABLE 2 ONLINE ONLINE ora02 STABLE ora.cvu 1 ONLINE ONLINE ora02 STABLE ora.ntap.db 1 ONLINE ONLINE ora01 Open,HOME=/u01/app/o racle2/product/19.0. 0/NTAP,STABLE 2 ONLINE ONLINE ora02 Open,HOME=/u01/app/o racle2/product/19.0. 0/NTAP,STABLE ora.ora01.vip 1 ONLINE ONLINE ora01 STABLE ora.ora02.vip 1 ONLINE ONLINE ora02 STABLE ora.qosmserver 1 ONLINE ONLINE ora02 STABLE ora.scan1.vip 1 ONLINE ONLINE ora01 STABLE ora.scan2.vip 1 ONLINE ONLINE ora02 STABLE ora.scan3.vip 1 ONLINE ONLINE ora02 STABLE -------------------------------------------------------------------------------- [grid@ora01 ~]$
-
验证Oracle ASM。
[grid@ora01 ~]$ 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 1048576 163840 163723 0 163723 0 N DATA/ MOUNTED EXTERN N 512 512 4096 1048576 163840 163729 0 163729 0 N RECO/ MOUNTED NORMAL N 512 512 4096 4194304 30720 29732 10240 9746 0 Y VOTE/ ASMCMD> lsdsk Path AFD:ORA_CRS_01 AFD:ORA_CRS_02 AFD:ORA_CRS_03 AFD:ORA_DATA_01 AFD:ORA_DATA_02 AFD:ORA_DATA_03 AFD:ORA_DATA_04 AFD:ORA_LOGS_01 AFD:ORA_LOGS_02 ASMCMD> afd_state ASMCMD-9526: The AFD state is 'LOADED' and filtering is 'ENABLED' on host 'ora01' ASMCMD>
-
列出集群节点。
[grid@ora01 ~]$ olsnodes ora01 ora02
-
验证OCR/投票。
[grid@ora01 ~]$ ocrcheck Status of Oracle Cluster Registry is as follows : Version : 4 Total space (kbytes) : 901284 Used space (kbytes) : 84536 Available space (kbytes) : 816748 ID : 118267044 Device/File Name : +VOTE Device/File integrity check succeeded Device/File not configured Device/File not configured Device/File not configured Device/File not configured Cluster registry integrity check succeeded Logical corruption check bypassed due to non-privileged user [grid@ora01 ~]$ crsctl query css votedisk ## STATE File Universal Id File Name Disk group -- ----- ----------------- --------- --------- 1. ONLINE 1ca3fcb0bd354f8ebf00ac97d70e0824 (AFD:ORA_CRS_01) [VOTE] 2. ONLINE 708f84d505a54f58bf41124e09a5115a (AFD:ORA_CRS_02) [VOTE] 3. ONLINE 133ecfcedb684fe6bfdc1899b90f91c7 (AFD:ORA_CRS_03) [VOTE] Located 3 voting disk(s). [grid@ora01 ~]$
-
验证Oracle侦听器。
[grid@ora01 ~]$ lsnrctl status listener LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 16-AUG-2024 10:21:38 Copyright (c) 1991, 2022, Oracle. All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER))) STATUS of the LISTENER ------------------------ Alias LISTENER Version TNSLSNR for Linux: Version 19.0.0.0.0 - Production Start Date 14-AUG-2024 16:24:48 Uptime 1 days 17 hr. 56 min. 49 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /u01/app/grid/19.0.0/network/admin/listener.ora Listener Log File /u01/app/oracle/diag/tnslsnr/ora01/listener/alert/log.xml Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.61.180.21)(PORT=1521))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.61.180.93)(PORT=1521))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=ora01.solutions.netapp.com)(PORT=5500))(Security=(my_wallet_directory=/u01/app/oracle2/product/19.0.0/NTAP/admin/NTAP/xdb_wallet))(Presentation=HTTP)(Session=RAW)) Services Summary... Service "+ASM" has 1 instance(s). Instance "+ASM1", status READY, has 1 handler(s) for this service... Service "+ASM_DATA" has 1 instance(s). Instance "+ASM1", status READY, has 1 handler(s) for this service... Service "+ASM_RECO" has 1 instance(s). Instance "+ASM1", status READY, has 1 handler(s) for this service... Service "+ASM_VOTE" has 1 instance(s). Instance "+ASM1", status READY, has 1 handler(s) for this service... Service "1fbf0aaa1d13cb5ae06315b43d0ab734.solutions.netapp.com" has 1 instance(s). Instance "NTAP1", status READY, has 1 handler(s) for this service... Service "1fbf142e7db2d090e06315b43d0a6894.solutions.netapp.com" has 1 instance(s). Instance "NTAP1", status READY, has 1 handler(s) for this service... Service "1fbf203c3a46d7bae06315b43d0ae055.solutions.netapp.com" has 1 instance(s). Instance "NTAP1", status READY, has 1 handler(s) for this service... Service "NTAP.solutions.netapp.com" has 1 instance(s). Instance "NTAP1", status READY, has 1 handler(s) for this service... Service "NTAPXDB.solutions.netapp.com" has 1 instance(s). Instance "NTAP1", status READY, has 1 handler(s) for this service... Service "ntap_pdb1.solutions.netapp.com" has 1 instance(s). Instance "NTAP1", status READY, has 1 handler(s) for this service... Service "ntap_pdb2.solutions.netapp.com" has 1 instance(s). Instance "NTAP1", status READY, has 1 handler(s) for this service... Service "ntap_pdb3.solutions.netapp.com" has 1 instance(s). Instance "NTAP1", status READY, has 1 handler(s) for this service... The command completed successfully [grid@ora01 ~]$ [grid@ora01 ~]$ tnsping ntap-scan TNS Ping Utility for Linux: Version 19.0.0.0.0 - Production on 16-AUG-2024 12:07:58 Copyright (c) 1997, 2022, Oracle. All rights reserved. Used parameter files: /u01/app/grid/19.0.0/network/admin/sqlnet.ora Used EZCONNECT adapter to resolve the alias Attempting to contact (DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=))(ADDRESS=(PROTOCOL=tcp)(HOST=10.61.180.90)(PORT=1521))(ADDRESS=(PROTOCOL=tcp)(HOST=10.61.180.91)(PORT=1521))(ADDRESS=(PROTOCOL=tcp)(HOST=10.61.180.92)(PORT=1521))) OK (10 msec)
-
更改为Oracle用户以验证集群模式数据库。
[oracle@ora02 ~]$ sqlplus / as sysdba SQL*Plus: Release 19.0.0.0.0 - Production on Fri Aug 16 11:32:23 2024 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, log_mode from v$database; NAME OPEN_MODE LOG_MODE --------- -------------------- ------------ NTAP READ WRITE ARCHIVELOG SQL> show pdbs CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 NTAP_PDB1 READ WRITE NO 4 NTAP_PDB2 READ WRITE NO 5 NTAP_PDB3 READ WRITE NO SQL> select name from v$datafile 2 union 3 select name from v$controlfile 4 union 5 select member from v$logfile; NAME -------------------------------------------------------------------------------- +DATA/NTAP/1FBF0AAA1D13CB5AE06315B43D0AB734/DATAFILE/sysaux.275.1177083797 +DATA/NTAP/1FBF0AAA1D13CB5AE06315B43D0AB734/DATAFILE/system.274.1177083797 +DATA/NTAP/1FBF0AAA1D13CB5AE06315B43D0AB734/DATAFILE/undo_2.277.1177083853 +DATA/NTAP/1FBF0AAA1D13CB5AE06315B43D0AB734/DATAFILE/undotbs1.273.1177083797 +DATA/NTAP/1FBF0AAA1D13CB5AE06315B43D0AB734/DATAFILE/users.278.1177083901 +DATA/NTAP/1FBF142E7DB2D090E06315B43D0A6894/DATAFILE/sysaux.281.1177083903 +DATA/NTAP/1FBF142E7DB2D090E06315B43D0A6894/DATAFILE/system.280.1177083903 +DATA/NTAP/1FBF142E7DB2D090E06315B43D0A6894/DATAFILE/undo_2.283.1177084061 +DATA/NTAP/1FBF142E7DB2D090E06315B43D0A6894/DATAFILE/undotbs1.279.1177083903 +DATA/NTAP/1FBF142E7DB2D090E06315B43D0A6894/DATAFILE/users.284.1177084103 +DATA/NTAP/1FBF203C3A46D7BAE06315B43D0AE055/DATAFILE/sysaux.287.1177084105 NAME -------------------------------------------------------------------------------- +DATA/NTAP/1FBF203C3A46D7BAE06315B43D0AE055/DATAFILE/system.286.1177084105 +DATA/NTAP/1FBF203C3A46D7BAE06315B43D0AE055/DATAFILE/undo_2.289.1177084123 +DATA/NTAP/1FBF203C3A46D7BAE06315B43D0AE055/DATAFILE/undotbs1.285.1177084105 +DATA/NTAP/1FBF203C3A46D7BAE06315B43D0AE055/DATAFILE/users.290.1177084125 +DATA/NTAP/86B637B62FE07A65E053F706E80A27CA/DATAFILE/sysaux.266.1177081837 +DATA/NTAP/86B637B62FE07A65E053F706E80A27CA/DATAFILE/system.265.1177081837 +DATA/NTAP/86B637B62FE07A65E053F706E80A27CA/DATAFILE/undotbs1.267.1177081837 +DATA/NTAP/CONTROLFILE/current.261.1177080403 +DATA/NTAP/DATAFILE/sysaux.258.1177080245 +DATA/NTAP/DATAFILE/system.257.1177080129 +DATA/NTAP/DATAFILE/undotbs1.259.1177080311 NAME -------------------------------------------------------------------------------- +DATA/NTAP/DATAFILE/undotbs2.269.1177082203 +DATA/NTAP/DATAFILE/users.260.1177080311 +DATA/NTAP/ONLINELOG/group_1.262.1177080427 +DATA/NTAP/ONLINELOG/group_2.263.1177080427 +DATA/NTAP/ONLINELOG/group_3.270.1177083297 +DATA/NTAP/ONLINELOG/group_4.271.1177083313 +RECO/NTAP/CONTROLFILE/current.256.1177080403 +RECO/NTAP/ONLINELOG/group_1.257.1177080427 +RECO/NTAP/ONLINELOG/group_2.258.1177080427 +RECO/NTAP/ONLINELOG/group_3.259.1177083313 +RECO/NTAP/ONLINELOG/group_4.260.1177083315 33 rows selected.
-
或者、在成功执行操作手册后、登录到EM Express以验证RAC数据库。
使用SnapCenter在VCF中进行Oracle RAC数据库备份和恢复
SnapCenter设置
Details
与版本5相比、SnapCenter版本6具有许多增强功能、包括对VMware Vvol数据存储库的支持。SnapCenter依靠数据库VM上的主机端插件来执行应用程序感知型数据保护管理活动。有关适用于Oracle的NetApp SnapCenter插件的详细信息,请参阅本文档 "您可以使用适用于 Oracle 数据库的插件执行什么操作"。下面简要介绍了在VCF中为Oracle RAC数据库备份和恢复设置SnapCenter版本6的步骤。
-
从NetApp支持站点下载SnapCenter软件版本6: "NetApp 支持下载"。
-
以管理员身份登录到托管Windows VM的SnapCenter。SnapCenter 6.0的安装前提条件。
-
以管理员身份从安装最新的Java JDK "获取适用于桌面应用程序的Java"。
如果Windows服务器部署在域环境中、请将域用户添加到SnapCenter服务器本地管理员组、然后使用域用户运行SnapCenter安装。 -
以安装用户身份通过HTTPS端口8846登录到SnapCenter UI、以配置适用于Oracle的SnapCenter。
-
如果您是新用户、请查看
Get Started
菜单以快速了解SnapCenter。 -
更新
Hypervisor Settings
在全局设置中。 -
使用集群管理IP将ONTAP存储集群添加到
Storage Systems
、并通过集群管理员用户ID进行身份验证。 -
添加Oracle RAC数据库VM和vSphere插件VM
Credential
、以便通过SnapCenter访问DB VM和vSphere插件VM。此凭据应在Linux VM上具有sudo权限。您可以为VM的不同管理用户ID创建不同的凭据。vShpere插件VM管理用户ID是在vCenter中部署插件VM时定义的。 -
`Hosts`使用在上一步中创建的数据库VM凭据、在VCF中将Oracle RAC数据库VM添加到。
-
同样、使用在上一步中创建的vSphere插件VM凭据将NetApp VMware插件VM添加到
Hosts
。 -
最后、在DB VM上发现Oracle数据库后、返回
Settings
-Policies
以创建Oracle数据库备份策略。理想情况下、请创建一个单独的归档日志备份策略、以便更频繁地进行备份、从而最大限度地减少发生故障时的数据丢失。
|
确保可以将SnapCenter服务器名称解析为DB VM和vSphere插件VM中的IP地址。同样、数据库虚拟机名称和vSphere插件虚拟机名称也可以从SnapCenter服务器解析为IP地址。 |
数据库备份
Details
与基于RMAN的传统方法相比、SnapCenter利用ONTAP卷快照加快数据库备份、还原或克隆速度。由于数据库在创建快照之前处于Oracle备份模式、因此这些快照是应用程序一致的。
-
从
Resources
选项卡中、将虚拟机添加到SnapCenter后、系统会自动发现虚拟机上的任何数据库。最初、数据库状态显示为Not protected
。 -
单击数据库以启动工作流、从而为数据库启用保护。
-
应用备份策略、根据需要设置计划。
-
根据需要设置备份作业通知。
-
查看摘要并完成以启用数据库保护。
-
单击可触发按需备份作业
Back up Now
。 -
可通过监控备份作业
Monitor
选项卡、单击正在运行的作业。 -
单击数据库以查看为RAC数据库完成的备份集。
数据库还原/恢复
Details
SnapCenter为Oracle RAC数据库提供了许多从快照备份还原和恢复选项。在此示例中、我们演示了如何从较早的快照备份进行还原、然后将数据库前滚到最后一个可用日志。
-
首先、运行快照备份。然后、创建一个测试表并在表中插入一行、以便在创建测试表重新进入测试表之前验证从Snapshot映像恢复的数据库。
[oracle@ora01 ~]$ sqlplus / as sysdba SQL*Plus: Release 19.0.0.0.0 - Production on Mon Aug 19 10:31:12 2024 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> show pdbs CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 NTAP_PDB1 READ WRITE NO 4 NTAP_PDB2 READ WRITE NO 5 NTAP_PDB3 READ WRITE NO SQL> alter session set container=ntap_pdb1; Session altered. SQL> create table test (id integer, dt timestamp, event varchar(100)); Table created. SQL> insert into test values (1, sysdate, 'validate SnapCenter rac database restore on VMware vVols storage'); 1 row created. SQL> commit; Commit complete. SQL> select * from test; ID ---------- DT --------------------------------------------------------------------------- EVENT -------------------------------------------------------------------------------- 1 19-AUG-24 10.36.04.000000 AM validate SnapCenter rac database restore on VMware vVols storage SQL>
-
从SnapCenter选项卡中
Resources
、打开数据库NTAP1备份拓扑页面。突出显示3天前创建的快照数据备份集。单击Restore
以启动还原-恢复工作流。 -
选择还原范围。
-
选择恢复范围至
All Logs
。 -
指定要运行的任何可选预处理脚本。
-
指定要运行的任何可选后处理脚本。
-
根据需要发送作业报告。
-
查看摘要、然后单击
Finish
启动还原和恢复。 -
从RAC DB VM ora01中、验证成功还原/恢复数据库是否已前滚到其最新状态、并恢复了3天后创建的测试表。
[root@ora01 ~]# su - oracle [oracle@ora01 ~]$ sqlplus / as sysdba SQL*Plus: Release 19.0.0.0.0 - Production on Mon Aug 19 11:51:15 2024 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 --------- -------------------- NTAP READ WRITE SQL> sho pdbs CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 NTAP_PDB1 READ WRITE NO 4 NTAP_PDB2 READ WRITE NO 5 NTAP_PDB3 READ WRITE NO SQL> alter session set container=ntap_pdb1; Session altered. SQL> select * from test; ID ---------- DT --------------------------------------------------------------------------- EVENT -------------------------------------------------------------------------------- 1 19-AUG-24 10.36.04.000000 AM validate SnapCenter rac database restore on VMware vVols storage SQL> select current_timestamp from dual; CURRENT_TIMESTAMP --------------------------------------------------------------------------- 19-AUG-24 11.55.20.079686 AM -04:00 SQL> exit Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.18.0.0.0
至此、我们完成了使用VVO尔 在VCF中对Oracle RAC数据库进行SnapCenter备份、还原和恢复的演示。
从何处查找追加信息
要了解有关本文档中所述信息的更多信息,请查看以下文档和 / 或网站:
-
VMware Cloud Foundation
-
NetApp企业数据库解决方案
-
SnapCenter 软件 6.0
-
适用于VMware vSphere的ONTAP工具文档