Oracle RAC(Linux)搭建
1、前言
此文檔詳細描述了Oracle 11gR2 數據庫在AIX上的安裝RAC的需求及安裝步驟。
參考文檔
《Oracle? Real Application Clusters Installation Guide 11g Release 2 (11.2) for Linux and UNIX》
Part Number E10813-06
《Oracle? Database Installation Guide 11g Release 2 (11.2) for IBM AIX on POWER Systems (64-Bit》
Part Number E10854-03
《Oracle? Database Performance Tuning Guide 11g Release 2 (11.2)》
《Oracle? Database Storage Administrator‘s Guide 11g Release 2 (11.2)》Part Number E10500-04
《Oracle? Grid Infrastructure Installation Guide 11g Release 2 (11.2) for IBM AIX Based Systems》
Part Number E10814-02
2、系統環境
數據庫架構
本例中數據庫架構為2個節點的RAC集群,使用ASM管理數據文件
操作系統版本
數據庫服務器的OS版本是AIX 6.1
3、Oracle安裝需求
3.1、OS 配置需求
OS版本
查看系統版本以及否是64位
qdgs:/home/oracle$uname -a AIX qdgs 1 7 00F7E1D24C00 |
qdgs:/home/oracle$/usr/bin/getconf HARDWARE_BITMODE 64 |
PATCHES & PACKAGES
PACKAGE
AIX 6.1 required packages: bos.adt.base bos.adt.lib bos.adt.libm bos.perf.libperfstat 6.1.2.1 or later bos.perf.perfstat bos.perf.proctools rsct.basic.rte (For RAC configurations only) rsct.compat.clients.rte (For RAC configurations only) xlC.aix61.rte:10.1.0.0 or later gpfs.base 3.2.1.8 or later (Only for RAC) #lslpp -l bos.adt.base bos.adt.lib bos.adt.libm bos.perf.libperfstat 6.1.2.1 bos.perf.perfstat bos.perf.proctools rsct.basic.rte rsct.compat.clients.rte xlC.aix61.rte:10.1.0.0 gpfs.base 3.2.1.8 |
APARS
IZ41855 IZ51456 IZ52319 IZ97457 IZ89165 IV04047 reference note 1264074.1 and Note:1379753.1 |
檢查命令:
#/usr/sbin/instfix -i -k "IZ41855 IZ51456 IZ52319 IZ97457 IZ89165" |
系統中若無patch IZ89165, Patch IZ97457,則按照如下根據系統版本對應patch檢查替換patch是否存在。
可替換patch
** Patch IZ89165 ** 6100-03 - use AIX APAR IZ89304 6100-04 - use AIX APAR IZ89302 6100-05 - use AIX APAR IZ89300 6100-06 - use AIX APAR IZ89514 ** Patch IZ97457 ** 6100-04 - use AIX APAR IZ97605 6100-05 - use AIX APAR IZ97457 6100-06 - use AIX APAR IZ96155 |
JDK&JRE
IBM JDK 1.6.0.00 (64 BIT) |
空間需求
RAM minimum 1GB recommended 2GB TMP at least 1GB Grid home at least 4.5 GB Oracle Database home at least 4GB |
根據內存設置swap大小:
RAM Swap Space 1G~2G 內存的1.5倍 2G~16G 與內存相等 16G以上 16G |
檢查系統內存:
qdgs:/home/oracle$/usr/sbin/lsattr -HE -l sys0 -a realmem attributevalue description user_settable realmem 25165824 Amount of usable physical memory in Kbytes False qdgs:/home/oracle$ |
檢查交換分區大小
qdgs:/home/oracle$/usr/sbin/lsps -a Page Space Physical Volume Volume Group Size %Used Active Auto Type Chksum hd6 hdisk0 rootvg 16384MB 2 yes yes lv 0 |
檢查磁盤空間
#getconf DISK_SIZE /dev/hdisk[] qdgs:/home/oracle$getconf DISK_SIZE /dev/hdisk3 511996 |
檢查網卡順序,網卡主備(註意網卡與IP對應是否正確)
#ifconfig -a #lsattr -E -l 網卡名 |
IP地址要求
每個節點至少兩個以上網卡,其中一個是內網網卡,也叫心跳網卡;另一個是公網,對外提供服務。內網綁定172或10開頭的ip地址;公網上綁定public ip。另外還需要分配一個vip,與public ip同網段;SCAN IP整個集群只有一個。請參考以下示例:
節點1:
一個公網IP:100.12.98.21 兩個私網IP:172.16.2.1 172.16.2.11 一個虛擬IP:100.12.98.23 SCAN_IP:100.12.98.25 |
節點2:
一個公網IP:100.12.98.27 兩個私網IP:172.16.2.3 172.16.2.13 一個虛擬IP:100.12.98.29 SCAN_IP:100.12.98.25 |
AIX操作系統TCP和UDP參數的修改
在root用戶下,執行如下命令:
修改命令:
no -r -o ipqmaxlen=521 no -p -o rfc1323=1 no -p -o sb_max=1500000 no -p -o tcp_recvspace=65536 no -p -o tcp_sendspace=65536 no -p -o udp_recvspace=1351680 no -p -o udp_sendspace=13516 可用/usr/sbin/no -a | fgrep <參數名>來查看參數值 |
AIX內核參數的修改
查看參數
# /usr/sbin/no -a | fgrep ephemeral tcp_ephemeral_high = 65500 tcp_ephemeral_low = 9000 udp_ephemeral_high = 65500 udp_ephemeral_low = 9000 |
修改參數
# /usr/sbin/no -p -o tcp_ephemeral_low=9000 -o tcp_ephemeral_high=65500 # /usr/sbin/no -p -o udp_ephemeral_low=9000 -o udp_ephemeral_high=65500 |
AIX操作系統內存參數的修改
vmo -p -o minperm%=3 vmo -p -o maxperm%=90 vmo -p -o maxclient%=90 vmo -p -o lru_file_repage=0 vmo -p -o strict_maxclient=1 vmo -p -o strict_maxperm=0 |
雙機對等性認證
配置集群內2個節點的SSH對等性認證
在兩個節點分別執行下列兩個腳本,腳本位於安裝軟件解壓路徑下的grid目錄中。
P780-1-VPAR1[/]# find /u01 -name sshUserSetup.sh /u01/11.2.0/grid/deinstall/sshUserSetup.sh /u01/11.2.0/grid/oui/prov/resources/scripts/sshUserSetup.sh #./sshUserSetup.sh -user grid -hosts "bjsczjdb01 bjsczjdb02" -advanced - noPromptPassphrase #./sshUserSetup.sh -user oracle -hosts " bjsczjdb01 bjsczjdb02" -advanced –noPromptPassphrase |
完成互信配置後,分別在各節點使用grid和oracle用戶下執行下面的操作 進行
互信的檢測
su - grid date;ssh bjsczjdb01 date date;ssh bjsczjdb02 date su - oracle date;ssh bjsczjdb01 date date;ssh bjsczjdb02 date |
AIX操作系統啟用異步IO
AIX 6.1 缺省啟用異步IO,無需修改
Oracle數據庫系統軟件及補丁要求
需要安裝的psu版本為11.2.0.3.3,patch id 為:13923374, 13919095
其他
在所有節點的/etc/hosts文件中配置IP與別名,命名規則一般建議為主機名-IP類型。
例如 public IP :IP地址 hostname Private IP : IP地址 hostname-priv VIP : IP 地址 hostname-vip Scan IP : IP 地址 hostname-scan |
#cat /etc/hosts #hostname 100.12.98.21 bjsczjdb01 100.12.98.27 bjsczjdb02
#oracle_vip 100.12.98.23 bjsczjdb01-vip 100.12.98.29 bjsczjdb02-vip
#oracle_private_ip1 172.16.2.1 bjsczjdb01-prvi1 172.16.2.3 bjsczjdb02-prvi1
#oracle_private_ip2 172.16.2.11 bjsczjdb01-prvi2 172.16.2.13 bjsczjdb02-prvi2 #oracle_scan_ip 100.12.98.25 bjsczjdb01-scan |
3.2、存儲配置
數據庫ASM磁盤設備的劃分
使用如下命令對磁盤屬性進行修改。 (所有節點都需要執行)
#chmod 660 /dev/rhdisk[] #chown grid:asmadmin /dev/rhdisk[] #lsattr -E -l hdisk[] | grep reserve_ |
如果是reserve_policy則執行下面的操作
#chdev -l hdisk[] -a reserve_policy=no_reserve |
如果是reserve_lock
#chdev -l hdisk[] -a reserve_lock=no |
清除PVID
#/usr/sbin/chdev -l hdisk[] -a pv=clear |
3.3、Oracle安裝用戶和組設置
創建介質存儲路徑及解壓路徑
由於安裝介質較多,建議分別創建軟件存放及解壓路徑,示例如下:
數據庫安裝軟件包存儲路徑
# mkdir -p /u01/sw/db |
Oracle psu安裝包存儲路徑
# mkdir -p /u01/sw/psu |
新版本的OPATCH安裝包存儲路徑
# mkdir -p /u01/sw/patch |
需要安裝的rpm包存儲路徑
# mkdir -p /u01/sw/rpm # chmod -R 777 /u01/sw |
創建用戶和組
建立Oracle安裝目錄組:
mkgroup -‘A‘ id=‘501‘ adms=‘root‘ oinstall |
建立Oracle ASMDBA組:
mkgroup -‘A‘ id=‘502‘ adms=‘root‘ asmadmin mkgroup -‘A‘ id=‘503‘ adms=‘root‘ asmdba mkgroup -‘A‘ id=‘504‘ adms=‘root‘ asmoper mkgroup -‘A‘ id=‘505‘ adms=‘root‘ dba |
建立Grid安裝用戶grid:
mkuser id=‘501‘ pgrp=‘oinstall‘ groups=‘asmadmin,asmdba,asmoper‘ home=‘/home/grid‘ fsize=-1 cpu=-1 data=-1 rss=-1 stack=-1 stack_hard=-1 capabilities=CAP_NUMA_ATTACH,CAP_BYPASS_RAC_VMM,CAP_PROPAGATE grid passwd grid 密碼為oracle123(註意密碼設置完成後需要重新登錄再次設置才可生效) |
建立Oracle安裝用戶oracle:
mkuser id=‘502‘ pgrp=‘oinstall‘ groups=‘dba,asmdba‘ home=‘/home/oracle‘ fsize=-1 cpu=-1 data=-1 rss=-1 stack=-1 stack_hard=-1 capabilities=CAP_NUMA_ATTACH,CAP_BYPASS_RAC_VMM,CAP_PROPAGATE oracle passwd oracle 密碼為:xxx,例如:oracle123 註意在創建密碼後需要重新登陸再次設置生效 |
檢查創建的用戶
# id oracle uid=502(oracle) gid=501(oinstall) groups=503(asmdba),505(dba) # id grid uid=501(grid) gid=501(oinstall)groups=502(asmadmin),503(asmdba),504(asmoper) |
檢查用戶權限
# lsuser -a capabilities grid grid capabilities=CAP_NUMA_ATTACH,CAP_BYPASS_RAC_VMM,CAP_PROPAGATE |
<<< 如果沒有顯示正確則執行
# chuser capabilities=CAP_NUMA_ATTACH,CAP_BYPASS_RAC_VMM,CAP_PROPAGATE grid # lsuser -a capabilities oracle oracle capabilities=CAP_NUMA_ATTACH,CAP_BYPASS_RAC_VMM,CAP_PROPAGATE |
創建安裝目錄
目錄創建示例如下:
Oracle inventory 目錄
#mkdir -p /u01/app/oraInventory #chown -R grid:oinstall /u01/app/oraInventory #chmod -R 775 /u01/app/oraInventory |
Grid Infrastructure BASE 目錄
#mkdir -p /u01/app/grid #chown grid:oinstall /u01/app/grid #chmod -R 775 /u01/app/grid |
Grid Infrastructure Home 目錄
#mkdir -p /u01/11.2.0/grid #chown -R grid:oinstall /u01/11.2.0/grid #chmod -R 775 /u01/11.2.0/grid |
Oracle Base 目錄
#mkdir -p /u01/app/oracle #mkdir /u01/app/oracle/cfgtoollogs #chown -R oracle:oinstall /u01/app/oracle #chmod -R 775 /u01/app/oracle |
Oracle Rdbms Home 目錄
#mkdir -p /u01/app/oracle/product/11.2.0/db_1 #chown -R oracle:oinstall /u01/app/oracle/product/11.2.0/db_1 #chmod -R 775 /u01/app/oracle/product/11.2.0/db_1 |
3.4、profile文件
創建數據庫安裝用戶grid.profile
.profile文件內容如下:
Node1
umask 022 export ORACLE_BASE=/u01/app/grid export ORACLE_HOME=/u01/11.2.0/grid export ORACLE_SID=+ASM1 export NLS_LANG=AMERICAN_AMERICA.AL32UTF8 export NLS_DATE_FORMAT="yyyy-mm-dd hh24:mi:ss" export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH export PS1=`hostname`:‘$PWD‘"$" |
Node2
umask 022 export ORACLE_BASE=/u01/app/grid export ORACLE_HOME=/u01/11.2.0/grid export ORACLE_SID=+ASM2 export NLS_LANG=AMERICAN_AMERICA.AL32UTF8 export NLS_DATE_FORMAT="yyyy-mm-dd hh24:mi:ss" export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH export PS1=`hostname`:‘$PWD‘"$" |
創建數據庫安裝用戶oracle.profile
.profile文件內容如下:集中庫136和137節點的.profile信息不一樣?
Node1:
umask 022 export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1 export NLS_LANG=AMERICAN_AMERICA.AL32UTF8 ORACLE_UNQNAME=bjschxsb export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH export PS1=`hostname`:‘$PWD‘"$" |
Node2:
umask 022 export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1 export NLS_LANG=AMERICAN_AMERICA.AL32UTF8 ORACLE_UNQNAME=bjschxsb export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH export PS1=`hostname`:‘$PWD‘"$" |
註意:以上用戶配置信息需要在所有節點進行配置,完成配置後需要重新執行該配置文件使其生效,例如:$ . .profile
4、安裝步驟
4.1、安裝Grid Infrastructure
以root身份執行(所有節點都執行)
#./rootpre.sh (腳本位於解壓後安裝包後在生成的grid目錄下/u01/app/11.2.0/grid/clone/rootpre.sh /u01/app/oracle/product/11.2.0/db_1/clone/rootpre.sh哪一個呢?) $su – grid $export DISPLAY=172.16.2.100:0.0(安裝xmanager映射到本地,進行圖形化安裝這個IP是本地機器的IP吧??) $xclock (檢測xmanager配置是否成功) $./runInstaller 選擇skip software updates, 點next |
選擇Install and Configure Oracle Grid Infrasturecture for a Cluster
選擇Advanced Installation
Next
Cluster Name:CLUSTER3
Scan信息必需與/etc/hosts文件中配置一致
SCAN Name: bjsczjdb01-scan
SCAN Port: 1521
點Add將節點二加入集群,輸入public hostname:bjsczjdb02
Virtual hostname:bjsczjdb02-vip
公私網選擇
選擇Oracle ASM管理
選擇OCR文件存儲位置,如需做冗余,則可安裝下例建立OCR_VOTE磁盤組,使用三個盤:/dev/rhdisk6 /dev/rhdisk7 /dev/rhdisk8
選擇use Same password for these accounts, 密碼為:oracle123
Grid組選擇
grid base: /u01/app/grid
Grid Infrastruct Home(ure HomeSoftware location): /u01/11.2.0/grid
選擇oraInventory路經:/u01/app/oraInventory
summary
4.2 、安裝集群軟件的psu
提示以root身份執行腳本orainstRoot.sh 和root.sh時,首先打psu ,後執行腳本。
下載最新的OPatch p6880880_112000_AIX64-5L.zip
#su – grid (所有節點操作) $unzip p6880880_112000_AIX64-5L.zip –d $ORACLE_HOME $ORACLE_HOME/OPatch/opatch napply -oh $ORACLE_HOME -local /u01/psu/13696251 (所有節點操作,可並行) $ORACLE_HOME/OPatch/opatch apply -oh $ORACLE_HOME -local /u01/psu/13696216 (所有節點操作,可並行) $opatch lsinv 檢查補丁是否安裝成功 |
確認安裝psu成功後,以root身份在所有節點執行orainstRoot.sh和root.sh腳本。(不可並行)
4.3、安裝數據庫軟件
使用oracle用戶安裝數據庫軟件
#su – oracle $export DISPLAY=172.16.2.100:0.0 $xclock $./runInstaller |
Install_database software only
註意檢查加入節點信息是否正確
選擇enterprise edition(7.51GB)
確認ORACLE_HOME,ORACLE_BASE路徑是否正確
ORACLE_BASE: /u01/app/oracle
ORACLE_HOME: /u01/app/oracle/product/11.2.0/db_1
選擇管理組
4.4、安裝數據庫psu
註意在安裝過程中根據提示運行腳本root.sh,先打psu後執行root.sh
#su – oracle(所有節點操作) $unzip p6880880_112000_AIX64-5L.zip –d $ORACLE_HOME $unzip p13696251_112030_AIX64-5L.zip –d /u01/psu 註意在psu目錄中不能包含除PSU解壓文件以外的文件。 $ /u01/psu/13696251/custom/server/13696251/custom/scripts/prepatch.sh -dbhome $ORACLE_HOME $ORACLE_HOME/OPatch/opatch napply -oh $ORACLE_HOME -local /u01/psu/13696251/custom/server/13696251 $ORACLE_HOME/OPatch/opatch apply -oh $ORACLE_HOME -local /u01/psu/13696216 $/u01/psu/13696251/custom/server/13696251/custom/scripts/postpatch.sh -dbhome $ORACLE_HOME # /u01/11.2.0/grid/rdbms/install/rootadd_rdbms.sh(以root身份執行) 打完補丁後註意檢查: $opatch lsinv Psu完成後,以root身份在所有節點按照提示執行root.sh(不可並行) |
4.5、配置ASM
使用grid用戶創建asm磁盤組
#su – grid $export DISPLAY=172.16.2.100:0.0 $asmca 點create DATA 兩塊磁盤 external AU:4 1T FLS 一塊磁盤 external AU:4 512GB |
4.6、創建數據庫
使用oracle用戶安裝數據庫
#su – oracle $export DISPLAY=172.16.2.100:0.0 $xclock $dbca |
選擇create a Database
選擇custom Database
註意實例名填寫正確,選中兩個節點(select all)(實例名不超過8位)
根據需求如需安裝EM,選擇configure Enterprise Manager
選擇enable automatic maintenance tasks
建議為所有用戶配置相同密碼,例如:oracle123
指定數據文件存放位置
根據需求如需開啟歸檔,選擇enable archiving,註意此處如不指出歸檔路徑,默認為fast recovery area,大小受限於fast recovery area的大小。如需指明歸檔路徑,選擇edit archive mode parameters進行指定。
根據具體需求選擇相應組件
關鍵參數設置
根據具體需求對數據庫內存進行設置
連接數Processes:1000
選擇字符集:AL32UTF8
默認為Dedicated Server Mode
Summary 查看配置信息
創建實例二:步驟同上
創建完成後檢查集群狀態
$crsctl status res –t
Oracle RAC(Linux)搭建