打不开公式编辑器(公式编辑器用不了)
691
2022-05-29
最新解决方案:Oracle集成基础安装包+补丁包
一、导读
本文主要介绍Redhat7.6系统安装oracle 12201版本RAC的一些坑以及避坑方式。绝对干货满满,物超所值,欢迎补充和纠错。
二、环境介绍
OS:_redhat 7.6 64位(3.10.0-957.el7.x86_64)
ORACLE:_12CR2 RAC
三、避坑指南
Notes:坑点主要位于Grid软件安装步骤中cvu的check和root.sh执行。
接下来是本篇文章的重点以及主旨,简单直接:
坑1:ASM device sharedness check
Shared Storage Accessibility:/dev/asm_ocr …FAILED (PRVG-11506)
可参照MOS文档:
12.2: PRVG-0802 : Storage type for path “/dev/mapper/asm011p1” could not be determined (Doc ID 2251322.1)
这里先不说解决方案,mos建议是打补丁:Apply patch 25784424, if CVU storage check fails for ASMLib paths 。
坑2:CLSRSC-400: A system reboot is required to continue installing.
此坑简直为巨坑无比,root.sh执行到进度14/19时,突然停止并且报错****CLSRSC-400,让我重启主机系统,重启之后安装已经终止了,无奈卸载重装依然报错。
可参照MOS文档:
ALERT: root.sh Fails With “CLSRSC-400” While Installing GI 12.2.0.1 on RHEL or OL with RedHat Compatible Kernel (RHCK) 7.3 (Doc ID 2284463.1)
这里先不说解决方案,mos建议是通过applyOneOffs打补丁:Interim patch 25078431 is required before installing 12.2 GI on Linux 7.3 (RedHat and OL7 with RHCK).
坑3:kgfnGetConnDetails requires 4 parameters at/u01/app/12.2.0/grid/lib/asmcmdbase.pm line 5704.
此坑是修复以上两个坑之后,root.sh执行到进度19/19时,突然停止,并报错如上,显示root.sh执行失败。
可参照MOS文档:
install.sh Hung And root.sh Is Failing At asmcmd lsdg --suppressheader While Installing A Zone With Clusterware (Doc ID 2414241.1)
ASMCMD Failing With "KGFNGETCONNDETAILS Requires 4 Parameters at
解决方案:
/usr/bin/make -f /u01/app/12.2.0/grid/rdbms/lib/ins_rdbms.mk client_sharedlib libasmclntsh12.ohso libasmperl12.ohso ORACLE_HOME=/u01/app/12.2.0/grid
1.如果已经遇到该错误,那么执行以上命令之后,重新执行root.sh即可,如果提前看到了本文,请按方法2提前执行;
2.__出现执行root.sh提示框之时执行以上命令,需在两个节点以root身份执行该命令,GRID_HOME路径请根据实际情况填写
所有节点执行完之后,再执行root.sh。
最后来总结以下坑1、2的解决方案:
参考MOS文档:
How to Apply a Grid Infrastructure Patch Before Grid Infrastructure Configuration (before root.sh or rootupgrade.sh or gridsetup.bat) is Executed (Doc ID 1410202.1)
通过12C开始支持的 applyPSU 方式,提前给Grid软件打上最新的补丁,修复坑1,2的bug:
1.解压OPatch补丁包 $ su - grid -c "unzip /soft/p6880880_122010_Linux-x86-64.zip -d /u01/app/12.2.0/grid/" Notes:选择A 2.查看OPatch补丁包版本 $ su - grid -c "/u01/app/12.2.0/grid/OPatch/opatch version" OPatch Version: 12.2.0.1.24 3.解压最新PSU补丁 $ su - grid -c "unzip /soft/p32226491_122010_Linux-x86-64.zip -d /soft" 4.执行grid安装 $ ./gridSetup.sh -applyPSU /soft/32226491 Preparing the home to patch... Applying the patch /soft/32226491/... Successfully applied the patch. The log can be found at: /u01/app/oraInventory/logs/GridSetupActions2021-04-01_04-18-54PM/installerPatchActions_2021-04-01_04-18-54PM.log Launching Oracle Grid Infrastructure Setup Wizard... 5.安装grid成功之后查看补丁 $ opatch lspatches 26839277;DBWLM RELEASE UPDATE 12.2.0.1.0(ID:170913) (26839277) 32231681;ACFS JAN 2021 RELEASE UPDATE 12.2.0.1.210119 (32231681) 32253903;TOMCAT RELEASE UPDATE 12.2.0.1.0(ID:RELEASE) (32253903) 31802727;OCW OCT 2020 RELEASE UPDATE 12.2.0.1.201020 (31802727) 32228578;Database Jan 2021 Release Update : 12.2.0.1.210119 (32228578) OPatch succeeded.
下一节主要介绍环境配置中需要注意的一些细节,请参考。
四、环境配置注意点
1.Reverse Path Filtering(rp_filter)
关于如何设置rp_filter,可以参照MOS文档和官方文档:
RAC and Oracle Clusterware Best Practices and Starter Kit (Linux) (Doc ID 811306.1)
https://docs.oracle.com/database/121/CWLIN/networks.htm#CWLIN481
对于Linux Kernels 2.6.31(包括例如Oracle Linux和RedHat)及更高版本,在反向路径过滤中已修复了一个错误。 由于此错误修复,可能会在多互连系统上阻止/丢弃互连数据包。 为避免这种情况,使用多个NIC进行专用互连的Oracle RAC系统现在需要rp_filter参数的特定设置。 例如,在eth1和eth2是专用互连NIC,而eth0是公用网络NIC的情况下,请设置/etc/sysctl.conf中的参数将专用地址的rp_filter设置为2(宽松过滤),将公用地址的rp_filter设置为1(严格过滤): net.ipv4.conf.eth2.rp_filter = 2 net.ipv4.conf.eth1.rp_filter = 2 net.ipv4.conf.eth0.rp_filter = 1
**2.**Memlock&&HugePages
关于如何设置标准大页HugePages内存,可以参照MOS文档和官方文档:
What is Memlock and How to Calculate the Values for Memlock? (Doc ID 2511230.1)
https://docs.oracle.com/database/121/UNXAR/appi_vlm.htm#UNXAR402
一般在安装部署时,由于无法估算应用对标准大页的需要,因此通常是禁用HugePages内存,当禁用HugePages内存时,最大锁定内存限制应设置为至少3145728 KB(3 GB)。
cat <
关于启用大页内存的一些限制:
a.自动内存管理(AMM)和HugePages不兼容。 使用AMM时,通过在/ dev / shm下创建文件来分配整个SGA内存。 当Oracle数据库通过AMM分配SGA时,不会保留HugePages。 要在Oracle Database 12c上使用HugePages,必须禁用AMM。
b.您必须取消设置MEMORY_TARGET和MEMORY_MAX_TARGET初始化参数。 例如,要取消设置数据库实例的参数,请使用命令ALTER SYSTEM RESET。
c.确保正确配置了HugePages,因为如果应用程序未使用过多的HugePages,则系统可能会耗尽内存。
d.如果实例启动时HugePages不足,并且初始化参数use_large_pages设置为only,则数据库无法启动,并且警报日志消息会提供有关Hugepages的必要信息。
在已知风险和限制条件下,如果要启用HugePages,通过以下步骤来看看如何设置hugepages,假设我们现在内存为256G:
1.运行以下命令以确定内核是否支持HugePages: $ grep Huge /proc/meminfo 2.使用root用户编辑/etc/security/limits.conf文件中的memlock设置。 内存锁设置以KB为单位指定,启用HugePages内存时,最大锁定内存限制应设置为当前RAM的至少90%,禁用HugePages内存时,最大锁定内存限制应设置为至少3145728 KB(3 GB)。 例如,我们是 256 GB RAM,则添加以下条目以增加最大的内存锁定地址空间:(256GB*0.9*1024*1024=241591910.4KB) cat <
3.Transparent HugePages&&NUMA
为什么要把Transparent HugePages和NUMA放在一起讲呢?很简单,因为他们的配置方法是相同的,请参考MOS文档和官方文档:
**ALERT: Disable Transparent HugePages on SLES11, RHEL6, RHEL7, OL6, OL7, and UEK2 and above (Doc ID 1557478.1) **
https://docs.oracle.com/database/121/UNXAR/appi_vlm.htm#UNXAR428
关于透明大页,oracle的建议:如果您正在运行RedHat / OEL 6/7,SLES 11/12或UEK2内核,请确保禁用“透明HugePages”以防止性能问题和节点/实例驱逐。
关闭透明大页有两种方式,分别为:
a.在/etc/rc.local中添加以下行并重新启动服务器(尽管不建议使用rc.local,但仍可以在Redhat 7上完成此操作),该方法linux6和7通用:
root用户下: cat <
b.将以下内容添加到/etc/default/grub(到/boot/grub/grub.conf的符号链接)的内核引导行中,然后重新引导服务器(这是首选方法),但只支持linux7以上:
这里禁用numa也是同样的设置方式:
1.添加关闭命令到/etc/grub.conf文件中,添加在quiet后面: sed -i 's/quiet/quiet transparent_hugepage=never numa=off/' /etc/default/grub 2.重新引导服务器 a.MBR分区 $ grub2-mkconfig -o /etc/grub2.cfg b.GPT分区表 $grub2-mkconfig -o /etc/grub2-efi.cfg Notes:需要注意系统主分区的引导方式,MBR还是GPT,可以通过fdisk -l查看主分区的Disk label type值。 3.重启服务器 4.查看配置是否生效 $ cat /proc/cmdline
4.Disk I/O Scheduler
关于设置Disk I/O Scheduler,可参考官方文档:
https://docs.oracle.com/en/database/oracle/oracle-database/12.2/ladbi/setting-the-disk-io-scheduler-on-linux.html#GUID-B59FCEFB-20F9-4E64-8155-7A61B38D8CDF
为了获得Oracle ASM的最佳性能,Oracle建议您使用Deadline I/O Scheduler。
在每个群集节点上,输入以下命令以验证是否配置了Deadline disk I/O调度程序以供使用:
# cat /sys/block/${ASM_DISK}/queue/scheduler noop [deadline] cfq
在此示例中,默认磁盘 I/O 调度程序为Deadline,而ASM_DISK为Oracle自动存储管理(Oracle ASM)磁盘设备。
如果输出为空:
_Notes:_在某些虚拟环境(VM)和特殊设备(例如快速存储设备)上,上述命令的输出可能为空。 操作系统或VM绕过内核 I/O 调度,并将所有 I/O 请求直接提交给设备。 在这种环境下,请勿更改 I/O Scheduler设置。
接下来,我们来设置一下Disk I/O Scheduler:
1.使用文本编辑器为Oracle ASM设备创建一个UDEV规则文件,将以下行添加到规则文件并保存: # cat<
5.ORACLE_HOSTNAME环境变量
可参照官方文档:
https://docs.oracle.com/en/database/oracle/oracle-database/12.2/ladbi/setting-the-oracle_hostname-environment-variable.html#GUID-27DFE5F2-8AAE-4085-8A63-CC6C94F73AA0
您必须设置ORACLE_HOSTNAME环境变量才能在多别名计算机上安装Oracle数据库。 多别名计算机是多个别名解析到的计算机。
具有多个别名的计算机是在单个IP地址下向命名服务注册的计算机,但是它将多个别名解析为该地址。 命名服务将这些别名中的任何一个解析到同一台计算机。 在此类计算机上安装Oracle数据库之前,请将Oracle安装所有者环境变量ORACLE_HOSTNAME设置为要使用其主机名的计算机。
cat <
6.AVAHI daemon&&NOZEROCONF
关于配置AVAHI daemon&&NOZEROCONF,可以参照MOS文档和官方文档:
**RAC and Oracle Clusterware Best Practices and Starter Kit (Linux) (Doc ID 811306.1) **
**CSSD Fails to Join the Cluster After Private Network Recovered if avahi Daemon is up and Running (Doc ID 1501093.1) **
https://en.wikipedia.org/wiki/Zero-configuration_networking
1.关闭并禁用avahi-daemon服务 systemctl stop avahi-daemon.socket systemctl stop avahi-daemon.service systemctl disable avahi-daemon.service ps -ef|grep avahi-daemon 2.On Oracle Linux/Redhat Linux, "NOZEROCONF=yes" must be included in /etc/sysconfig/network echo "NOZEROCONF=yes" >> /etc/sysconfig/network 3.Once avahi is disabled, restart the stack or reboot the node.
7./dev/shm
关于/dev/shm可参考mos文档:
**Bug 25907259 - Linux:RHEL7: cvu reports /dev/shm not mounted when it is mounted (Doc ID 25907259.8) **
**Bug 21441387 - CVU reports /dev/shm as NOT mounted when it is mounted (PRVE-0421) (Doc ID 21441387.8) **
Rediscovery Notes If /dev/shm mount check is performed on RHEL7 Workaround ignore error messages
cat <
Notes:_Mos建议我们可以忽略该提示,这里我们可以手动添加到fstab文件中,即可。
Oracle 数据库
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。