12CR2 RAC安裝避坑指南(Redhat7)
最新解決方案: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小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。