12CR2 RAC安裝避坑指南(Redhat7)

      網友投稿 822 2025-03-31

      最新解決方案: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 /lib/asmcmdbase.pm (Doc ID 2748316.1)

      解決方案:

      /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 <>/etc/security/limits.conf oracle soft memlock 3145728 oracle hard memlock 3145728 grid soft memlock 3145728 grid hard memlock 3145728 EOF

      關于啟用大頁內存的一些限制:

      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 <>/etc/security/limits.conf oracle soft memlock 241591910 oracle hard memlock 241591910 grid soft memlock 241591910 grid hard memlock 241591910 EOF 3.內存鎖設置后以oracle用戶身份登錄并運行ulimit -l命令以驗證新的內存鎖設置: $ ulimit -l 241591910 4.運行以下命令以顯示Hugepagesize變量的值: $ grep Hugepagesize /proc/meminfo 5.通過Oracle官方文檔提供的一個腳本,該腳本為當前共享內存段的大頁配置計算推薦值: a.創建shell腳本hugepages_settings.sh b.添加以下腳本內容: #!/bin/bash # # hugepages_settings.sh # # Linux bash script to compute values for the # recommended HugePages/HugeTLB configuration # # Note: This script does calculation for all shared memory # segments available when the script is run, no matter it # is an Oracle RDBMS shared memory segment or not. # Check for the kernel version KERN=`uname -r | awk -F. '{ printf("%d.%d\n",,); }'` # Find out the HugePage size HPG_SZ=`grep Hugepagesize /proc/meminfo | awk {'print '}` # Start from 1 pages to be on the safe side and guarantee 1 free HugePage NUM_PG=1 # Cumulative number of pages required to handle the running shared memory segments for SEG_BYTES in `ipcs -m | awk {'print '} | grep "[0-9][0-9]*"` do MIN_PG=`echo "$SEG_BYTES/($HPG_SZ*1024)" | bc -q` if [ $MIN_PG -gt 0 ]; then NUM_PG=`echo "$NUM_PG+$MIN_PG+1" | bc -q` fi done # Finish with results case $KERN in '2.4') HUGETLB_POOL=`echo "$NUM_PG*$HPG_SZ/1024" | bc -q`; echo "Recommended setting: vm.hugetlb_pool = $HUGETLB_POOL" ;; '2.6'|'3.8') echo "Recommended setting: vm.nr_hugepages = $NUM_PG" ;; *) echo "Unrecognized kernel version $KERN. Exiting." ;; esac # End c.授予shell腳本執行權限 $ chmod +x hugepages_settings.sh d.運行hugepages_settings.sh腳本來計算hugepages配置的值: $ ./hugepages_settings.sh Notes:在運行此腳本之前,請確保運行使用大頁面的所有應用程序。 6.設置以下內核參數,其中value是您在步驟5中確定的HugePages值: # sysctl -w vm.nr_hugepages=value 7.要確保在系統重新啟動后分配了HugePages,請將以下參數添加到/etc/sysctl.conf文件中,其中value是您在步驟5中確定的HugePages值: vm.nr_hugepages=value Notes:如果無法使用nr_hugepages設置HugePages分配,則可用內存可能會碎片化。 重新啟動服務器,以使Hugepages分配生效。 8.運行以下命令以檢查可用的大頁面: $ grep Huge /proc/meminfo 9.重新啟動實例。

      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 <> /etc/rc.local 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 EOF Notes:redhat7需要授予rc.local執行權限: chmod +x /etc/rc.local

      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</etc/udev/rules.d/60-oracle-schedulers.rules ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="deadline" EOF 2.如果是RAC集群,需要將規則文件復制到集群上的所有其他節點。 例如: $ scp 60-oracle-schedulers.rules root@node2:/etc/udev/rules.d/ 3.加載規則文件并重新啟動UDEV服務 # udevadm control --reload-rules 4.驗證磁盤 I/O 調度程序已設置為Deadline # cat /sys/block/${ASM_DISK}/queue/scheduler

      12CR2 RAC安裝避坑指南(Redhat7)

      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 <> /home/oracle/.bash_profile $ ORACLE_HOSTNAME=somehost.example.com $ export ORACLE_HOSTNAME EOF

      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 <> /etc/fstab tmpfs /dev/shm tmpfs size=4G 0 0 EOF mount -o remount /dev/shm

      Notes:_Mos建議我們可以忽略該提示,這里我們可以手動添加到fstab文件中,即可。

      Oracle 數據庫

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:excel2003工具欄添加宏按鈕的方法
      下一篇:CUDA 6/8 中的統一內存
      相關文章
      欧美日韩亚洲精品| 亚洲AV色吊丝无码| 亚洲 日韩 色 图网站| 亚洲视频在线一区二区三区| 国产AV无码专区亚洲AVJULIA| 亚洲综合色区在线观看| 亚洲精品国产综合久久一线| 日本中文一区二区三区亚洲| 亚洲首页国产精品丝袜| 亚洲国产视频久久| 伊人久久五月丁香综合中文亚洲 | 亚洲精品视频在线看| 亚洲av成人一区二区三区观看在线 | 久久亚洲私人国产精品| 亚洲电影中文字幕| 亚洲人成电影亚洲人成9999网| 亚洲卡一卡2卡三卡4卡无卡三| 亚洲卡一卡2卡三卡4卡无卡三 | 亚洲avav天堂av在线不卡| 亚洲AV成人片色在线观看| 久久精品亚洲一区二区三区浴池 | 国产偷国产偷亚洲高清人| 国产亚洲Av综合人人澡精品| 香蕉视频亚洲一级| 亚洲男人的天堂一区二区| 国产日产亚洲系列| 亚洲国产精品一区第二页| 亚洲精品国产成人99久久| 亚洲精品亚洲人成在线麻豆| 亚洲av无码不卡久久| 亚洲日本VA午夜在线影院| 国产亚洲视频在线观看网址| 亚洲一级片内射网站在线观看| 亚洲人成人一区二区三区| 亚洲国产精品一区二区久久| 亚洲日韩乱码久久久久久| 国产亚洲中文日本不卡二区| 亚洲a无码综合a国产av中文| 久久久久亚洲AV无码专区桃色| 亚洲爆乳无码专区| 亚洲精品亚洲人成在线观看麻豆|