====== Oracle 10g RAC Release2 on HP-UX Installation Guide ======
===== HP-UX 환경설정 및 사전준비 =====
==== HP-UX OS Version 확인 (Itanium / IPF) ====
| HP-UX testdb2 B.11.23 U ia64 2126332087 unlimited-user license |
==== Oracle Version 확인 ====
| Oracle 10g Database 10.2 |
==== HP-UX Disk Space 공간확인 ====
| Database 1.2G 이상 |
| Software 2.5G 이상 |
==== HP-UX Memory 공간확인 ====
| 최소 1G RAM 이상 |
==== HP-UX Swap 공간확인 ====
| Memory 크기 | Swap 셋팅값 |
|1024MB < RAM < 2048MB |RAM Size * 1.5 |
|2048MB < RAM < 8192MB |RAM Size |
|8192MB < RAM |RAM Size * 0.75 |
==== HP-UX Tmeporary 공간확보 ====
| 400MB 이상 |
==== HP-UX JDK/JRE 버젼 확인 ====
| 1.4.2.00 이상 |
==== HP-UX Package와 Patches 확인 ====
| Oracle Site에서 권고하는 정확한 Package가 필요하다. |
==== HP-UX Kernel 값 설정 ====
- KSI_ALLOC_MAX (NPROC*8)
- EXECUTABLE_STACK=0
- MAX_THREAD_PROC 1024
- MAXDSIZ 1073741824 bytes
- MAXDSIZ_64BIT 2147483648 bytes
- MAXSSIZ 134217728 bytes
- MAXSSIZ_64BIT 1073741824
- MAXUPRC ((NPROC*9)/10)
- MSGMAP (MSGTQL+2)
- MSGMNI NPROC
- MSGSEG 32767
- MSGTQL 4096
- NFILE (15*NPROC+2048)
- NFLOCKS 4096
- NINODE (8*NPROC+2048)
- NKTHREAD (((NPROC*7)/4)+16)
- NPROC 4096
- SEMMNI 4096
- SEMMNS (SEMMNI*2)
- SEMMNU (NPROC - 4)
- SEMVMX 32767
- SHMMAX AvailMem
- SHMMNI 512
- SHMSEG 120
- VPS_CEILING 64
==== Unsupported Products 확인 ====
| OTN 사이트 등에서 지원 제품군을 확인한다. |
==== Installation, Configuration, and Upgrade Issues ====
==== Other Known Issues ====
=== Cluster Verification Utility (CVU) ===
- Check Kernel Parameter Settings
* CVU는 커널 파라미터 셋팅을 체크하지 않는다.
- Raw Devices Shared Storage
* CVU는 오라클 클러스터웨어와 RAC를 설치하고 데이터베이스를 생성 하기 위해 클러스터의 가용성을 검증한다.
* 또한 독립적인 클러스터 구성 요소들의 통합을 검증하는데 도움을 준다.
* CVU는 raw 디바이스를 찾지도 않으며, 또한 raw 디스크에 대해 공유 체크를 수행하지 않는다.
==== Network Requirements ====
=== 클러스터의 각 노드는 다음의 요구 사항들을 충족시켜야 한다 ===
- 각 노드는 최소한 두개의 네트웍 어댑터들을 갖고 있어야 한다.
* Public Network 인터페이스와 Private Network 인터페이스(인터커넥터)용으로 각각 1개
- 각 네트웍에 대해 네트웍 어댑터들과 관련있는 인터페이스 이름들은 모든 노드들에서 동일해야 한다.
* 예) private interconnect에 대해서는 lan0을, public interconnect에 대해서는 lan1.
- 신뢰성을 높이기 위해서, HP Serviceguard나 HP Auto Port Aggregation(APA)을 사용해서 각 노드에 대해 예비(또는 백업용) public과 private network adapter들을 설정할 수 있다.
- private network에 대해, 다음의 인터커넥터 프로토콜과 하드웨어가 RAC 10g와 함께 지원된다.
* HP-UX 11.11(PA-RISC), HP-UX 11.23(Itanium2 and PA-RISC)을 위해 1GB Ethernet 이상의 UDP
* HP-UX 11.11(PA-RISC), HP-UX 11.23(Itanium2 and PA-RISC)을 위해 HyperFabric2 이상의 UDP
* HyperFabric2 이상의 Hyper Messaging Protocol(HMP)(PA-RISC only)
* Infiniband이상의 Full RDMA는 RAC 10g R2에서 지원된다.
==== Storage Considerations for Installing Oracle RAC 10g ====
=== Support Storage Options ===
| Storage Option | Clusterware | Database | Recovery |
|Automatic Storage Management | No | Yes | Yes |
|Shared raw logical volumes(requires SGeRAC) | Yes | Yes | No |
|Shared raw disk devices as presented to hots | Yes | Yes | No |
|Shared raw partitions(Itanium2 only) | Yes | Yes | No |
|Veritas CFS | Yes | Yes | Yes |
=== 제약사항 ===
* Standard Edition 설치를 위해서, ASM이 데이터베이스나 복구 파일을 위해 유일하게 지원되는 스토리지 옵션이다.
* Oracle Clusterware files를 저장하기 위해 Automatic Storage Management를 사용할 수 없다.
왜냐하면 이러한 파일들은 어떤 오라클 인스턴스라도 시작되기 전에 억세스되어야 하기 때문이다.
* HP Serviceguard Extension for RAC(SGeRAC)를 사용하지 않는다면,
Clusterware나 데이터베이스 파일 스토리지를 위해 shared raw logical volumes를 사용할 수 없다
=== Network Attached Storage for RAC Databases (참고) ===
* NAS는 RAC를 위한 공유 스토리지로서 HP 11.23에서 지원된다.
* RAC를 위한 공유 스토리지로 NAS를 사용하기 위해 PHNE_32055 패치를 적용시킨다.
===== CRS 설치 =====
==== /etc/hosts 파일을 Real IP, Virtual IP, Heartbeat IP 정보를 추가한다. ====
$ cat /etc/hosts
# heartbeat line
172.16.0.1 testhb1
172.16.0.2 testhb2
# oracle 10g RAC Online
192.168.200.231 testdb1 testdb1.yoons.or.kr
192.168.200.232 testdb2 testdb2.yoons.or.kr
192.168.200.233 testvip1 testvip1.yoons.or.kr
192.168.200.234 testvip2 testvip2.yoons.or.kr
==== ocr(640)과 vote(660) 파일의 퍼미션을 확인한다. ====
oracle@testdb1 /dev/vg10$ ls -al /dev/vg10/rocr /dev/vg10/rvote
crw-r----- 1 oracle dba 64, 1048593 2006-10-18 11:25 /dev/vg10/rocr
crw-rw---- 1 oracle dba 64, 1048594 2006-10-18 11:25 /dev/vg10/rvote
==== 압축파일을 해제한다. ====
$ unzip 10gr2_clusterware_hpi.zip
$ cd clusterware/cluvfy/
$ ./runcluvfy.sh comp nodecon -n testdb1,testdb2 -verbose
==== profile 설정을 추가한다. ====
$ cat .profile
export ORACLE_BASE=/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10g
#export ORACLE_HOME=$ORACLE_BASE/product/crs
export ORA_CRS_HOME=$ORACLE_BASE/product/crs
export NLS_LANG=AMERICAN_AMERICA.KO16MSWIN949
export ORACLE_SID=SOAF2
export SHLIB_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/lib32:/usr/lib
export PATH=$ORACLE_HOME/bin:$ORA_CRS_HOME/bin:$PATH
#CLASSPATH must include the following JRE locations:
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export CLASSPATH=$CLASSPATH:$ORACLE_HOME/network/jlib
export EDITOR=vi
$ cat .dtprofile
DTSOURCEPROFILE=true # 주석을 해제한다.
===== Virtual IP(VIP) 설정 =====
==== CRS 설치가 끝나후, root계정으로 X-windows 로그인 후, vipca를 실행해준다. ====
$ ${ORACLE_HOME}/bin/vipca
==== /etc/hosts 파일에 정보가 제대로 들어가 있다면, 호스트이름 입력시 IP 정보 등이 자동으로 입력된다. ====
==== Modifying a Virtual IP Address Node Application ====
=== 기존 가상 IP 주소(VIP) 리소스의 이름, IP 주소, 또는 netmask를 수정할 때, 다음의 명령어를 사용한다. ===
$ srvctl modify nodeapps
=== 그리고 –A 인수에서 VIP에 대해 기존의 인터페이스를 포함시킨다. ===
$ srvctl modify nodeapps –n mynode1 –A 100.200.300.40/255.255.255.0/eth-
===== Database 설치 =====
- .profile 에서 $ORACLE_HOME 정보를 수정한다.
- 다음부터 일반적인 Oracle Database 설치와 동일하다.
===== Database 패치(Patch) =====
==== 패치파일을 풀어놓는다. (이 파일로 CRS,DATABASE 둘다 패치작업을 진행한다) ====
testdb1$ unzip p4547817_10202_HPUX-IA64.zip
==== EM 이 떠 있는지 확인하고 떠 있으면 em을 정지시킨다. ====
testdb1$ emctl status dbconsole
testdb1$ emctl stop dbconsole
==== 모든 node의 LISTENER 를 내린다. ====
testdb1$ more $ORACLE_HOME/network/admin/listener.ora <- 리스너 정보를 확인한다.
testdb1$ lsnrctl stop LISTENER_TESTDB1
testdb1$ lsnrctl status
testdb2$ more $ORACLE_HOME/network/admin/listener.ora <- 리스너 정보를 확인한다.
testdb2$ lsnrctl stop LISTENER_TESTDB1
testdb2$ lsnrctl status
==== 서버별 Database를 모두 내린다. ====
testdb1$ sqlplus '/as sysdba'
SQL> shutdown immediate;
SQL> exit;
testdb2$ sqlplus '/as sysdba'
SQL> shutdown immediate;
SQL> exit;
==== 모든 CRS를 내린다. ====
testdb1$ crsctl stop crs
testdb2$ crsctl stop crs
==== CRS 패치를 한다. ====
- $HOME/.profile 의 $ORACLE_HOME 을 수정한다.
- X-windows를 새로 띄워서 패치작업을 진행한다.(한쪽노드에서만 설치해도 된다.)
- 종료직전 후, root로 해야 하는 작업이 있을 경우 수행해 준다.(필요시 모든 노드에서 실행)
==== Oracle Datbase 패치를 한다. ====
- $HOME/.profile 의 $ORACLE_HOME 을 수정한다.
- X-windows를 새로 띄워서 패치작업을 진행한다.(한쪽노드에서만 설치해도 된다.)
- 종료직전 후, root로 해야 하는 작업이 있을 경우 수행해 준다.(필요시 모든 노드에서 실행)
==== 패치 스크립트를 돌린다. ====
- $ORACLE_HOME/dbs/initSOAF1.ora 파일을 열어서 cluster_database 를 false로 수정한다.
cluster_database=false
- upgrade 스크립트를 실행한다.
$ sqlplus '/as sysdba'
SQL> spool upgrade_log
SQL> startup upgrade
SQL> show parameter shared
SQL> show parameter java
SQL> @?/rdbms/admin/catupgrd.sql
SQL> shutdown immediate;
SQL> startup
SQL> @?/rdbms/admin/utlrp.sql
SQL> shutdown immediate;
==== CRS, DATABASE를 실행한다. ====
- 아래의 명령을 통해서 자동으로 DB를 올려준다.
$ srvctl start database -d SOAF
- LISTENER가 제대로 떠 있는지 확인한다.
$ lsnrctl status