一、軟硬體設定檢查1、檢查記憶體
#/usr/contrib/bin/machinfo
CPU info:
4 Intel(R) Itanium 2 9100 series processors (1.59 GHz, 18 MB)
532 MT/s bus, CPU version A1
8 logical processors (2 per socket)Memory: 32737 MB (31.97 GB)Firmware info:
Firmware revision: 04.11
FP SWA driver revision: 1.18
IPMI is supported on this system.
BMC firmware revision: 5.24Platform info:
Model: "ia64 hp server rx6600"
Machine ID number: 85468ec4-4ed7-11de-b9fa-eb58278042cf
Machine serial number: SGH4917N5POS info:
Nodename: rx6600b
Release: HP-UX B.11.31
Version: U (unlimited-user license)
Machine: ia64
ID Number: 2235993796
vmunix _release_version:
@(#) $Revision: vmunix: B.11.31_LR FLAVOR=perf 2、檢查交換空間
#/usr/sbin/swapinfo -a
Kb Kb Kb PCT START/ Kb
TYPE AVAIL USED FREE USED LIMIT RESERVE PRI NAME
dev 8388608 0 8388608 0% 0 - 1 /dev/vg00/lvol2
reserve - 579384 -579384
memory 31886172 4310692 27575480 14%對於小於2g實體記憶體的系統,設定為實體記憶體的2倍。對應大於2g記憶體的系統,設定為跟實體記憶體同樣大小。3、檢查臨時空間
#bdf /tmp
Filesystem kbytes used avail %used Mounted on
/dev/vg00/lvol4 2097152 548944 1536784 26% /tmp保證至少400m,推薦1g
如果沒有400M可以設定oracle使用者的環境變數,增加臨時空間
$ oracle使用者執行 vi ~/.profile,增加
export TEMP=/directory
export TMPDIR=/directory
可以線上擴充檔案系統4、建立 oracle 安裝目錄,包括 crs (安裝在共用儲存上)
#lvcreate -L 15g -n lv_ora /dev/vg00
#newfs -F vxfs /dev/vg00/rlv_ora
#mkdir /oracle
#vi /etc/fstab 增加自動掛載
#mount /oracle5、查看是否開啟RAW裝置的非同步I/O
# swlist | grep -i -e extsw -e gold -e qpk
QPKBASE B.11.31.0903.334a Base Quality Pack Bundle for HP-UX 11i v3, March 2009 # ll /dev/async (預設是開啟的)
crw-rw-rw- 1 bin bin 101 0x000000 Jun 9 09:38 /dev/async沒有開啟可以通過一下方法開啟
#建立/dev/async character device
/sbin/mknod /dev/async c 101 0x0
chown oracle:dba /dev/async
chmod 660 /dev/async
#用SAM在 kernel配置async driver
=> Kernel Configuration
=> Kernel
=> the driver is called 'asyncdsk'
Generate new kernel(產生新的kernel)
重啟
# shutdown -r -y 0
#用sam設定HP-UX kernel參數
max_async_ports = init.ora參數中指定的processes值 + oracle後台進程的數量
aio_max_ops = 預設20486、檢查系統時間是否同步
#date
查看每個節點的日期時間,儘可能的同步,如果不同步,用date MMDDHHMIYY ,比如2007/09/09 10:21,可以如下設定:date 0909102107進行同步7、檢查符合的串連是否存在
cd /usr/lib
ls libX*.sl
# 如果不存在需要建立
cd /usr/libln -s libX11.3 libX11.sl
ln -s libXIE.2 libXIE.sl
ln -s libXext.3 libXext.sl
ln -s libXhp11.3 libXhp11.sl
ln -s libXi.3 libXi.sl
ln -s libXm.4 libXm.sl
ln -s libXp.2 libXp.sl
ln -s libXt.3 libXt.sl
ln -s libXtst.2 libXtst.slls -al libX*.sl8、查看網路介面
#查看各個介面
#lanscan
Hardware Station Crd Hdw Net-Interface NM MAC HP-DLPI DLPI
Path Address In# State NamePPA ID Type Support Mjr#
0/4/2/0 0x001A4B09924C 0 UP lan0 snap0 1 ETHER Yes 119
0/4/2/1 0x001A4B09924D 1 UP lan1 snap1 2 ETHER Yes 119
LinkAgg0 0x000000000000 900 DOWN lan900 snap900 4 ETHER Yes 119
LinkAgg1 0x000000000000 901 DOWN lan901 snap901 5 ETHER Yes 119
LinkAgg2 0x000000000000 902 DOWN lan902 snap902 6 ETHER Yes 119
LinkAgg3 0x000000000000 903 DOWN lan903 snap903 7 ETHER Yes 119
LinkAgg4 0x000000000000 904 DOWN lan904 snap904 8 ETHER Yes 119
#顯示各個介面的ip和狀態 (需要保證每台節點上使用的介面具有相同的名字)
#netstat -in
Name Mtu Network Address Ipkts Ierrs Opkts Oerrs Coll
lo0 32808 127.0.0.0 127.0.0.1 58845 0 58845 0 0
lan1 1500 192.168.1.0 192.168.1.3 91391 0 178583 0 0
lan0 1500 10.160.8.0 10.160.8.12 6760363 0 640706 0 0 # 顯示指定介面的當前配置
#ifconfig lanX
保證一個介面比如lan0為外部串連用,一個介面如lan1為內部心跳線。vip的ip跟外部介面要在一個網段9、編輯 /etc/hosts
#vi /etc/hosts
192.168.1.2 rx6600a-priv
192.168.1.3 rx6600b-priv10.160.8.11 rx6600a
10.160.8.12 rx6600b10.160.8.15 rx6600a-vip
10.160.8.16 rx6600b-vip
127.0.0.1 localhost loopback//注意: hosts中必須存在127.0.0.1的條目,且只能對應localhost相關,不能對應hostname;如果不設定127.0.0.1,則無法正常啟動資料庫。#vi .rhosts
rx6600a root
rx6600b root
rx6600a-priv root
rx6600b-priv root
rx6600a-vip root
rx6600b-vip root# su - oracle
#vi .rhosts
rx6600a oracle
rx6600b oracle
rx6600a-priv oracle
rx6600b-priv oracle
rx6600a-vip oracle
rx6600b-vip oracle 10、查看hp-ux的具體patch 和pack
/usr/sbin/swlist -l bundle | grep xxxName
/usr/sbin/swlist -l patch
/usr/sbin/swlist -l patch <patch_number>
/usr/sbin/swlist -l product |grep Serviceguard
PHSS_38558 1.0 Serviceguard eRAC A.11.18.00
PHSS_39484 1.0 Serviceguard A.11.18.00
SG-NMAPI A.11.18.00 SG-NMAPI Serviceguard Extension for RAC SD product
SG-RAC-Tool A.11.18.00 Serviceguard Extension for RAC Toolkit SD Product
SGManagerPI B.01.01 HP Serviceguard Manager
SGWBEMProviders A.02.00.00 HP Serviceguard WBEM Providers SD Product
ServiceGuard A.11.18.00 Serviceguard SD Product 注:Hp-ux 11.31的預設安裝過程,能夠滿足oracle 10.2.0.1的安裝需求。二、安裝MC/SG1、安裝MC/SG
#mount /dev/cdrom /cdrom
#swinstall -s /cdrom
2、建立鎖盤
#ioscan -m dsf //察看磁碟
#pvcreate -f /dev/disk/disk27
#mkdir /dev/vglock
#mknod /dev/vglock/group c 64 0x010000 (這裡注意group不能重複)
#vgcreate /dev/vglock /dev/disk/disk27 (將物理磁碟disk23加給該卷組)
#strings /etc/lvmtab
/dev/vg00
/dev/disk/disk1_p2
/dev/vglock
/dev/disk/disk27
/dev/vgcrs
/dev/disk/disk33
/dev/vgdata2
/dev/disk/disk28
/dev/disk/disk34
/dev/vgdata1
/dev/disk/disk25
/dev/disk/disk26
#vgchange -a n /dev/vglock
#vgexport -s -p -v -m /tmp/vglock.map /dev/vglock
#rcp /tmp/vglock.map rx6600b:/tmp/
#vgimport -s -m /tmp/vglock.map3、建立concurrent VG 及相關檔案系統或 LV raw
#ioscan -m dsf
#pvcreate -f /dev/rdisk/disk12
#mkdir /dev/vg03
#mknod /dev/vg03/group c 64 0x030000
#vgcreate vg03 /dev/disk/disk12
#lvcreate -L 1000 -n mylv vg03 建立檔案系統
#newfs -F vxfs /dev/vg03/mylv
#mkdir /oradata 建mount目錄
#mount /dev/vg03/mylv /oradata mount檔案系統
開機自動掛載檔案系統
#vi /etc/fstab
如果是要共用的vg 則:
#vgchange -a n vg03 關閉卷組
#vgexport -p -s -m /tmp/map1 vg03 匯出卷組配置資訊(注:-p是保留卷組資訊,-s是設為共用,-m /tmp/map1是產生map1卷組資訊資訊檔)
#rcp /tmp/map1 rx6600b:/tmp/map1 拷貝檔案到主機B上
在 rx6600b 機器上
#mkdir /dev/vg03 建立裝置卷目錄
#mknod /dev/vg03/group c 64 0x030000 建立卷控制檔案
(註:03是機器上唯一的,先用ls -l */group查看是否已存在,如已存在03,將改變此值,取值:00-16)
#vgimport -s -m /tmp/map1 vg03 匯入vg03卷組資訊
#strings /etc/lvmtab 查看匯入的卷組配置
#vgchange -a y vg03 啟用vg03卷組
#mkdir /oradata 建mount目錄(與主機A相同)
#mount /dev/vg03/mylv /oradata mount檔案系統將VG設定為非自動啟用
#vi /etc/lvmrc
其中
AUTO_VG_ACTIVATE=1 修改為04、MC/SG 配置
#cd /etc/cmcluster 進入cluster的預設目錄
#cmquerycl -C cluster.ascii -n rx6600 -n rx6600 建立cluster文字檔
#vi cluster.ascii 編輯cluster ASCII 檔案,更改cluste name、鎖盤、節點心跳時間、包數量CLUSTER_NAME cluster1
FIRST_CLUSTER_LOCK_VG /dev/vglockNODE_NAME rx6600a
NETWORK_INTERFACE lan0
HEARTBEAT_IP 10.160.8.11
NETWORK_INTERFACE lan1
HEARTBEAT_IP 192.168.1.2
# CLUSTER_LOCK_LUN
FIRST_CLUSTER_LOCK_PV /dev/disk/disk27NODE_NAME rx6600b
NETWORK_INTERFACE lan0
HEARTBEAT_IP 10.160.8.12
NETWORK_INTERFACE lan1
HEARTBEAT_IP 192.168.1.3
# CLUSTER_LOCK_LUN
FIRST_CLUSTER_LOCK_PV /dev/disk/disk32HEARTBEAT_INTERVAL 1000000
NODE_TIMEOUT 2000000AUTO_START_TIMEOUT 600000000
NETWORK_POLLING_INTERVAL 2000000MAX_CONFIGURED_PACKAGES 4///// VOLUME_GROUP /dev/vg02 熱備雙機時,設定OPS_VOLUME_GROUP /dev/vglock //並發VG 的設定,用於 oracle RAC
OPS_VOLUME_GROUP /dev/vgcrs
OPS_VOLUME_GROUP /dev/vgdata2
OPS_VOLUME_GROUP /dev/vgdata1#cmcheckconf -C cluster.ascii 檢查cluster、節點配置情況
#cmapplyconf -C cluster.ascii 建立cluster
#cmruncl -v
#cmviewcl -v 5.佈建服務包運行指令碼、環境
主機A(rx660a):
#mkdir /etc/cmcluster/pkg1
#cd /etc/cmcluster/pkg1 建立和進入一目錄
#cmmakepkg -p clustercrs.conf 建立包設定檔,可修改包名、節點、服務和包屬性
#vi clustercrs.conf 編輯包設定檔PACKAGE_NAME pkg1 //包名字PACKAGE_TYPE FAILOVER //發生錯誤時進行切換。NODE_NAME rx6600a //first 優先順序節點1
//NODE_NAME rx6600b //second優先順序節點1,當熱備時用AUTO_RUN YES //cmruncl 時,自啟動。
NODE_FAIL_FAST_ENABLED NO //當pkg 發生問題時,節點是否也宕。RUN_SCRIPT /etc/cmcluster/pkg1/clustercrs.cntl 包運行指令碼
RUN_SCRIPT_TIMEOUT NO_TIMEOUT
HALT_SCRIPT /etc/cmcluster/pkg1/clustercrs.cntl 包停止指令碼
HALT_SCRIPT_TIMEOUT NO_TIMEOUT#CONFIGURED_NODE, MIN_PACKAGE_NODE, SITE_PREFERRED. //當pkg fail 時,切換到的節點規則
FAILOVER_POLICY CONFIGURED_NODE //切換到已配置的優先順序高的節點。
FAILBACK_POLICY MANUAL //是自動AUTOMATIC ,還是 手動 切換回來。MONITORED_SUBNET 10.160.8.0 #cmmakepkg -s clustercrs.cntl 建立包控制指令碼
#vi clustercrs.cntl 編輯包控制指令碼
clustercrs.cntl配置例子:PATH=/usr/bin:/usr/sbin:/etc:/bin:/usr/lbin:/etc/cmcluster/pkg1 ///加入包檔案目錄的路徑VGCHANGE="vgchange -a s" //MC接管啟用卷組的參數,預設是vgchange -a e ,RAC 用vgchange -a sVG[0]=vg03 //切換接管的卷組名,可同時有多個,順序是0、1、2、3
VG[1]="vgdata1"
VG[2]="vgdata2"
VG[3]="vgcrs"/// LV[2]=/dev/vg03/mylv; FS[2]=/oradata; FS_MOUNT_OPT[2]="" // 邏輯卷的mount 目錄,需要掛載的檔案系統//IP[0]=192.168.168.20 應用程式套件的IP地址
//SUBNET[0]=192.168.168.0 應用程式套件的監聽網段//SERVICE_NAME[0]="demo"
//SERVICE_CMD[0]="/usr/bin/X11/xclock -display 192.168.168.23:0"(或設定一個指令碼,內容見附錄)
//SERVICE_RESTART[0]="-R"function customer_defined_run_cmds
{ (在此加入應用啟動的命令)
test_return 51
}
function customer_defined_halt_cmds
{ (在此加入應用關閉的命令)
test_return 52
}(注:
SERVICE_NAME[0]="demo"是服務名,必須與demo.conf裡的SERVICE_NAME相同名。SERVICE_CMD[0]=
"..."是啟動服務時啟動並執行命令,現在用的命令是"/usr/bin/X11/xclock -display
192.168.168.23:0"表示運行xclock並在192.168.168.23的工作站上顯示出來。SERVICE_RESTART[0]
=""是服務重啟的次數,“-r 2”是重啟兩次,“-R”是不斷重啟。)4.在叢集內添加服務包,配置各節點接管包環境
#rcp clustercrs.cntl rx6600b:/etc/cmcluster/pkg1 拷貝控制指令碼,將demo.cntl控制指令碼拷到主機B上,使其環境同步)
#cmcheckconf
-v -P clustercrs.conf
檢查包配置,檢驗以上對包的配置是否有誤,在指令碼目錄裡會有與指令碼名相同的log檔案,如:demo.cntl.log
。如果一切無誤將接著做下一步,否則要做相應的修改,直至無誤。)
#cmapplyconf -v -P clustercrs.conf 將包加入叢集cluster執行配置檢查
#cmcheckconf -v -C /etc/cmcluster/cmcluster.ascii -P /etc/cmcluster/informix/informix.cntl
重新分發cluster.ascii檔案
#cmapplyconf -v -C /etc/cmcluster/cluster.ascii -P /etc/cmcluster/informix/informix.cntl#cmrunpkg cluster 運行demo包
#cmviewcl -v 查看cluster和cluster裡節點的資訊
CLUSTER、NODE、INTERFACE、PACKAGE的狀態都是up和running ,PKG_SWITCH、NODE_TYPE SWITCHING都是enabled,)5.啟動和管理、叢集、節點、服務包 #cmruncl 啟動叢集cluster
#cmhaltcl 關閉叢集cluster
#cmrunnode node_name 啟動一個或多個節點
#cmhaltnode -f node_name 關閉一個或多個節點
#cmrunpkg pkg_name 啟動應用程式套件
#cmhaltpkg pkg_name 關閉應用程式套件
#cmviewcl -v 查看cluster和cluster裡節點的資訊
#cmmodpkg -e pkg_name 使應用程式套件可被接管、切換
#cmmonpkg -e -n node_name pkg_name 使節點可接管應用程式套件附錄:
mc的監控指令碼可以寫一個無實質的迴圈指令,目的在於讓命令不執行不間斷。可以起一個名為monitor的指令碼,在指令碼內寫入簡單的,如:
while [ 1 ]
do
sleep 30
done安裝 oracle clusterware採取檔案系統形式或 LV raw 方式,則需要OPSVG 解決concurrent VG的問題。
#groupadd -g 201 dba
#groupadd -g 200 oinstall
#useradd -u 200 -g oinstall -G dba,oinstall oracle //如果沒有建立oracle的預設目錄,建立預設目錄 /home/oracle
#id oracle //檢查是否存在nobody使用者
#id nobody編輯oracle使用者$HOME目錄下的.rhosts
#vi /home/oracle/.rhosts
rx6600a oracle
rx6600a_vip oracle
rx6600a_priv oraclerx6600b oracle
rx6600b_vip oracle
rx6600b_priv oracle配置 profile 檔案
#vi /home/oracle/.profileORACLE_HOME=/oracle/product/10.2.0
export ORACLE_HOME
ORACLE_BASE=/oracle
export ORACLE_BASE
ORACLE_SID=gzga1
export ORACLE_SID
export ORA_CRS_HOME=/oracrs
JAVA_HOME=/opt/java1.5
export JAVA_HOME
TNS_ADMIN=$ORACLE_HOME/network/admin
export TNS_ADMIN
NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export NLS_LANG
NLS_LANGUAGE=$NLS_LANG
export NLS_LANGUAGE
ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data export ORA_NLS33
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:$ORACLE_HOME/rdbms/lib
SHLIB_PATH=$ORACLE_HOME/lib32:$ORACLE_HOME/rdbms/lib32
export LD_LIBRARY_PATH
export SHLIB_PATH
stty erase
PATH=$PATH:/opt/java1.5/bin:/bin:/usr/bin:/usr/sbin:/etc:/opt/bin:/usr/ccs/bin:/usr/local/bin:$ORACLE_HOME/bin:.
export PATH
TMP=/tmp export TMP
TMPDIR=/tmp export TMPDIR
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/network/jlib:$ORACLE_HOME/jdbc/lib/classes12.zip
export CLASSPATH ORACLE_BASE=/oracle/app/oracle;export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db;export ORACLE_HOME
export ORA_CRS_HOME=/oracrs
ORACLE_SID=gzga1;export ORACLE_SID
ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data;export ORA_NLS33
ORACLE_TERM=vt100;export ORACLE_TERM
TMPDIR=/oracle/tmp;export TMPDIR
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib;export LD_LIBRARY_PATH
PATH=/usr/ccs/bin:$ORACLE_HOME/bin:/usr/bin:/usr/opt/networker/bin:$PATH;export PATH
DISPLAY=10.160.8.191:0.0;export DISPLAY
NLS_LANG=american_america.zhs16gbk;export NLS_LANG
TNS_ADMIN=$ORACLE_HOME/network/admin;export TNS_ADMIN
TERM=vt100;export TERM
EDITOR=vi; export EDITOR
TMP=/tmp;export TMP
CLASSPATH=$ORACLE_HOME/JRE/lib:$ORACLE_HOME/jlib:$ORACLE_HOME/network/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/plsql/jlib:$ORACLE_HOME/assistants/jlib:$ORACLE_HOME/assistants/dbca/jlib;export
CLASSPATH
DBCA_RAW_CONFIG=/oracle/dbca_raw_config.txt;export DBCA_RAW_CONFIG
export PS1=`hostname`@`whoami`'[$PWD]'$建立clusterWare和oracle的安裝目錄
mkdir -p /oracle/product/CRS
mkdir -p /oracle/product/RAC10g
chown -R oracle:oinstall /oracle
chmod -R 775 /oracle# 設定OCR使用的raw裝置:
chown root:oinstall /dev/rdisk/disk140
chmod 640 /dev/rdisk/disk140如果資料庫採用 ASM 方式,則不需要 MC/SG 雙機軟體
需要修改 磁碟的屬性
chown oracle:dba /dev/rdisk/disk137
chown oracle:dba /dev/rdisk/disk138
chown oracle:dba /dev/rdisk/disk139chmod 660 /dev/rdisk/disk137
chmod 660 /dev/rdisk/disk138
chmod 660 /dev/rdisk/disk139
安裝oracle 資料庫
#/cdrom/database/runInstaller -ignoresysprereqs