TR-4974:《Oracle 19c在使用NFS/ASM的AWS FSX/EC2上独立重新启动》
NetApp公司Allen Cao、Niyaz Mohamed
本解决方案提供了在使用NFS协议的AWS FSx ONTAP存储和EC2计算实例中部署和保护Oracle数据库的概述和详细信息、并在使用ASM作为卷管理器的独立重新启动中配置Oracle数据库。
目的
ASM (自动存储管理)是一种受欢迎的Oracle存储卷管理器、广泛应用于许多Oracle安装。这也是Oracle建议的存储管理解决方案。它提供了传统卷管理器和文件系统的替代方案。自Oracle 11g以来、ASM已随网格基础架构打包、而不是数据库打包在一起。因此、要在不使用RAC的情况下使用Oracle ASM进行存储管理、您必须在独立服务器中安装Oracle网格基础架构、也称为Oracle Restart。这样做确实会在以其他方式简化Oracle数据库部署过程中增加更多的复杂性。但是、顾名思义、在重新启动模式下部署Oracle时、任何出现故障的Oracle服务都会在主机重新启动后重新启动、而无需用户干预、从而提供一定程度的高可用性或HA功能。
Oracle ASM通常部署在FC、iSCSI存储协议和LUN中作为原始存储设备。但是、Oracle也支持基于NFS协议和NFS文件系统的ASM配置。在本文档中、我们将演示如何在使用EC2计算实例的Amazon FSx ONTAP存储环境中部署采用NFS协议和Oracle ASM的Oracle 19c数据库。我们还演示了如何通过NetApp BlueXP控制台使用NetApp SnapCenter 服务来备份、还原和克隆Oracle数据库、以便在AWS公共云中进行开发/测试或其他存储效率数据库操作用例。
此解决方案 可解决以下使用情形:
-
使用NFS/ASM在Amazon FSx ONTAP存储和EC2计算实例中部署Oracle数据库
-
使用NFS/ASM在公共AWS云中测试和验证Oracle工作负载
-
测试和验证AWS中部署的Oracle数据库重新启动功能
audience
此解决方案 适用于以下人员:
-
希望使用NFS/ASM在AWS公共云中部署Oracle的数据库助理。
-
一名数据库解决方案 架构师、希望在AWS公共云中测试Oracle工作负载。
-
希望部署和管理部署到AWS FSX存储的Oracle数据库的存储管理员。
-
希望在AWS FSX/EC2中建立Oracle数据库的应用程序所有者。
解决方案 测试和验证环境
此解决方案 的测试和验证是在AWS FSX和EC2环境中执行的、该环境可能与最终部署环境不匹配。有关详细信息,请参见一节 部署注意事项的关键因素。
架构
硬件和软件组件
* 硬件 * |
||
FSX ONTAP 存储 |
AWS提供的当前版本 |
一个FSX HA集群位于同一VPC和可用性区域中 |
用于计算的EC2实例 |
t2.xlarge/4vCPU/16G |
两个EC2 t2 xlarge EC2实例、一个用作主数据库服务器、另一个用作克隆数据库服务器 |
软件 |
||
RedHat Linux |
rhel-8.6.0_hvm-20220503-x86_64-2-Hourly2-gp2 |
已部署RedHat订阅以进行测试 |
Oracle网格基础架构 |
版本19.18 |
已应用RU修补程序p34762026_190000_Linux-x86-64.zip |
Oracle 数据库 |
版本19.18 |
已应用RU修补程序p34765931_190000_Linux-x86-64.zip |
Oracle OPatch |
版本12.2.0.1.36 |
最新修补程序p6880880_190000_Linux-x86-64.zip |
SnapCenter 服务 |
version |
v2.3.1.2324 |
部署注意事项的关键因素
-
* EC2计算实例。*在这些测试和验证中、我们对Oracle数据库计算实例使用了AWS EC2 T2.xlarge实例类型。NetApp建议在生产部署中使用M5类型的EC2实例作为Oracle的计算实例、因为它针对数据库工作负载进行了优化。您需要根据实际工作负载要求根据vCPU数量和RAM量适当调整EC2实例的大小。
-
* FSX存储HA集群单区域或多区域部署。*在这些测试和验证中、我们在一个AWS可用性区域中部署了一个FSX HA集群。对于生产部署、NetApp建议在两个不同的可用性区域中部署一个FSX HA对。FSX HA集群始终配置在一个HA对中、该HA对在一对主动-被动文件系统中进行同步镜像、以提供存储级别的冗余。多区域部署可在单个AWS区域发生故障时进一步提高高可用性。
-
*FSx存储集群规模估算。*Amazon FSx ONTAP存储文件系统可提供高达16万次原始SSD IOPS、高达4 Gbps吞吐量和最大192 TiB容量。但是、您可以根据部署时的实际要求、根据已配置的IOPS、吞吐量和存储限制(最小1、024 GiB)来调整集群的大小。可以动态调整容量、而不会影响应用程序可用性。
-
* Oracle数据和日志布局。*在测试和验证中、我们分别为数据和日志部署了两个ASM磁盘组。在+data ASM磁盘组中、我们在一个数据NFS文件系统挂载点配置了四个磁盘。在+logs ASM磁盘组中、我们在日志NFS文件系统挂载点配置了两个磁盘。对于大型数据库部署、可以构建ASM磁盘组、使其跨越多个FSx文件系统、并通过固定在FSx文件系统上的多个NFS挂载点分布ASM NFS磁盘。此特定设置旨在满足超过4 Gbps吞吐量和16万次原始SSD IOPS的数据库吞吐量要求。
-
DNFS配置。 DNFS内置在Oracle内核中、众所周知、在将Oracle部署到NFS存储时、它可以显著提高Oracle数据库性能。DNFS打包到Oracle二进制文件中、但默认情况下不启用。对于NFS上的任何Oracle数据库部署、都应启用此功能。对于大型数据库的多FSx文件系统部署、应正确配置DNFS多路径。
-
*要用于创建的每个Oracle ASM磁盘组的Oracle ASM冗余级别。*由于FSx已在FSx集群级别镜像存储、因此您应执行此操作
ONLY
使用外部冗余、这意味着该选项不允许Oracle ASM镜像磁盘组的内容。这一点尤其重要、因为用于Oracle数据库数据存储的NFS需要硬NFS挂载选项、而在Oracle级别镜像ASM内容时、这种方法并不理想。 -
数据库备份。 NetApp提供SaaS版本的SnapCenter 软件服务、用于在云中备份、还原和克隆数据库、该服务可通过NetApp BlueXP控制台UI访问。NetApp建议实施此类服务、以实现快速(不到一分钟)的快照备份、快速(几分钟)的数据库还原和数据库克隆。
解决方案 部署
下一节介绍了分步部署过程。
部署的前提条件
Details
部署需要满足以下前提条件。
-
已设置AWS帐户、并已在您的AWS帐户中创建必要的VPC和网段。
-
在AWS EC2控制台中、您必须部署两个EC2 Linux实例、一个用作主Oracle数据库服务器、另一个用作可选的克隆目标数据库服务器。有关环境设置的详细信息、请参见上一节中的架构图。另请查看 "Linux实例用户指南" 有关详细信息 …
-
从AWS EC2控制台中、部署Amazon FSx ONTAP存储HA集群以托管Oracle数据库卷。如果您不熟悉FSx存储的部署、请参见文档"正在创建FSx ONTAP文件系统"以获取分步说明。
-
可以使用以下Terraform自动化工具包执行步骤2和步骤3、该工具包会创建一个名为的EC2实例
ora_01
和名为的FSX文件系统fsx_01
。执行前、请仔细阅读该说明并根据您的环境更改变量。git clone https://github.com/NetApp-Automation/na_aws_fsx_ec2_deploy.git
确保您已在EC2实例根卷中至少分配50G、以便有足够的空间来暂存Oracle安装文件。 |
EC2实例内核配置
Details
在配置了前提条件的情况下、以EC2-user身份登录到EC2实例、并使用sudo to root user配置Linux内核以进行Oracle安装。
-
创建暂存目录
/tmp/archive
文件夹并设置777
权限。mkdir /tmp/archive chmod 777 /tmp/archive
-
将Oracle二进制安装文件和其他所需的rpm文件下载并暂存到
/tmp/archive
目录。请参见以下要在中说明的安装文件列表
/tmp/archive
在EC2实例上。[ec2-user@ip-172-30-15-58 ~]$ ls -l /tmp/archive total 10537316 -rw-rw-r--. 1 ec2-user ec2-user 19112 Mar 21 15:57 compat-libcap1-1.10-7.el7.x86_64.rpm -rw-rw-r-- 1 ec2-user ec2-user 3059705302 Mar 21 22:01 LINUX.X64_193000_db_home.zip -rw-rw-r-- 1 ec2-user ec2-user 2889184573 Mar 21 21:09 LINUX.X64_193000_grid_home.zip -rw-rw-r--. 1 ec2-user ec2-user 589145 Mar 21 15:56 netapp_linux_unified_host_utilities-7-1.x86_64.rpm -rw-rw-r--. 1 ec2-user ec2-user 31828 Mar 21 15:55 oracle-database-preinstall-19c-1.0-2.el8.x86_64.rpm -rw-rw-r-- 1 ec2-user ec2-user 2872741741 Mar 21 22:31 p34762026_190000_Linux-x86-64.zip -rw-rw-r-- 1 ec2-user ec2-user 1843577895 Mar 21 22:32 p34765931_190000_Linux-x86-64.zip -rw-rw-r-- 1 ec2-user ec2-user 124347218 Mar 21 22:33 p6880880_190000_Linux-x86-64.zip -rw-r--r-- 1 ec2-user ec2-user 257136 Mar 22 16:25 policycoreutils-python-utils-2.9-9.el8.noarch.rpm
-
安装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
、在EC2实例中不可用。yum install /tmp/archive/policycoreutils-python-utils-2.9-9.el8.noarch.rpm
-
安装Open JDK 1.8版。
yum install java-1.8.0-openjdk.x86_64
-
安装NFS-utils。
yum install nfs-utils
-
在当前系统中禁用透明页面。
echo never > /sys/kernel/mm/transparent_hugepage/enabled echo never > /sys/kernel/mm/transparent_hugepage/defrag
在中添加以下行
/etc/rc.local
以禁用transparent_hugepage
重新启动后:# Disable transparent hugepages if test -f /sys/kernel/mm/transparent_hugepage/enabled; then echo never > /sys/kernel/mm/transparent_hugepage/enabled fi if test -f /sys/kernel/mm/transparent_hugepage/defrag; then echo never > /sys/kernel/mm/transparent_hugepage/defrag fi
-
通过更改禁用SELinux
SELINUX=enforcing
toSELINUX=disabled
。要使更改生效、必须重新启动主机。vi /etc/sysconfig/selinux
-
将以下行添加到
limit.conf
设置不带引号的文件描述符限制和堆栈大小" "
。vi /etc/security/limits.conf "* hard nofile 65536" "* soft stack 10240"
-
按照以下说明向EC2实例添加交换空间: "如何使用交换文件分配内存以用作Amazon EC2实例中的交换空间?" 要添加的确切空间量取决于RAM大小、最高可达16G。
-
添加要用于ASM sysasm组的ASM组
groupadd asm
-
修改Oracle用户以将ASM添加为二级组(Oracle用户应在安装Oracle预安装RPM后创建)。
usermod -a -G asm oracle
-
重新启动EC2实例。
配置和导出要挂载到EC2实例主机的NFS卷
Details
使用FSx集群管理IP通过ssh以fsxadmin用户身份登录FSx集群、从命令行配置三个卷、以托管Oracle数据库二进制文件、数据和日志文件。
-
以fsxadmin用户身份通过SSH登录到FSX集群。
ssh fsxadmin@172.30.15.53
-
执行以下命令为Oracle二进制文件创建卷。
vol create -volume ora_01_biny -aggregate aggr1 -size 50G -state online -type RW -junction-path /ora_01_biny -snapshot-policy none -tiering-policy snapshot-only
-
执行以下命令为Oracle数据创建卷。
vol create -volume ora_01_data -aggregate aggr1 -size 100G -state online -type RW -junction-path /ora_01_data -snapshot-policy none -tiering-policy snapshot-only
-
执行以下命令为Oracle日志创建卷。
vol create -volume ora_01_logs -aggregate aggr1 -size 100G -state online -type RW -junction-path /ora_01_logs -snapshot-policy none -tiering-policy snapshot-only
-
验证已创建的数据库卷。
vol show
这将返回:
FsxId02ad7bf3476b741df::> vol show (vol show) FsxId06c3c8b2a7bd56458::> vol show Vserver Volume Aggregate State Type Size Available Used% --------- ------------ ------------ ---------- ---- ---------- ---------- ----- svm_ora ora_01_biny aggr1 online RW 50GB 47.50GB 0% svm_ora ora_01_data aggr1 online RW 100GB 95.00GB 0% svm_ora ora_01_logs aggr1 online RW 100GB 95.00GB 0% svm_ora svm_ora_root aggr1 online RW 1GB 972.1MB 0% 4 entries were displayed.
数据库存储配置
Details
现在、为EC2实例主机上的Oracle网格基础架构和数据库安装导入并设置FSX存储。
-
以EC2用户身份使用SSH密钥和EC2实例IP地址通过SSH登录到EC2实例。
ssh -i ora_01.pem ec2-user@172.30.15.58
-
创建/u01目录以挂载Oracle二进制文件系统
sudo mkdir /u01
-
将二进制卷挂载到
/u01
,已更改为FSx NFS lip地址。如果您已通过NetApp自动化工具包部署FSx集群、则在资源配置执行结束时、输出中将列出FSx虚拟存储服务器NFS lif IP地址。否则、可以从AWS FSx控制台UI中检索。sudo mount -t nfs 172.30.15.19:/ora_01_biny /u01 -o rw,bg,hard,vers=3,proto=tcp,timeo=600,rsize=65536,wsize=65536
-
更改
/u01
Oracle用户及其关联主组的挂载点所有权。sudo chown oracle:oinstall /u01
-
创建/oradATA目录以挂载Oracle数据文件系统
sudo mkdir /oradata
-
将数据卷挂载到
/oradata
,已更改为FSx NFS lip地址sudo mount -t nfs 172.30.15.19:/ora_01_data /oradata -o rw,bg,hard,vers=3,proto=tcp,timeo=600,rsize=65536,wsize=65536
-
更改
/oradata
Oracle用户及其关联主组的挂载点所有权。sudo chown oracle:oinstall /oradata
-
创建/orlogs目录以挂载Oracle日志文件系统
sudo mkdir /oralogs
-
将日志卷挂载到
/oralogs
,已更改为FSx NFS lip地址sudo mount -t nfs 172.30.15.19:/ora_01_logs /oralogs -o rw,bg,hard,vers=3,proto=tcp,timeo=600,rsize=65536,wsize=65536
-
更改
/oralogs
Oracle用户及其关联主组的挂载点所有权。sudo chown oracle:oinstall /oralogs
-
将挂载点添加到
/etc/fstab
。sudo vi /etc/fstab
添加以下行。
172.30.15.19:/ora_01_biny /u01 nfs rw,bg,hard,vers=3,proto=tcp,timeo=600,rsize=65536,wsize=65536 0 0 172.30.15.19:/ora_01_data /oradata nfs rw,bg,hard,vers=3,proto=tcp,timeo=600,rsize=65536,wsize=65536 0 0 172.30.15.19:/ora_01_logs /oralogs nfs rw,bg,hard,vers=3,proto=tcp,timeo=600,rsize=65536,wsize=65536 0 0
-
sudo to Oracle user、创建ASM文件夹以存储ASM磁盘文件
sudo su su - oracle mkdir /oradata/asm mkdir /oralogs/asm
-
作为Oracle用户、创建ASM数据磁盘文件、将计数更改为与具有块大小的磁盘大小匹配。
dd if=/dev/zero of=/oradata/asm/nfs_data_disk01 bs=1M count=20480 oflag=direct dd if=/dev/zero of=/oradata/asm/nfs_data_disk02 bs=1M count=20480 oflag=direct dd if=/dev/zero of=/oradata/asm/nfs_data_disk03 bs=1M count=20480 oflag=direct dd if=/dev/zero of=/oradata/asm/nfs_data_disk04 bs=1M count=20480 oflag=direct
-
作为root用户、将数据磁盘文件权限更改为640
chmod 640 /oradata/asm/*
-
作为Oracle用户、创建ASM日志磁盘文件、并更改为计数、以便与具有块大小的磁盘大小匹配。
dd if=/dev/zero of=/oralogs/asm/nfs_logs_disk01 bs=1M count=40960 oflag=direct dd if=/dev/zero of=/oralogs/asm/nfs_logs_disk02 bs=1M count=40960 oflag=direct
-
作为root用户、更改会将磁盘文件权限记录为640
chmod 640 /oralogs/asm/*
-
重新启动EC2实例主机。
Oracle网格基础架构安装
Details
-
通过SSH以EC2-user身份登录到EC2实例、并通过取消注释启用密码身份验证
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
到grid_home、然后将其解压缩。cp /tmp/archive/p6880880_190000_Linux-x86-64.zip . unzip 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=dba oracle.install.asm.OSOPER=oper oracle.install.asm.OSASM=asm oracle.install.asm.SYSASMPassword="SetPWD" oracle.install.asm.diskGroup.name=DATA oracle.install.asm.diskGroup.redundancy=EXTERNAL oracle.install.asm.diskGroup.AUSize=4 oracle.install.asm.diskGroup.disks=/oradata/asm/*,/oralogs/asm/* oracle.install.asm.diskGroup.diskDiscoveryString=/oradata/asm/nfs_data_disk01,/oradata/asm/nfs_data_disk02,/oradata/asm/nfs_data_disk03,/oradata/asm/nfs_data_disk04 oracle.install.asm.monitorPassword="SetPWD" oracle.install.asm.configureAFD=false
-
以root用户身份登录到EC2实例。
-
安装
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用户身份登录到EC2实例、然后在中提取修补程序
/tmp/archive
文件夹。unzip p34762026_190000_Linux-x86-64.zip
-
从Grid home /u01/app/oracle/product/19.0.0/grid中、以Oracle用户身份启动
gridSetup.sh
用于网格基础架构安装。./gridSetup.sh -applyRU /tmp/archive/34762026/ -silent -responseFile /tmp/archive/gridsetup.rsp
忽略有关网格基础架构的错误组的警告。我们正在使用一个Oracle用户来管理Oracle Restart、因此这是预期的。
-
以root用户身份执行以下脚本:
/u01/app/oraInventory/orainstRoot.sh /u01/app/oracle/product/19.0.0/grid/root.sh
-
以Oracle用户身份执行以下命令以完成配置:
/u01/app/oracle/product/19.0.0/grid/gridSetup.sh -executeConfigTools -responseFile /tmp/archive/gridsetup.rsp -silent
-
以Oracle用户身份创建日志磁盘组。
bin/asmca -silent -sysAsmPassword 'yourPWD' -asmsnmpPassword 'yourPWD' -createDiskGroup -diskGroupName LOGS -disk '/oralogs/asm/nfs_logs_disk*' -redundancy EXTERNAL -au_size 4
-
以Oracle用户身份、在安装配置后验证网格服务。
bin/crsctl stat res -t + Name Target State Server State details Local Resources ora.DATA.dg ONLINE ONLINE ip-172-30-15-58 STABLE ora.LISTENER.lsnr ONLINE ONLINE ip-172-30-15-58 STABLE ora.LOGS.dg ONLINE ONLINE ip-172-30-15-58 STABLE ora.asm ONLINE ONLINE ip-172-30-15-58 Started,STABLE ora.ons OFFLINE OFFLINE ip-172-30-15-58 STABLE Cluster Resources ora.cssd ONLINE ONLINE ip-172-30-15-58 STABLE ora.diskmon OFFLINE OFFLINE STABLE ora.driver.afd ONLINE ONLINE ip-172-30-15-58 STABLE ora.evmd ONLINE ONLINE ip-172-30-15-58 STABLE
Oracle数据库安装
Details
-
以Oracle用户身份登录并取消设置
$ORACLE_HOME
和$ORACLE_SID
如果已设置。unset ORACLE_HOME unset ORACLE_SID
-
创建Oracle DB主目录并进行更改。
mkdir /u01/app/oracle/product/19.0.0/db1 cd /u01/app/oracle/product/19.0.0/db1
-
解压缩Oracle数据库安装文件。
unzip -q /tmp/archive/LINUX.X64_193000_db_home.zip
-
从数据库主目录中、删除
OPatch
目录。rm -rf OPatch
-
从数据库主页复制
p6880880_190000_Linux-x86-64.zip
togrid_home
、然后将其解压缩。cp /tmp/archive/p6880880_190000_Linux-x86-64.zip . unzip p6880880_190000_Linux-x86-64.zip
-
在数据库主页中、修改
cv/admin/cvu_config`和取消注释并替换 `CV_ASSUME_DISTID=OEL5
使用CV_ASSUME_DISTID=OL7
。vi cv/admin/cvu_config
-
从
/tmp/archive
目录中、解压缩DB 19.18 RU修补程序。unzip p34765931_190000_Linux-x86-64.zip
-
在中准备DB静默安装rsp文件
/tmp/archive/dbinstall.rsp
具有以下值的目录:oracle.install.option=INSTALL_DB_SWONLY UNIX_GROUP_NAME=oinstall INVENTORY_LOCATION=/u01/app/oraInventory ORACLE_HOME=/u01/app/oracle/product/19.0.0/db1 ORACLE_BASE=/u01/app/oracle oracle.install.db.InstallEdition=EE oracle.install.db.OSDBA_GROUP=dba oracle.install.db.OSOPER_GROUP=oper oracle.install.db.OSBACKUPDBA_GROUP=oper oracle.install.db.OSDGDBA_GROUP=dba oracle.install.db.OSKMDBA_GROUP=dba oracle.install.db.OSRACDBA_GROUP=dba oracle.install.db.rootconfig.executeRootScript=false
-
从db1 home /u01/app/oracle/product/19.0.0/db1中、执行无提示纯软件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=db1.demo.netapp.com sid=db1 createAsContainerDatabase=true numberOfPDBs=3 pdbName=db1_pdb useLocalUndoForPDBs=true pdbAdminPassword="yourPWD" templateName=General_Purpose.dbc sysPassword="yourPWD" systemPassword="yourPWD" dbsnmpPassword="yourPWD" storageType=ASM diskGroupName=DATA characterSet=AL32UTF8 nationalCharacterSet=AL16UTF16 listeners=LISTENER databaseType=MULTIPURPOSE automaticMemoryManagement=false totalMemory=8192
根据EC2实例主机中的可用内存设置总内存。Oracle会分配75%的 totalMemory
数据库实例SGA或缓冲区缓存。 -
以Oracle用户身份、使用dbca启动数据库创建。
bin/dbca -silent -createDatabase -responseFile /tmp/archive/dbca.rsp output: Prepare for db operation 7% complete Registering database with Oracle Restart 11% complete Copying database files 33% complete Creating and starting Oracle instance 35% complete 38% complete 42% complete 45% complete 48% complete Completing Database Creation 53% complete 55% complete 56% complete Creating Pluggable Databases 60% complete 64% complete 69% complete 78% complete Executing Post Configuration Actions 100% complete Database creation complete. For details check the logfiles at: /u01/app/oracle/cfgtoollogs/dbca/db1. Database Information: Global Database Name:db1.demo.netapp.com System Identifier(SID):db1 Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/db1/db1.log" for further details.
-
以Oracle用户身份、在创建数据库后验证Oracle Restart HA服务。
[oracle@ip-172-30-15-58 db1]$ ../grid/bin/crsctl stat res -t -------------------------------------------------------------------------------- Name Target State Server State details -------------------------------------------------------------------------------- Local Resources -------------------------------------------------------------------------------- ora.DATA.dg ONLINE ONLINE ip-172-30-15-58 STABLE ora.LISTENER.lsnr ONLINE ONLINE ip-172-30-15-58 STABLE ora.LOGS.dg ONLINE ONLINE ip-172-30-15-58 STABLE ora.asm ONLINE ONLINE ip-172-30-15-58 Started,STABLE ora.ons OFFLINE OFFLINE ip-172-30-15-58 STABLE -------------------------------------------------------------------------------- Cluster Resources -------------------------------------------------------------------------------- ora.cssd 1 ONLINE ONLINE ip-172-30-15-58 STABLE ora.db1.db 1 ONLINE ONLINE ip-172-30-15-58 Open,HOME=/u01/app/o racle/product/19.0.0 /db1,STABLE ora.diskmon 1 OFFLINE OFFLINE STABLE ora.evmd 1 ONLINE ONLINE ip-172-30-15-58 STABLE -------------------------------------------------------------------------------- [oracle@ip-172-30-15-58 db1]$
-
设置Oracle用户
.bash_profile
。vi ~/.bash_profile
-
添加以下条目:
export ORACLE_HOME=/u01/app/oracle/product/19.0.0/db1 export ORACLE_SID=db1 export PATH=$PATH:$ORACLE_HOME/bin alias asm='export ORACLE_HOME=/u01/app/oracle/product/19.0.0/grid;export ORACLE_SID=+ASM;export PATH=$PATH:$ORACLE_HOME/bin'
-
验证已创建的CDB/PDB。
. ~/.bash_profile sqlplus / as sysdba SQL> select name, open_mode from v$database; NAME OPEN_MODE DB1 READ WRITE SQL> select name from v$datafile; NAME +DATA/DB1/DATAFILE/system.256.1132176177 +DATA/DB1/DATAFILE/sysaux.257.1132176221 +DATA/DB1/DATAFILE/undotbs1.258.1132176247 +DATA/DB1/86B637B62FE07A65E053F706E80A27CA/DATAFILE/system.265.1132177009 +DATA/DB1/86B637B62FE07A65E053F706E80A27CA/DATAFILE/sysaux.266.1132177009 +DATA/DB1/DATAFILE/users.259.1132176247 +DATA/DB1/86B637B62FE07A65E053F706E80A27CA/DATAFILE/undotbs1.267.1132177009 +DATA/DB1/F7852758DCD6B800E0533A0F1EAC1DC6/DATAFILE/system.271.1132177853 +DATA/DB1/F7852758DCD6B800E0533A0F1EAC1DC6/DATAFILE/sysaux.272.1132177853 +DATA/DB1/F7852758DCD6B800E0533A0F1EAC1DC6/DATAFILE/undotbs1.270.1132177853 +DATA/DB1/F7852758DCD6B800E0533A0F1EAC1DC6/DATAFILE/users.274.1132177871 NAME +DATA/DB1/F785288BBCD1BA78E0533A0F1EACCD6F/DATAFILE/system.276.1132177871 +DATA/DB1/F785288BBCD1BA78E0533A0F1EACCD6F/DATAFILE/sysaux.277.1132177871 +DATA/DB1/F785288BBCD1BA78E0533A0F1EACCD6F/DATAFILE/undotbs1.275.1132177871 +DATA/DB1/F785288BBCD1BA78E0533A0F1EACCD6F/DATAFILE/users.279.1132177889 +DATA/DB1/F78529A14DD8BB18E0533A0F1EACB8ED/DATAFILE/system.281.1132177889 +DATA/DB1/F78529A14DD8BB18E0533A0F1EACB8ED/DATAFILE/sysaux.282.1132177889 +DATA/DB1/F78529A14DD8BB18E0533A0F1EACB8ED/DATAFILE/undotbs1.280.1132177889 +DATA/DB1/F78529A14DD8BB18E0533A0F1EACB8ED/DATAFILE/users.284.1132177907 19 rows selected. SQL> show pdbs CON_ID CON_NAME OPEN MODE RESTRICTED 2 PDB$SEED READ ONLY NO 3 DB1_PDB1 READ WRITE NO 4 DB1_PDB2 READ WRITE NO 5 DB1_PDB3 READ WRITE NO SQL>
-
以Oracle用户身份、更改为Oracle数据库主目录/u01/app/oracle/product/19.0.0/db1并启用DNFS
cd /u01/app/oracle/product/19.0.0/db1 mkdir rdbms/lib/odm cp lib/libnfsodm19.so rdbms/lib/odm/
-
在oracle_home中配置oranfstab文件
vi $ORACLE_HOME/dbs/oranfstab add following entries: server: fsx_01 local: 172.30.15.58 path: 172.30.15.19 nfs_version: nfsv3 export: /ora_01_biny mount: /u01 export: /ora_01_data mount: /oradata export: /ora_01_logs mount: /oralogs
-
以Oracle用户身份、从sqlplus登录到数据库、并将数据库恢复大小和位置设置为+logs.磁盘组。
. ~/.bash_profile sqlplus / as sysdba alter system set db_recovery_file_dest_size = 80G scope=both; alter system set db_recovery_file_dest = '+LOGS' scope=both;
-
启用归档日志模式并重新启动Oracle DB实例
shutdown immediate; startup mount; alter database archivelog; alter database open; alter system switch logfile;
-
在实例重新启动后验证数据库日志模式和DNFS
SQL> select name, log_mode from v$database; NAME LOG_MODE --------- ------------ DB1 ARCHIVELOG SQL> select svrname, dirname from v$dnfs_servers; SVRNAME -------------------------------------------------------------------------------- DIRNAME -------------------------------------------------------------------------------- fsx_01 /ora_01_data fsx_01 /ora_01_biny fsx_01 /ora_01_logs
-
验证Oracle ASM
[oracle@ip-172-30-15-58 db1]$ asm [oracle@ip-172-30-15-58 db1]$ sqlplus / as sysasm SQL*Plus: Release 19.0.0.0.0 - Production on Tue May 9 20:39:39 2023 Version 19.18.0.0.0 Copyright (c) 1982, 2022, Oracle. All rights reserved. Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.18.0.0.0 SQL> set lin 200 SQL> col path form a30 SQL> select name, path, header_status, mount_status, state from v$asm_disk; NAME PATH HEADER_STATU MOUNT_S STATE ------------------------------ ------------------------------ ------------ ------- -------- DATA_0002 /oradata/asm/nfs_data_disk01 MEMBER CACHED NORMAL DATA_0000 /oradata/asm/nfs_data_disk02 MEMBER CACHED NORMAL DATA_0001 /oradata/asm/nfs_data_disk03 MEMBER CACHED NORMAL DATA_0003 /oradata/asm/nfs_data_disk04 MEMBER CACHED NORMAL LOGS_0000 /oralogs/asm/nfs_logs_disk01 MEMBER CACHED NORMAL LOGS_0001 /oralogs/asm/nfs_logs_disk02 MEMBER CACHED NORMAL 6 rows selected. SQL> select name, state, ALLOCATION_UNIT_SIZE, TOTAL_MB, FREE_MB from v$asm_diskgroup; NAME STATE ALLOCATION_UNIT_SIZE TOTAL_MB FREE_MB ------------------------------ ----------- -------------------- ---------- ---------- DATA MOUNTED 4194304 81920 73536 LOGS MOUNTED 4194304 81920 81640 This completes Oracle 19c version 19.18 Restart deployment on an Amazon FSx ONTAP and EC2 compute instance with NFS/ASM. If desired, NetApp recommends relocating the Oracle control file and online log files to the +LOGS disk group.
自动化部署选项
NetApp将随Ansible发布一个完全自动化的解决方案 部署工具包、以便于实施此解决方案。请查看此工具包的可用性。发布后、此处将发布一个链接。
使用SnapCenter 服务备份、还原和克隆Oracle数据库
目前、只有传统的SnapCenter服务器UI工具(请参见)才支持使用NFS和ASM存储选项的Oracle数据库 "采用 SnapCenter 的混合云数据库解决方案" 有关使用NetApp SnapCenter UI工具进行Oracle数据库备份、还原和克隆的详细信息。
从何处查找追加信息
要了解有关本文档中所述信息的更多信息,请查看以下文档和 / 或网站:
-
在安装新数据库的情况下为独立服务器安装Oracle网格基础架构
-
使用响应文件安装和配置Oracle数据库
-
Amazon FSx ONTAP
-
Amazon EC2