( Silent ) RHEL3 + oracle9i R2 + patchset 9.2.0.8 적용 + DB 생성

이 문서는 RHEL3 + Oracle9i + patchset 9.2.0.8.0 + DB 생성 과정을 slient으로 설치를 하고 있다.
Slient 설치는 GUI 환경에서 설치를 하는것이 아니라 터미널로 접속하여 텍스트 환경에서 설치를 하는것이다.
과정은 OUI 설치와 비슷하나 설정값을  Response 파라미터 설정파일에 값을 설정하거나 설치시 값을 옵션으로 넘기는 방식으로 한다.

이 문서는 총 3개의 PART로 나눈다.
1. Oracle9i Server 설치
2. Oracle 9.2.0.8.0  패치
3. DB 생성

참고
1. 이해의 정확성을 위해 대부분 절대경로로 표시한다. (즉 상대경로로 실행해도 무방하다.)
2. 설치 파일과 패치파일등은 /home/oracle/install/ 아래에 위치한다.
3. ORACLE_HOME 은 /home/oracle/OraHome/ 이다.
4. 사용자의 입력이 필요한 곳에서는 빨간굵은으로 표시한다.
5. 과정명의 (..) 안에는 진행해야하는 계정을 뜻한다. (생략은 관계없다.)

요구사항
1. Oracle9i  설치파일과 patchset9.2.0.8 파일이 있다.
2. 터미널로 접속이 가능한 환경이다.
3. dba 그룹에 oracle 사용자가 존재한다.(없으면 생성한다)
4. p3006854_9204_LINUX.zip 존재한다.
5. RHEL3가 이미 설치되어 있다고 가정한다.

Oracle9i Server 설치

oracle 계정 생성 (root)
# groupadd -g 50000 dba
# useradd -g dba oracle
# passwd oracle

오라클9i 설치를 위해 리눅스 패치 (root)
# cd /home/oracle/install/patch
# unzip p3006854_9204_LINUX.zip                    
# cd 3006854/                                               
# sh rhel3_pre_install.sh

공유 메모리 설정(root)
# echo ‘2147483648’ > /proc/sys/kernel/shmmax

재시작시에도 적용되도록 /etc/rc.d/rc.local 파일 수정(root)
# vi /etc/rc.d/rc.local
echo ‘2147483648’ >
/proc/sys/kernel/shmmax


설치시 사용되는 디렉토리를 생성(root)
이 디렉토리에는 설치중 발생하는 로그 같은 파일이나 설치시 필요한 파일들이 생성된다. 
# vi /etc/oraInst.loc
inventory_loc=/home/oracle/oraInventory
inst_group=dba
# chown -R oracle.dba /etc/oraInst.loc


oracle.dba의 .bash_profile 에 환경변수 추가.
# vi /home/oracle/.bash_profile
export DISPLAY=localhost:0.0
export ORACLE_BASE=/home/oracle
export ORACLE_HOME=$ORACLE_BASE/OraHome
export PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_OWNER=oracle
export ORACLE_SID=testdb
export LD_ASSUME_KERNEL=2.4.1
// 이 환경변수를 설정해야 xwindow 화면에 password 화면이 생김

#export THREADS_FLAG=native
#export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
#export NLS_LANG=AMERICAN_AMERICA.KO16MSWIN949


/home/oracle/Disk1/response/enterprise.rsp 내용 수정
상대경로 하면 될때도 있고 안될때도 있다 절대경로를 넣자.
vi /home/oracle/Disk1/response/enterprise.rsp
UNIX_GROUP_NAME="dba"
FROM_LOCATION="/home/oracle/install/Disk1/stage/products.jar" 
ORACLE_HOME="/home/oracle/OraHome"
ORACLE_HOME_NAME="OraHome"


소유자 확인 및 설정(root)
/home/oracle/* 는 모두 oracle.dba가 소유자로 되어 있어야 한다.
# chown -R oracle.dba /home/oracle/
여기까지 하면 Oracle 엔진(서버)를 설치 할 준비과정이 끝났다.


Oracle 엔진(서버) 설치( 반드시 oracle 계정으로 진행 )
체크 사항(반드시 oracle 계정에서 확인한다.)
1. 현재 x-window 의 로그인 사용자와 ssh 사용자는 oracle 계정으로 접속되어 있어야 한다.
2. /home/oracle/.bash_profile 에 설정한 환경변수가 모두 적용되어 있는지 확인한다.
$ env | grep ORACLE_HOME
또는 
$ echo $ORACLE_HOME   (oracle의 .bash_profile 에 설정한 환경변수 테스트)
3. 만약 적용이 안되어 있으면 source 명령어로 다시 읽어서 환경변수가 생성되도록 한다.
$ source /home/oracle/.bash_profile
$ /home/oracle/install/Disk1/runInstaller -silent -responseFile /home/oracle/install/Disk1/response/enterprise.rsp

일단 In 요약 Page 까지 나와서 멈춰있다면 로그를 살펴보자 로그는 아래의 경로에서 확인이 가능하다.

$ tail - f /home/oracle/oraInventory/logs/installActionsxxxxxlog  < 최신파일을 열자
계속 진행중인 것을 확인 할 수 있다. 만약 에러가 발생했다면 아래 Trouble Shooting 을 보라.

성공시 log 파일 내용

한참을 기다리면 Linux 화면에 아래와 같은 입력창이 뜬다.(정말 오래 기다려야 한다.)
sys와 system의 암호를 입력한다.

 
패스워드 설정을 하고 종료를 누르면 아래와 같이 완료되었다는 메시지를 보게 된다.



 

- Oracle 엔진 설치 Trouble Shooting -

1. 환경변수 DISPLAY 의 값이 설정되지 않았음.
-- Solution --
/home/oracle/.bash_profile 의 'DISPLAY' 환경변수가 정의 되지 않아서 발생하는 문제이다.
oracle.dba의 .bash_profile 에 환경변수 추가. < 이 항목 검토
-- Error Message --
DISPLAY not set
le/install/Disk1/response/enterprise.rsp
DISPLAY not set!
Please set DISPLAY and try again.

2. /etc/oraInst.loc 생성
-- Solution --
/etc/oraInst.loc 파일을 찾지 못하여 발생한다. 파일을 생성해준다.
설치시 사용되는 디렉토리를 생성(root) < 이 항목을 살펴보자
-- Error Message --
 이 자동 설치를 계속하기 전에 이 시스템에 설치 인벤토리를 생성해야 합니다. 루트 권한으로 /tmp/orainstRoot.sh에서 스크립트를 실행하고 자동 설치를 재시도하십시오. 자세한 내용은 /tmp/silentInstall.log을(를) 확인하십시오.

3. 로그인된 사용자문제
-- Solution --
: 리눅스의 x-window 를 oracle 계정으로 로그인하고 터미널로 접속중이면 다 닫고 oracle 계정으로 접속
-- Error Message --
Xlib: connection to "localhost:0.0" refused by server
Xlib: No protocol specified

Exception in thread "main" java.lang.InternalError: Can't connect to X11 window server using 'localhost:0.0' as the value of the DISPLAY variable.
        at sun.awt.X11GraphicsEnvironment.initDisplay(Native Method)
        at sun.awt.X11GraphicsEnvironment.<clinit>(X11GraphicsEnvironment.java:59)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:120)
        at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:58)
        at java.awt.Window.<init>(Window.java:188)
        at java.awt.Frame.<init>(Frame.java:315)
        at java.awt.Frame.<init>(Frame.java:294)
        at oracle.ewt.popup.PopupFrame.<init>(Unknown Source)
        at oracle.ewt.lwAWT.BufferedFrame.<init>(Unknown Source)
        at oracle.sysman.oii.oiif.oiifm.OiifmMainFrame.<init>(OiifmMainFrame.java:296)
        at oracle.sysman.oii.oiic.OiicInstaller.<init>(OiicInstaller.java:231)
        at oracle.sysman.oii.oiic.OiicInstaller.main(OiicInstaller.java:599)

4. In 파일 위치 page 에서 멈춤
-- Solution -
/home/oracle/install/Disk1/runInstaller 명령 실행중 "In 파일 위치 Page " 에서 1분이상 멈춰있다면 로그를 열어보자. 거의 대부분 "xx.rsp" 파일의 설정문제가 대부분이다.
설치 로그 파일의 위치 : /home/oracle/oraInventory/logs/installActionsxxxxxlog 최신파일을 열자
-- Error Message --
In 파일 위치 Page...
........ 진행안됨..

5. Unable to initialize threads: cannot find class java/lang/Thread
-- Solution --
"LD_ASSUME_KERNEL=2.4.1" 환경변수가 존재하지 않은 경우에 발생한다.
oracle 계정의 .bash_profile 을 적용시켜서 환경변수를 생성한다.
-- Error Message --
Unable to initialize threads: cannot find class java/lang/Thread
Could not create Java VM


Oracle 9.2.0.8.0 패치

위의 과정을 마친 Oracle 9i의 배포버전은 9.2.0.4.0 이다.
이 배포 버전은 일종에 버그질라같은 곳에 올라와 있는 버그들이 수정되고 충분한 안정화 과정을 거친 다음 배포를 하게 되는데. 바로 저 9.2.0.4.0 숫자가 현재 설치되어 있는 버전이다.
많은 버그들이 수정 된 9.2.0.8.0 버전으로 패치를 진행하자.
! 패치를 진행하기 앞서 만약에 운영중인 서버라면 백업을 하고 진행한다.

patchset.rsp 파일 수정
$ unzip /home/oracle/install/patchset/p4547809_92080_LINUX.zip
vi /home/oracle/install/patchset/response/patchset.rsp
UNIX_GROUP_NAME="dba"
FROM_LOCATION="/home/oracle/patchset/Disk1/stage/products.xml"
ORACLE_HOME="/home/oracle/Disk1/OraHome"
ORACLE_HOME_NAME="OraHome"

runInstaller 실행 (oracle)
runInstaller 를 실행중 아마 에러가 발생한다. Trouble Shooting 2번을 참고 한다.
/home/oracle/install/patchset/Disk1/runInstaller -silent -responseFile /home/oracle/install/patchset/Disk1/response/patchset.rsp


위 성공 후 스크립트 실행(root)
runInstaller 를 실행 성공하면 /home/oracle/OraHome/root.sh 를 root 권한으로 실행하라고 표시된다.

# /home/oracle/OraHome/root.sh
Running Oracle9 root.sh script...
.. 생략 ..
Enter the full pathname of the local bin directory: [/usr/local/bin]: 엔터
...생략 ..
Now product-specific root actions will be performed.

패치 설치 확인 (oracle)
9.2.0.8.0 이 표시된다.
$ sqlplus


-- 9.2.0.8.0 PatchSet Trouble Shooting --

1. 설정값 오류
-- Solution --
 /home/oracle/install/patchset/Disk1/response/patchset.rsp 의 설정 문제이다.
FROM_LOCATION= < 의 경로가 잘못 되지 않았는지 확인한다.
-- Error Message --
부적합한 스테이지 영역입니다. 이 스테이지 영역에 설치할 수 있는 Linux의 상위 레벨 구성 요소가 없습니다.

2. 실행중인 관련 프로그램으로 인해 설치 중단
-- Solution --
패치를 실행할때 Oracle 과 관련된 실행중인 프로세스가 있다면 완료되었다는 메시지 대신 로그파일을 확인하라는 메시지가 표시된다. 서버를 reboot 하고 다시 실행하자.

-- Error Message --
종속 관계 분석중 ....... 자세한 내용은
/home/oracle/oraInventory/logs/silentInstall,.. 에서 확인하십시오
Log file
다음 프로세스가 실행중이므로 설치를 계속할 수 없습니다. 종료한 후 설치하십시오
httpd isqlplus oracle tnslsnr







DB 생성

/home/oracle/Disk1/response/dbca.rsp 수정
$ vi /home/oracle/Disk1/response/dbca.rsp
생성하려는 sid 를 입력하고 문자셋을 UTF8로 바꾼다.(환경에 맞게 바꾸면 된다.)
SID = "testdb"
NATIONALCHARACTERSET= "UTF8"
DATAFILEJARLOCATION = "/home/oracle/Disk1/OraHome/assistants/dbca/templates/"


/home/oracle/Disk1/OraHome/bin/dbca silent 옵션으로 실행(oracle)
DB를 생성하기 위해 DBCA를 실행한다.
$ /home/oracle/OraHome/bin/dbca -silent -responseFile /home/oracle/install/Disk1/response/dbca.rsp

아마 에러가 없다면 진행은 계속 되는데 화면상에 피드백이 없어서 정상적으로 진행이 되는지 궁금하다.
이때는 /home/oracle/admin/orcl9i/create/ 하위에 로그파일들이 생성 또는 변경되는 것을 확인 할 수 있다.

그런데 정말 로그파일의 생성도 멈춰있다면 파라미터 옵션들에서 오타를 의심한다. Trouble Shooting 2번을 참고한다.



기다리면 "데이터베이스 생성이 완료되었습니다. 자세한 내용은 /home/oracle/admin/orcl9i/create/orcl9i.log 의 로그파일을 참조하십시오" 라고 출력된다. 데이터베이스 생성이 완료되었다.

- orcl9i.log  로그내용-



재시도 또는 재설치
만약 작업을 취소하거나 오류가 발생하여 종료 후 재시도하면 SID가 중복되어 설치 진행이 불가능하다. 그때는 /etc/oratab 에서 sid (orcl9i) 를 삭제하고 다시 설치를 시도한다.
(Trouble Shooting 4번 참고)


DBCA 실행시 생성되는 로그파일 위치
/home/oracle/admin/orcl9i/create/


-- DBCA ( DB 생성 ) Trouble Shooting --
1. connection to "localhost:0.0" refused by server
-- Solution --
리눅스 x window 에 dba 그룹인 oracle 계정으로 로그인한다.
-- Error Message --
Xlib: connection to "localhost:0.0" refused by server
Xlib: No protocol specified

java.lang.NoClassDefFoundError

2. Linux 에 오류 Alert
-- Solution --
파라미터 옵션상에 오타가 존재할 가능성이 높다. dbca.rsp를 확인한다.

3. Share Memory(공유 메모리) 관련 오류
-- Solution --
공유 메모리를 설정한다. 오라클의 최소 권장사항은 2의 31승값 2147483648 이 되어야 한다.

4. SID 중복
-- Solution --
/etc/oratab 에서 해당되는 sid 를 삭제하고 재시도 한다.

'Oracle > [설치] 9i' 카테고리의 다른 글

RHEL4 + ORACLE9i  (2) 2011.12.20
RHEL3 + ORACLE9i OUI 설치  (0) 2011.12.19