다음 이전 차례

3. 설치프로그램

3.1 어떻게?

일반적으로 문서를 따르는것이 좋은 생각이다. 그렇게 하는것이 당신이 오라클로부터 보다 많은 지원을 받을수 있을것이다.(오라클 프로그램에 대해 그 문서를 따르를 것으로 잘못되는 막을수 있다.. -그게 그런거지뭐- 제대로 된 지원을 받는 유일한 길이다.)

이문서는 개략적인 것만 다룰것이다. 그러나 당신은 여전히 유용한 오라클 문서 를 참조할수 있다.

3.2 설치프로그램에게 뭐라 말할수 있지?

오라클 설치중 설치프로그램은 많은 질문을 던진다. 일반적으로 질문은 어렵지 않으나 자신이 무엇을, 왜 입력하는지 알아야 한다.

  1. 설치프로그램(runInstaller)을 user(oracle user) 로 실행한다.
  2. 설치프로그램은 작은 화면을 보여줄것이다. 'Next'를 클릭하라.
  3. 설치파일('jar'화일)의 소스가 들어있는 디렉토리와 설치할 디렉토리를 입력하라고 할것이다. 기존에(디폴트)로 입력된 것으로 남겨두어도 좋다. 오라클 홈디렉토리는 당신이 오라클을 설치하려고 하는 곳이다. 오라클 문서에 따르면 설치하려는 곳은 /u01 이지만 나는 그것을 무시하고 /home/oracle 에 설치하였다. 이런점에서는 오라클의 조언을 따르는것이 좋다. 자세한 것을 입력했다면 'Next'를 클릭하라.
  4. 이제 DBA 그룹을 물어볼 것이다. 이것은 전 단락에서 만든 유닉스 그룹이며 아마도 'dba'일 것이다. 이것을 입력하고 'Next'를 클릭한다.
  5. 이제 'root'로 로그인 하여 /tmp/OraInstall/orainstRoot.sh 를 실행을 요구할것이다. 그렇게 하라.(그렇게 하기 위해 pdksh 이나 bash 를 시행 시켜야 할것이다.) 그렇게 하고 'Retry'를 클릭하라.
  6. 무엇을 설치할것인지 물어볼 것이다. 최선의 선택은 모든것을 설치하는 'Oracle Enterprise Edition,'이다. (오라클 문서 테이블 3.1 에 어떤것을 설치하는지 자세히 나와있다.) 오른쪽의 라디오 버튼을 선택하고 'Next'를 클릭하라.
  7. 이제 당신이 설치하려는 것을 더욱 자세하게 지정할수 있다. 당신이 무엇을 원하는지 알거나 특별히 디스크 공간의 부족때문이 아니라면 나는 'Next'를 클릭하여 그냥 지나치라고 하고 싶다. 일반적으로 설치프로그램은 당신의 엉뚱한 선택을 허락하지 않으므로, 당신이 어떤것을 설치하지 않겠다고 고르지만 않는다면 걱정할 필요없다. 그리고 언제든지 되돌아가서 다시 추가할수 있다.
  8. 설치 프로그램은 당신이 설치하겠다고 한 모든 것을 당신이 원하는 곳에 설치할수 있게 허용할것이다. 다시 말하지만, 그럴만한 특별한 이유가 있을때만 그렇게 하라. 다 되었으면 'Next'를 눌러라.
  9. 이제 설치프로그램은 당신이 요구한 프로그램들을 설치할것이다. 이과정은 상당히 많은 시간이 걸리며 상당한 메모리를 사용할것이다.
  10. 프로그램설치가 끝나면 데이터 베이스를 만들것이냐고 물어본다. 당신이 상당한 메모리를 가지고 있거나 인내력이 있지 않다면 나는 'No'라고 대답할것을 추천한다. 이유는 설치프로그램이 또다른 자바가상머신(Java Virtual Machine)과 X윈도우를 실행하는 것처럼 보이기 때문이다. 불행하게도 2개의 JVM과 오라클을 같이 실행시키는 것은 정말로 128Mb에는 적당하지 않다. 만약 당신이 다음과정으로 가기 위해 버티고 그과정이 끝나서 돌아 오면.(보통 데이터베이스를 지금 설치한다면 작동하지 않는다고 한다.)
  11. 이제 설치프로그램은 오라클이 지원할 네트워크 프로토콜을 물어볼것이다. 나의 경우 대화상자 텅 비어있었다. 나로서는 이것이 무엇을 내포하는 알수가 없다. 그러나 나는 'Next'를 클릭하였고, 모든것이 잘되었다.
  12. 모든 힘든 일은 이제 끝났다. 당신이 원하는 모든 프로그램 설치되었으며 실행할 준비가 되었다. 축하합니다!.

3.3 패치의 설치

불행히도, 오라클에서 보낸준 CD의 버전은 8.1.5.0.0 일것이다. 보통 그렇듯 첫번째 릴리스는 문제를 가지고 있고(내용없는 화일의 포함, 그래서 치명적인 문제를 일으킨다.), 8.1.5.0.2로의 패치가 필수적이다. 당신은 이 문서의 "구성(5)" 단락 진행이 요구된다. 여기서 설명하는 패치는 누적패치(cumulative patch)이다. 즉 8.1.5.0.0 에서 8.1.5.0.2로 패치하기 위한 모든 화일을 포함한다

필요한 화일은 오라클 웹사이트 에 있다. 그리고 설치하기 비교적 쉽다.

  1. 여러가지 패치의 첫번째 단계일 것이므로 "patches"라는 디렉토리를 편한곳에 만들어라.(나의 경우는 $ORACLE_HOME 에 만들었다.)
  2. 화일을 다운로드하여 만든 디렉토리에 저장하라.
  3. 화일을 저장할 곳을 만들어라.
    mkdir /tmp/orapatch
    cd /tmp/orapatch
    
  4. 화일을 풀자.
    tar zvxf $ORACLE_HOME/patches/linux815patches.gz
    
  5. 현재 디렉토리에서 쉘 스크립트를 실행시켜라.
    ./linux_815patches.sh
    

현재 디렉토리에 화일을 풀지 않는 것이 중요하다는 것을 명심하라. 패치 설치프로그램은 정확한 화일 갯수를 가지고 있는지 없는지 점검한다. 만약 정확하지 않으면 실패한다. 물론 만약 패치 아카이브를 찾으면 너무 많은 화일을 찾게된다.(????)

3.4 환경설정

아래의 줄을 당신의 ".profile" 에 추가하라. (아니면 자신의 쉘에서 동일한 작용을 하는 화일에)

. oraenv
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib

대체 왜 오라클 설치 프로그램이 그렇게 해주지 않는지 모르겠다.

만약 다음번에 로그인 했을때 "[: integer expression expected before -lt" 라 것을 보게된다면, 그것은 'oraenv(오라클환경변수)'가 디폴트인 'unlimited' 가 아니고 ULIMIT 라고 간주하기 때문이다. 나는 그 오류를 무시해도 별다른 해가 없다는 것을 알고 있다. 그러나 고치고 싶다면 ULIMIT를 어떤 제한된 것으로 바꾸면된다.

3.5 설치 질문/답변

설치프로그램이 'CreateOUIProcess()'으로 종료

먼저, 맞는 JVM 버전 실행중인지 확인하라. 나는 오라클이 뭘하는지는 모르겠지만, JVM 버전에 매우 민감하다.

두번째로, 오라클 CD 의 루트에서 runInstaller 를 실행하는 대신 install/linux 로 이동하여 runInst.sh 쉘스크립트 를 실행하라.

이문제는 레드햇 6.0 보다 6.1 에서 더 빈번하며 아마도 새로운 C 라이브러리 때문인것처럼 보인다.

나는 또한 틀린 버전의 그놈(Gnome) 윈도우 메니저와, 인라이트먼트(Enlightenment) 를 사용할때 이런 문제가 나타난다고 들었다. 업그래이드 하거나 KDE나 Fvwm2 같은 다른 윈도우 메니저를 사용하라.

설치프로그램이 화면에 잠시 나타났다 사라짐

이것은 드문현상이 아니다. 보통 당신이 오래된 버전의 Enlightenment 사용할때 일어난다. 업그래이드하거나 다른 X-window 매니저를 사용하면 해결할수 있다.

비슷한 문제가 설치프로그램이 어떤 시점이 되면 나다나는데 약 80%의 과정 이 진행될때 나타난다. 이것은 오라클이 메모리가 모자라서 나타나는 것같다. 200Mb 이상의 스왑을 잡으면 될것이다.

설치프로그램 시작시 이상한 자바에러(Strange Java errors)?

무슨 버전의 자바 가상 머신을 사용하시나요? 사람들은 다른 버전에서 설치를 성공했다고 주장하지만, 대부분의 문제는 JRE 1.1.6v5 로 다운그레이드 했을때 사라진다. JRE 1.1.6v5 은 오라클이 자신들의 문서 에서 추천하는 버전이다.

중요한 두가지 언급: JRE 를 사용하라 JDK 를 사용하지 말라. 두번째는 "green" 스레드를 사용하라. THREADS_FLAG 의 세팅을 'native'로 하지 않았으면 정확히 설정을 한것이다.

설치프로그램의 세그먼트오류(Segmentation Fault's)

당신은 정말 GLIBC 2.1를 가지고 있는가 그렇지 않은가

공유라이브러리 적재(loading)문제

내가 말하려고 하는 오류 메세지는 다음과 비슷한 문제다:

공유 라이브러리 적재오류 : libclntsh.so.8.0 : 
공유 목적화일을 열지못함(cannot open shared object file) :
그런화일이나 디렉토리가 없음(No such file or directory)

이것은 NT가 DLL을 찾을수 없다고 불평하는것도 같다. 해결은 간단하다. 단지 만약 당신이 Bourne 같은 쉘을 사용한다면 당신의 ".profil" 에 다음과 같은 줄을 추가하면 된다.(뭔지모른다면 주위의 고수한테 물어보라):

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib

또는, 당신이 CSH 같은 쉘을 사용한다면 다음을 추가하라:

setenv LD_LIBRARY_PATH "$LD_LIBRARY_PATH
$ORACLE_HOME/lib"

나는 C쉘을 사용하지 않기 때문에 위의 명령은 확인을 해봐야 한다.

Pro*C 가 작동하지 않음

그것에 대한 대답의 단서를 써두었다. 당신이 부지런하다면 오라클 웝사이트 에 가면 찾을 수 있을 것이다.

Pro*C 의 디폴트 설정은 모든 라이브러리를 어디에서 찾아야 하는지 알지 못한다. 설치가 끝난후 $ORACLE_HOME/precomp/admin/pcscfg.cfg 가 비어있게된다. 그러나 다음과 같은 것이 들어있어야한다:

sys_include=(/home/oracle/precomp/public, /usr/include,
/usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/include/,
/usr/include, /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/include,
/usr/include)
include=(/home/oracle/precomp/public)
include=(/home/oracle/rdbms/demo)
include=(/home/oracle/network/public)
include=(/home/oracle/plsql/public)
ltype=short

(sys_include 에서 include까지의 처음 4줄은 화일의 한(같은) 줄에 있어야한다.)

오라클 문서는 이런것에 주의를 주지 않았지만, $ORACLE_HOME/precomp/lib/env_precomp.mk 또한 수정해야 한다. CCPSYSINCLUDE를 정의하는 라인에 다음을 넣어라:

CCPSYSINCLUDE=sys_include='($(ORACLE_HOME)/precomp/public,
/usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/include,
/usr/include/g++-2, /usr/include)'

이작업은 레드햇 6.0을 위한 수정이지만, 레드햇 나중버전의 배포본에서도 필요한것이다.

패치를 설치했는데 문제가 생김!

이것은 모호하고 간신히(겨우) 오라클에 의해 문서화 되었으며, 그들의 모든 프로그램과 설치프로그램에 두루 나타난다. 이제 그들이 그것에 대해 무언가를 해야할 시간이다.

자주 일어나는것들: 오라클에서 말하듯이 당신이 오라클 엔터프라이즈 에디션 (Oracle Enterprise Edition)을 설치하고, 곧바로 모든 이용가능한 패치를 설치한다. 그리고나서 당신은 프리컴파일러(pre-compilers)가 필요하다고 결정하고 오라클 프로그램머(Oracle Programmer)를 같은 CD(패치되지 않은)에서 설치한다.

Pro*C를 설치하기 전에는 데이터베이스가 작동했으나, 후에는 작동하지 안는다.

문제는 당신이 설치한 프리컴파일러(pre-compilers)의 버전은 패치를 가하지 않았고 오라클 서버 어떤 코드의 패치를 가했기대문에 그런것이다; 오라클 설치자는 멍청해서 같은 코드의 새로운버전을 덮어쓰기 해버린다.

해결은 간단하지 않다. CD로 부터 개개의 화일을 설치할수 없기 때문에 모든 것을 또다시 해야만 한다. 지금 패치를 가하기 전에 오라클 프로그램머 (Oracle Programmer) 를 추가 하라.


다음 이전 차례