TR-4979:在 VMware Cloud on AWS 中使用客户机安装的 FSx ONTAP实现简化的自主管理 Oracle
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 的实验室环境中进行的,该环境可能与最终部署环境不匹配。有关更多信息,请参阅部署考虑的关键因素 。
架构
硬件和软件组件
硬件 |
||
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
部署需要以下先决条件。
-
已创建使用 VMware Cloud on AWS 的软件定义数据中心 (SDDC)。有关如何在 VMC 中创建 SDDC 的详细说明,请参阅 VMware 文档"VMware Cloud on AWS 入门"
-
已设置 AWS 账户,并在您的 AWS 账户内创建了必要的 VPC 和网络段。 AWS 帐户已链接到您的 VMC SDDC。
-
从 AWS EC2 控制台部署Amazon FSx ONTAP存储 HA 集群来托管 Oracle 数据库卷。如果您不熟悉 FSx 存储的部署,请参阅文档"创建 FSx ONTAP文件系统"以获得分步说明。
-
上述步骤可以使用以下 Terraform 自动化工具包执行,该工具包创建一个 EC2 实例作为 VMC 中通过 SSH 和 FSx 文件系统访问 SDDC 的跳转主机。在执行之前,请仔细查看说明并更改变量以适合您的环境。
git clone https://github.com/NetApp-Automation/na_aws_fsx_ec2_deploy.git
-
在 AWS 上的 VMware SDDC 中构建虚拟机,以托管要在 VMC 中部署的 Oracle 环境。在我们的演示中,我们构建了两个 Linux VM 作为 Oracle DB 服务器,一个 Windows 服务器作为SnapCenter服务器,以及一个可选的 Linux 服务器作为 Ansible 控制器,以便在需要时自动安装或配置 Oracle。以下是解决方案验证的实验室环境快照。
-
另外, NetApp还提供多个自动化工具包,以便在适用时运行 Oracle 部署和配置。
|
确保您已在 Oracle VM 根卷中分配至少 50G,以便有足够的空间来存放 Oracle 安装文件。 |
DB VM 内核配置
Details
在满足先决条件后,通过 SSH 以管理员用户身份登录 Oracle VM,并以 root 用户身份使用 sudo 配置 Linux 内核以进行 Oracle 安装。 Oracle 安装文件可以暂存于 AWS S3 存储桶中并传输到 VM 中。
-
创建暂存目录 `/tmp/archive`文件夹并设置 `777`允许。
mkdir /tmp/archive
chmod 777 /tmp/archive
-
下载 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 ~]$
-
安装 Oracle 19c 预安装 RPM,满足大多数内核配置要求。
yum install /tmp/archive/oracle-database-preinstall-19c-1.0-2.el8.x86_64.rpm
-
下载并安装缺失的 `compat-libcap1`在 Linux 8 中。
yum install /tmp/archive/compat-libcap1-1.10-7.el7.x86_64.rpm
-
从NetApp下载并安装NetApp主机实用程序。
yum install /tmp/archive/netapp_linux_unified_host_utilities-7-1.x86_64.rpm
-
安装
policycoreutils-python-utils
。yum install /tmp/archive/policycoreutils-python-utils-2.9-9.el8.noarch.rpm
-
安装开放的JDK版本1.8。
yum install java-1.8.0-openjdk.x86_64
-
安装 iSCSI 启动器实用程序。
yum install iscsi-initiator-utils
-
安装 sg3_utils。
yum install sg3_utils
-
安装设备映射器多路径。
yum install device-mapper-multipath
-
在当前系统中禁用透明大页面。
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
-
添加以下行 `/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
-
通过更改禁用 selinux
SELINUX=enforcing`到 `SELINUX=disabled
。您必须重新启动主机才能使更改生效。vi /etc/sysconfig/selinux
-
添加以下行到 `limit.conf`设置文件描述符限制和堆栈大小。
vi /etc/security/limits.conf
* hard nofile 65536 * soft stack 10240
-
如果没有配置交换空间,请使用以下指令为 DB VM 添加交换空间:"如何使用交换文件分配内存作为 Amazon EC2 实例中的交换空间?"要添加的具体空间量取决于 RAM 的大小,最高可达 16G。
-
改变 `node.session.timeo.replacement_timeout`在 `iscsi.conf`配置文件从120秒减少到5秒。
vi /etc/iscsi/iscsid.conf
-
在 EC2 实例上启用并启动 iSCSI 服务。
systemctl enable iscsid
systemctl start iscsid
-
检索用于数据库 LUN 映射的 iSCSI 启动器地址。
cat /etc/iscsi/initiatorname.iscsi
-
为 asm 管理用户(oracle)添加 asm 组。
groupadd asmadmin
groupadd asmdba
groupadd asmoper
-
修改 oracle 用户以添加 asm 组作为辅助组(oracle 用户应该在 Oracle 预安装 RPM 安装后创建)。
usermod -a -G asmadmin oracle
usermod -a -G asmdba oracle
usermod -a -G asmoper oracle
-
如果 Linux 防火墙处于活动状态,请停止并禁用它。
systemctl stop firewalld
systemctl disable firewalld
-
通过取消注释为管理员用户启用无密码 sudo
# %wheel ALL=(ALL) NOPASSWD: ALL
/etc/sudoers 文件中的行。更改文件权限以进行编辑。chmod 640 /etc/sudoers
vi /etc/sudoers
chmod 440 /etc/sudoers
-
重启 EC2 实例。
配置 FSx ONTAP LUN 并将其映射到 DB VM
Details
通过 ssh 和 FSx 集群管理 IP 以 fsxadmin 用户身份登录 FSx 集群,从命令行配置三个卷。在卷内创建 LUN 来托管 Oracle 数据库二进制文件、数据和日志文件。
-
以 fsxadmin 用户身份通过 SSH 登录 FSx 集群。
ssh fsxadmin@10.49.0.74
-
执行以下命令为 Oracle 二进制文件创建卷。
vol create -volume ora_02_biny -aggregate aggr1 -size 50G -state online -type RW -snapshot-policy none -tiering-policy snapshot-only
-
执行以下命令为 Oracle 数据创建卷。
vol create -volume ora_02_data -aggregate aggr1 -size 100G -state online -type RW -snapshot-policy none -tiering-policy snapshot-only
-
执行以下命令为 Oracle 日志创建卷。
vol create -volume ora_02_logs -aggregate aggr1 -size 100G -state online -type RW -snapshot-policy none -tiering-policy snapshot-only
-
验证创建的卷。
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%
-
在数据库二进制卷内创建二进制 LUN。
lun create -path /vol/ora_02_biny/ora_02_biny_01 -size 40G -ostype linux
-
在数据库数据卷内创建数据 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
-
在数据库日志卷内创建日志 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
-
使用从上面的 EC2 内核配置的第 14 步检索到的启动器为 EC2 实例创建一个 igroup。
igroup create -igroup ora_02 -protocol iscsi -ostype linux -initiator iqn.1994-05.com.redhat:f65fed7641c2
-
将 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
-
验证 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存储。
-
从 Windows 跳转服务器使用 Putty 以管理员用户身份通过 SSH 登录到 DB VM。
-
使用 SVM iSCSI IP 地址发现 FSx iSCSI 端点。更改为特定于您的环境的门户地址。
sudo iscsiadm iscsiadm --mode discovery --op update --type sendtargets --portal 10.49.0.12
-
通过登录每个目标建立 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.
-
查看并验证活动 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)
-
验证 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
-
配置 `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.*" }
-
启动多路径服务。
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
-
通过 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.
-
更新 `/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 } }
-
重新启动多路径服务以验证 `/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
-
使用单个主分区对二进制 LUN 进行分区。
sudo fdisk /dev/mapper/ora_02_biny_01
-
使用 XFS 文件系统格式化分区的二进制 LUN。
sudo mkfs.xfs /dev/mapper/ora_02_biny_01p1
-
挂载二进制 LUN 到
/u01
。sudo mkdir /u01
sudo mount -t xfs /dev/mapper/ora_02_biny_01p1 /u01
-
改变 `/u01`挂载点所有权归 oracle 用户及其关联的主要组。
sudo chown oracle:oinstall /u01
-
查找二进制 LUN 的 UUI。
sudo blkid /dev/mapper/ora_02_biny_01p1
-
添加挂载点
/etc/fstab
。sudo vi /etc/fstab
添加以下行。
UUID=d89fb1c9-4f89-4de4-b4d9-17754036d11d /u01 xfs defaults,nofail 0 2
-
以 root 用户身份添加 Oracle 设备的 udev 规则。
vi /etc/udev/rules.d/99-oracle-asmdevices.rules
包括以下条目:
ENV{DM_NAME}=="ora*", GROUP:="oinstall", OWNER:="oracle", MODE:="660"
-
以 root 用户身份重新加载 udev 规则。
udevadm control --reload-rules
-
以root用户身份触发udev规则。
udevadm trigger
-
以 root 用户身份重新加载 multipathd。
systemctl restart multipathd
-
重新启动 EC2 实例主机。
Oracle 网格基础设施安装
Details
-
通过 SSH 以管理员用户身份登录数据库虚拟机,并通过取消注释启用密码验证
PasswordAuthentication yes`然后注释掉 `PasswordAuthentication no
。sudo vi /etc/ssh/sshd_config
-
重新启动 sshd 服务。
sudo systemctl restart sshd
-
重置 Oracle 用户密码。
sudo passwd oracle
-
以 Oracle Restart 软件所有者用户 (oracle) 身份登录。创建 Oracle 目录如下:
mkdir -p /u01/app/oracle
mkdir -p /u01/app/oraInventory
-
更改目录权限设置。
chmod -R 775 /u01/app
-
创建网格主目录并更改至该目录。
mkdir -p /u01/app/oracle/product/19.0.0/grid
cd /u01/app/oracle/product/19.0.0/grid
-
解压网格安装文件。
unzip -q /tmp/archive/LINUX.X64_193000_grid_home.zip
-
从网格主页中删除 `OPatch`目录。
rm -rf OPatch
-
从网格主页,解压缩
p6880880_190000_Linux-x86-64.zip
。unzip -q /tmp/archive/p6880880_190000_Linux-x86-64.zip
-
从网格主页,修改
cv/admin/cvu_config
,取消注释并替换CV_ASSUME_DISTID=OEL5`和 `CV_ASSUME_DISTID=OL7
。vi cv/admin/cvu_config
-
准备一个 `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
-
以 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
-
初始化磁盘设备以供 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
-
安装
cvuqdisk-1.0.10-1.rpm
。rpm -ivh /u01/app/oracle/product/19.0.0/grid/cv/rpm/cvuqdisk-1.0.10-1.rpm
-
取消设置
$ORACLE_BASE
。unset ORACLE_BASE
-
以 Oracle 用户身份登录 EC2 实例并提取补丁 `/tmp/archive`文件夹。
unzip -q /tmp/archive/p34762026_190000_Linux-x86-64.zip -d /tmp/archive
-
从 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
-
以 root 用户身份执行以下脚本:
/u01/app/oraInventory/orainstRoot.sh
/u01/app/oracle/product/19.0.0/grid/root.sh
-
以 root 用户身份重新加载 multipathd。
systemctl restart multipathd
-
以Oracle用户执行以下命令完成配置:
/u01/app/oracle/product/19.0.0/grid/gridSetup.sh -executeConfigTools -responseFile /tmp/archive/gridsetup.rsp -silent
-
以 Oracle 用户身份创建 LOGS 磁盘组。
bin/asmca -silent -sysAsmPassword 'yourPWD' -asmsnmpPassword 'yourPWD' -createDiskGroup -diskGroupName LOGS -disk 'AFD:LOGS*' -redundancy EXTERNAL -au_size 4
-
以 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 --------------------------------------------------------------------------------
-
验证 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]$
-
验证 HA 服务状态。
[oracle@ora_02 bin]$ ./crsctl check has CRS-4638: Oracle High Availability Services is online
Oracle数据库安装
Details
-
以 Oracle 用户身份登录并取消设置 `$ORACLE_HOME`和 `$ORACLE_SID`如果已设置。
unset ORACLE_HOME
unset ORACLE_SID
-
创建 Oracle DB 主目录并将目录更改为该目录。
mkdir /u01/app/oracle/product/19.0.0/cdb3
cd /u01/app/oracle/product/19.0.0/cdb3
-
解压缩 Oracle DB 安装文件。
unzip -q /tmp/archive/LINUX.X64_193000_db_home.zip
-
从数据库主目录删除 `OPatch`目录。
rm -rf OPatch
-
从 DB home 解压缩
p6880880_190000_Linux-x86-64.zip
。unzip -q /tmp/archive/p6880880_190000_Linux-x86-64.zip
-
从 DB 主页修改
cv/admin/cvu_config`并取消注释并替换 `CV_ASSUME_DISTID=OEL5`和 `CV_ASSUME_DISTID=OL7
。vi cv/admin/cvu_config
-
从 `/tmp/archive`目录中,解压DB 19.18 RU补丁。
unzip -q /tmp/archive/p34765931_190000_Linux-x86-64.zip -d /tmp/archive
-
准备 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
-
从 cdb3 home /u01/app/oracle/product/19.0.0/cdb3 执行静默纯软件 DB 安装。
./runInstaller -applyRU /tmp/archive/34765931/ -silent -ignorePrereqFailure -responseFile /tmp/archive/dbinstall.rsp
-
以 root 用户身份运行 `root.sh`仅软件安装后的脚本。
/u01/app/oracle/product/19.0.0/db1/root.sh
-
以 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
-
以 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.
-
重复步骤 2 中的相同步骤,在单独的 ORACLE_HOME /u01/app/oracle/product/19.0.0/cdb4 中使用单个 PDB 创建容器数据库 cdb4。
-
以 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 --------------------------------------------------------------------------------
-
设置 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'
-
验证为 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>
-
验证为 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.
-
使用 sqlplus 以 sysdba 身份登录到每个 cdb,并将 DB 恢复目标大小设置为两个 cdb 的 +LOGS 磁盘组大小。
alter system set db_recovery_file_dest_size = 40G scope=both;
-
使用 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 数据库备份、恢复和克隆的高级步骤。
-
从NetApp支持站点下载最新版本的SnapCenter software:"NetApp支持下载" 。
-
以管理员身份安装最新的 Java JDK"获取用于桌面应用程序的 Java"在SnapCenter服务器 Windows 主机上。
如果 Windows 服务器部署在域环境中,请将域用户添加到SnapCenter服务器本地管理员组,并使用域用户运行SnapCenter安装。 -
以安装用户身份通过 HTTPS 端口 8846 登录SnapCenter UI 以配置SnapCenter for Oracle。
-
更新 `Hypervisor Settings`在全局设置中。
-
创建 Oracle 数据库备份策略。理想情况下,创建单独的存档日志备份策略,以允许更频繁的备份间隔,从而最大限度地减少故障时的数据丢失。
-
添加数据库服务器 `Credential`用于SnapCenter访问 DB VM。该凭证应在 Linux VM 上具有 sudo 权限或在 Windows VM 上具有管理员权限。
-
将 FSx ONTAP存储集群添加到 `Storage Systems`具有集群管理 IP 并通过 fsxadmin 用户 ID 进行身份验证。
-
在 VMC 中添加 Oracle 数据库 VM `Hosts`使用前面步骤 6 中创建的服务器凭证。
|
确保SnapCenter服务器名称可以解析为 DB VM 的 IP 地址,并且 DB VM 名称可以解析为SnapCenter服务器的 IP 地址。 |
数据库备份
Details
与传统的基于 RMAN 的方法相比, SnapCenter利用 FSx ONTAP卷快照实现更快的数据库备份、恢复或克隆。由于数据库在快照之前处于 Oracle 备份模式,因此快照与应用程序一致。
-
从
Resources`选项卡,将 VM 添加到SnapCenter后,会自动发现 VM 上的任何数据库。最初,数据库状态显示为 `Not protected
。 -
创建一个资源组,按照逻辑分组(例如按 DB VM 等)备份数据库。在此示例中,我们创建了一个 ora_02_data 组,对 VM ora_02 上的所有数据库进行完整的在线数据库备份。资源组 ora_02_log 仅在 VM 上执行归档日志的备份。创建资源组还定义了执行备份的计划。
-
还可以通过单击 `Back up Now`并按照资源组中定义的策略执行备份。
-
备份作业可以在 `Monitor`单击正在运行的作业来打开选项卡。
-
备份成功后,数据库状态显示作业状态和最近一次备份时间。
-
单击数据库以查看每个数据库的备份集。
数据库恢复
Details
SnapCenter为 Oracle 数据库提供了多种从快照备份中恢复的选项。在此示例中,我们演示了时间点恢复以恢复错误删除的表。在VM ora_02上,两个数据库cdb3、cdb4共享相同的+DATA、+LOGS磁盘组。一个数据库的数据库恢复不会影响另一个数据库的可用性。
-
首先,创建一个测试表并在表中插入一行以验证时间点恢复。
[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
-
我们从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
-
从上一步创建的备份集中,记下日志备份的 SCN 号。点击 `Restore`启动恢复工作流程。
-
选择恢复范围。
-
选择恢复范围直至上次完整数据库备份的日志 SCN。
-
指定要运行的任何可选预脚本。
-
指定要运行的任何可选的后续脚本。
-
如果需要的话,发送工作报告。
-
查看摘要并点击 `Finish`启动恢复和复苏。
-
从 Oracle Restart 网格控制中,我们观察到当 cdb3 处于恢复和恢复状态时,cdb4 处于在线且可用状态。
-
从 `Monitor`选项卡,打开作业来查看详细信息。
-
从 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。
-
打开数据库cdb3备份列表。从选择的数据备份中,单击 `Clone`按钮启动数据库克隆工作流程。
-
将克隆数据库命名为 SID。
-
在 VMC 中选择一个 VM 作为目标数据库主机。主机上应该安装并配置相同的 Oracle 版本。
-
在目标主机上选择适当的 ORACLE_HOME、用户和组。保留默认凭证。
-
更改克隆数据库参数以满足克隆数据库的配置或资源要求。
-
选择恢复范围。 `Until Cancel`将克隆恢复到备份集中最后一个可用的日志文件。
-
查看摘要并启动克隆作业。
-
监控克隆作业的执行情况 `Monitor`选项卡。
-
克隆的数据库会立即在SnapCenter中注册。
-
从 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备份、恢复和克隆的演示。
在哪里可以找到更多信息
要了解有关本文档中描述的信息的更多信息,请查看以下文档和/或网站:
-
VMware Cloud on AWS 文档
-
使用新数据库安装为独立服务器安装 Oracle Grid Infrastructure
-
使用响应文件安装和配置 Oracle 数据库
-
Amazon FSx ONTAP