· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
Linuxdoc Sgml/Oracle-8-HOWTO

리눅스용 오라클 설치 하우투

리눅스용 오라클 설치 하우투

원저:Stephen Darlington, stephen@zx81.org.uk

$Id: LinuxdocSgml_2fOracle_2d8_2dHOWTO,v 1.2 2003/12/11 23:42:27 kss Exp kss $ 번역:윤광호(KwangHo, Yun), airplanez@kldp.org oracle-8-howto_kr.sgml, v0.04 2000/09/04 14:35
이 하우투 문서와, 약간의 운이 있다면, "Oracle 8i Enterprise Edition for Linux" 의 설치와 데이터베이스의 생성 및 리모트머신의 DB에 연결할수 있다. 이문서의 주된 초점은 레드햇리눅스 6.0 이지만, 특별한 수정을 가하지 않은 요즘의 다른 배포본도 될수 있다.

1. 소개

1.1 여기에 뭐가 있지?

리눅스는 어렵고 일반적으로 사용자에게 비우호적인 것으로 알려져있다. 유닉스 애호가의 한사람으로 난 그것에 동의도 반대도 하지 않는다.

오라클도 비슷하다고 생각한다. 처음에 오라클도 이해하기 어려웠다., 그러나 당신이 다른 RDBMS 를 사용할때도 어렵기는 마찬가지다.

두가지를 종합해보면, 8i는 단지 두번째 릴리스이고, 당신이 두가지에 익숙하다 할지라도 잘되지 않는다는 것을 알아야한다.

나는 설치를 했다. 그러나 문제는 있었다. 많은 문제가 나의 아둔함이거나 교만함 때문 이지만, 나는 완전하게(?) 하기위해 그것들을 문서화 했다.

1.2 누구를 위한거지?

먼저, 이 문서는 오라클 8i(리눅스용 오라클 버전 8.1.5)를 설치하기 위한 사람을 위한것이다. 이 문서는 이전 버전을 다루지는 안는다. 당신이 8.0 버전을 설치하기 원한다면 리눅스저널(Linux Journals guide) 을 참고 하라고 권한다. 그리고 당신이 SCO용 이전 버전을 설치하기 원한다면 Paul Haigh의 오라클 데이터베이스 하우투(Oracle Database HOWTO) 를 이용하라.

만약 당신이 '바로 그 버전(Oracle 8i)'을 설치하려고 한다면, 여기에 나의 조그마한 기본지식이 있다. 만약 당신의 경우가 그렇다면 확실이 우리는 같은 처지(same wave-length) 에 있는것이다.

  • 나는 전에 유닉스를 사용했다. 사실 유닉스는 나의 전공분야이였다. 대학에서 SunOS/Solaris 의 기초를 습득했고, 그이후 난 SunOS/Solaris 에 오라클을 탑재했고, HP-UX(1년후)에 , 리눅스(5년후에, 상업적이 아니고 개인적으로) 오라클을 답재했다. 난 당신이 Windows 나 NT 기반이었다고 생각한다. 리눅스에 오라클을 설치하는 것은 상당히 어렵다. 버그때문에 멈추기 전에 습득해야할 많은 개념과 전문용어가 있다.
  • 난 전에 오라클을 사용했었다. DBA'd 7.1 버전과 7.3을 설치했으며, 8.0 버전에서 개발을 했었다(모두 Solaris 기반). 운좋게도, 오라클 설치 과정이 점점 쉬워졌다. 그러지만 운나쁘게 적어도 리눅스용이 아닌 오라클이 현재으로서는 안정적이지 못하다. 만약 오라클을 전에 사용해보지 않았다면 이 문서는 당신이 많은 시간과 참을성이 없다면 좋은 참고 자료가 되지 못한다.

나는 당신이 이분야에 많은 지식이 있다고 가정한다. 오라클 설치는 하찮은 경험이 아니며, 그래서 난 이문서를 '스위치를 누르세요(쉬운)' 식의 가이드로 만들지는 않을것이다. 만약 그런 "쓸데없는 문서"를 원한다면 이 HOWTO문서나 오라클문서는 아마도 바른 선택이 아니다.

1.3 이문서 새버전

리눅스와 오라클는 빠르게 변한다.다시말하면 이 문서는 금방 구식이 된다. 만약 이 문서가 한두달 지나면 새 문서를 위해 나의 웹사이트 를 찾기 바란다.

1.4 권리포기

모든 건 당신의 책임이다. 나는 명시되건 아니건 어떠한 종류의 보증도 하지 않는다. 나는 내가 할수 있는한 도울수는 있지만 그건 당신의 책임이다.

1.5 출처와 고마운분들

이 HOWTO 는 Stephen Darlington에 의해 쓰여졌다. 이문서는 Oracle Technet과 유즈네의 뉴스그룹의 수많은 질문과 답변 없이는 쓰여질수 없었다. 그래서 그분들께 고마움을 전하고 각각의 출처를 밝히지 못하는 것에 대해 죄송하게 생각한다!

이문서를 배포해준 Ton Haver, Guy Cole, Iain Frerichs, Albert Braun, Steve Morando, Krill Kokoshka 에게 감사한다. (무순)

나는 이 HOWTO와 일반적인 리눅스, 오라클에 관한 건설적인 피드백을 원하며 stephen@zx81.org.uk 로 이메일을 보내라.

1.6 저작권

이문서의 저작권은 Stephen Darlington(copyright 2000)에게 있다. 당신은 이문서를 자유롭게 사용하고 배포하고 재생산할수 있다.

  • 저작권관련 사항을 생략하거나 바꾸지못한다.
  • 버전 번호와 날짜를 생략하거나 바꾸지못환다.
  • 문서가 지시하는곳을 생략하거나 현재 버전의 WWW으로 바꾸지못한다.
  • 문서의 요약, 변경사항을 표시해주고 마찬가지로 버전 또한 그렇게하라.

이러한 제약은 오래되어 효력이 없거나, 엉망이 된 버전으로 부터 잠재적인 독자를 보호하기 위한것이다.

(이 저작권관련 사항은 Eric Raymond의 하우투문서 배포를 따른다)

2. 시작

2.1 개요

이 단락에서는 오라클이 설치될 리눅스를 설정할것입니다.

오라클 설치과정은 당신의 PC의 설정과, 리눅스의 설치/설정, 네트워크의 연결이 완료된 후에 시작된다.

2.2 전제조건

나는 제일 중요한 전제조건은 그것(프로그램설치)을 과소평가하지 않는것과 소프트웨어에 관계된 것에 대해서는 당신이 해야하는 것을 제외하고는 다르지 않다는 것이다(??????).

나의 슬픈 이야기들:

  • 나의 처음 큰 실수는 오라클이 128Mb의 램을 필요로 한다는 것을 농담으로 여긴 것이다. 나는 오라클을 두번 Sun 서버에 그렇게 생각하고 설치했다. 왜 CISC 기계가 더필요하지 하면서. 오라클이 나와(?) 다르다는 것을 믿어라. 내가 가망이 없다는 것을 이해하기 전까지, 나의 32Mb 의 램을 가지고 있는 시스템은 1시간 30분을 버벅댔다.
  • 오라클이 자바 런타임 환경의 버전 1.1.6(Java Runtime Environment version 1.1.6) 이 필요하다고했을때, "뭔 소리야, 새버전이 버그가 더 적잖아".했다. 근데 설치 프로그램은 아마도 실행되지 않는다. 요약: 문서가 말하는 Blackdown's JRE 1.1.6v5 을 다운로드하라. 어쨌거나 너는 성공할거야.

오라클은 대부분의 개발을 래드햇 리눅스 기반에서 행해진것으로 보인다. 쉽게 설치하려면 래드햇에 설치하라. 나는 다른 배포본에서 시도하다가 실패했다는 이야기를 들었다.

나는 래드햇 6.0에서 설치했으며 매우 적은 문제만 나타났다. 나는 JRE 1.1.6.v5 버전을 다운로드하여 설치했으며 1999년 8월 것으로 모든 패치를 가했으며, 커넬 2.2.13 로 업그래이드했다. 그러나 그것은 나의 네트워카드를 지원하기 위한것이다. 래드햇의 2.2.5 커넬에서 오라클이 동작하지 않는다고 생각할 이유는 없다.

숙지하라, 오라클 설치프로그램은 JRE 가 /usr/local/jre/bin/jre 에 위치한다고 알고 있다. 이것은 당신이 JRE를 그곳에 반드시 설치해야 한다고 말하는 것은 아니고 JDK를 설치한다면 오라클 설치에 실패한다는 것을 말하는 것이다. 이것은 매우 중요하기에 다시말하는데 반드시 JRE를 사용하라, JDK를 사용하면 오라클 설치에 실패한다!

JRE를 얻기위해 다음의 과정을 실행하라.

  1. Blackdown 웹사이트에서 자바 런타임 환경 (JRE)을 다운로드하라.
  2. 다운로드 한것을 JRE를 설치할 곳(/usr/local)에 옮겨라.
    cd /usr/local
    
  3. 아카이브를 풀고,
    bzip2 -d -c jre-1.1.6-v5-glibc-x86.tar.bz2 | tar xvf -
    
  4. 실제로 설치된 곳을 오라클이 생각하는 곳으로 심볼릭 링크하라.
    ln -s jre116_v5 jre
    

하드웨어에 관해서라면 리눅스가 동작하는 환경이라면 오라클도 동작한다. 예로 나의 경우는 인텔 셀러론 466Mhz 에 128Mb의 메모리와 8Gb 하드디스크, DM9102 네트워크 카드를 사용한다. 이것은 거대한 데이터베이스 프로그램을 위한 컴퓨터는 아니지만, 간단한 테스트와 개발환경은 완벽하게 작동한다.

2.3 리눅스 설정

배포본 설정

전 단락에서 연급했듯이, 오라클은 RedHat 6.0을 이용하여 환경설정을 한다. 실패없는 설치를 위해 당신은 아마 이것을 사용하는 것이 좋을 것이다.

그러나 오라클이 동작하기 위해 무슨 옵션을 주고, 얼마나 많은 수의 패키지를 설치해야되는가?

먼저 메모리의 2 3배의 스왑을 잡아야한다(설치 프로그램을 실행하기 위해서는 실제 와 스왑 메모리를 합해서 200Mb의 메모리가 있어야 한다.) 명심하라 일반적으로 생각하는 것과 달리 리눅스는 128Mb보다 큰 스왑을 할수 있다.

너의 다른 파티션에대한 정렬이 중요할수 있다. 명심하라 오라클 프로그램은 너의 OS파티션과 다른곳이어야하고, 오라클 테이터 화일 또한 또다른 파티션에 위치해야한다. 이런 것은 오라클 테이터화일의 분산을 막는다.(실제 환경에서는 오라클이 접근해야할 많은 디스크들이 있을수 있다. 그것에 관한 많은 좋은 책들 이 있다.)

소프트웨어에 관해서는, 나는 "쉬운 설치옵션"을 선택했고 모든 패키지를 설치했다. 당신은 아마도 모든 'base' 패키지와, X Windows(설치 과정이 자바 GUI), 개발자 툴(tool)(당신이 프로그램 코딩을 하던지 안하던지)이 필요할것이다. 오라클과 테이터베이스에 비교하면 리눅스 배포본의 크기는 매우작으며, 기껏해야 기가바이트 미만이다. 쉽게 하려면 모두 설치하는것이 좋다.

커넬 파라미터

이 문서는 보다 많은 공유 메모를 얻기 위해 리눅스 커넬을 바꿀것을 제안한다. 리눅스에서는 그렇게 하는 것은 매우 까다롭기때문에(대부분의 상업적 유니스에서 커넬을 다시 컴파일 하는것과는 틀리게), 내가 제안하는 커넬의 재설정은 오라클 설치를 잘되게 한다. 래드햇 리눅스가 기본 세팅에서 동작하지만, 보다큰 개발 및 생산 시스템을 위해서는 설정을 다시해야한다.

즉, 어떤 사람들은 오라클이 잘 작동하게 하기 위해서는 커넬을 다시 컴파일 해야한다. 나는 그것이 같은 컴퓨터서 작동하는 다른 어떤 소프트웨어에 따라 결정된다고 생각한다.

커넬을 다시 컴파일 하려면 오라클문서(인스톨 CD에 딸려오는 HTML형식의) 와 리눅스 커넬 하우트(Linux Kernel HOWTO) 를 따르라.

Users and groups

LinuxConf를 사용하여, "dba"라는 새로운 그룹(group)과 "dba"에 속하는 "oracle"이라는 새로운 유저(user)를 만들 필요가 있다.

당신은 어떤 사용자를 DBA group에 넣음으로서 다른 DBA 유저로 만들수 있다. 만약 여럿의 DBA 유저를 생성하는 것은 회계검사(auditing)을 위해 좋은 생각이다.

2.4 질문과 답변

정말 메모리가 128Mb 가 필요한가?

나는 128Mb 나 그 이상의 램을 추천한다. 이정도면 심한 동작에서도 어려움없이 가능하다.

그러나. 만약 자바 옵션이 없고, 공유메모리 설정을 작게 설정한다면, 어려울 이유도 없다. 64Mb 의 메모리에서 성공했다는 말를 들었다. 32Mb에서는 아마도 작동하지 않을 것이다.

주의 사항이 있는데. 오라클 요구하는 사항의 반만 되어도 오라클을 돌릴수 있다. 그러나 설치를 해보면 그들의 요구를 이해하게 된다. 나는 인스톨 프로그램이 150Mb 의 메모리를 쓴다고 들었으며 나의 경우에도 120Mb 이상이 있어야 했다. 만약 64Mb이거나 이하의 메모리를 가지고 있다면 많은 스왑과 인내력을 가져야 한다는 것을 명심하라.

다른 방법은(아직 확인해 보지 못했지만) 오라클을 다른 큰컴퓨터에 설치하고 $ORACLE_HOME 로 디렉토리를 복사해서 사용하는 것이다. 만약 사용자가 같고 그룹이 모두 같으면 왜 동작하지 않겠는가.

오라클8이 RedHat 6.1에서 작동하나?

나자신은 6.0 에서 작동시키고 있다. 그래서 나는 많은 사람들이 6.1에서 가능했다는 말을 들었다고 밖에 말할수 없다.

이문서를 쓸 당시에 오라클 8i는 RedHat 6.0에서 검증되었고, "다른 배포본에서는 현재 진행중" 이었다.(Oracle 8i Patch FAQ).

Debian/SuSE/Mandrake/some 와 다른 배포폰에서 작동하나?

오라클은 커넬 버전 2.2 이상과 GLIBC 버전 2.1 인 어떤 윈도우메니저 라고 명시하고 있다. 이론상 명시된 요구사항을 만족하면 어떤 배포본 에서도 동작한다.

실제로는 오라클이 모두 지원을 하지 않으며 설치시에 더많은 문제에 직면 하게된다. 특별한 이유가 없는 한 나는 레드햇 6.0에 가할수 있는 모든 패치를 하여 설치하라고 권한다.

개발자 커넬에서 작동하나?

작동하지 않을 확실한 이유는 없다 --나는 2.319 를 한동한 사용하였다. 그것이 나의 랜카드를 지원하였고 안정버전은 그렇지 못했기 때문이다-- 그러나, 만약 긴급한 필요가 없다면 그것은 가장 안전한 방법일것이다.(????) 안정적인 드라이버가 포함되는 즉시 나는 안정버전의 커넬로 돌아갔다.

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) 를 추가 하라.

4. 데이터베이스의 생성

4.1 개요

당신이 앞 단락의 충고를 따랐고, 데이터베이스를 만들지 않았기를 바란다.

대부분의 사람들을 위해, 그 과정을 두개의 단어로 요약할수 있다: "'dbassist'를 구동하라". 전에 오라클을 사용해본적이 없고 이것이 처음이 아니라면, 어떤 문제도 정말로 당신을 조정할수 없다(?????).

완벽히 하기 위해, 나는 내가 처음 계획했던것 대신 실제로 한(된)것을 문서화할것이다. 마지막줄 : 이것은 생산시스템도 중요한(예, 사용자가 많은, 지속적으로 사용하는) 개발 시스템도 아니다. 나는 8i를 가지고 놀려고, 그리고 이전버전에서 8버전으로 뭐가 달라졌는지 알아보기 위해서 이다.

무엇을 뜻하냐 하면, 'dbassist'가 쉬운 옵션을 제공하면 나는 그것을 사용한다. 그리고 다른 디스크나 적어도 다른 파티션을 추천하면 나는 그렇게 했다. 나의 $ORACLE_HOME/home/oracle 이다. 모든 데이터 파일과 소프트웨어 는 그곳에 있으면 모든 것을 하나의 파티션에 두었다.

4.2 단계별 설명

  1. 명령 프롬프트에서 다음을 입력하라:
    dbassist
    
  2. 나의 컴퓨터는 "JNLS Exception: oracle.ntpg.jnls.JNLSException. Unable to find any National Character Sets." 라고 표시했다. 오라클 8i 패치 FAQ에 따르면 그것은 알려진 문제(884001)이다. 그리고 무시해도 안전하다.
  3. "Create a database" 라는 라디오버튼을 선택하고 "Next"를 눌러라.
  4. 두가지 옵션: Typical 과 Custom. 만약 당신이 무엇을 하려는지 알고 있다면 여기를 읽을 필요 없이 마음편하게 Custom 을 선택하라. 나는 그것(Custom)까지 포함시키지는 않을것이다. 대신 당신이 "Typical"을 선택하고 "Next"를 눌렀다고 간주할것이다.
  5. 다음 설치자는 당신이 테이더베이스를 당신의 CD에서 복사할지 이니면 데이터 화일을 만들지 물어볼것이다. 내가 첫번째 옵션을 선택했을때, 오라클은 나의 CD플레이어를 찾지못했다.(당신은 첫번째 옵션을 선택하라) 그래서 나는 두번째 옵션으로 다시 선택했다. 그것은 어렵지 않고, 다만 좀더 많은 시간이 걸린다.
  6. 설치자가 테이터베이스가 작동할 환경을 물어볼때 'Hybrid'라고 선택하 는게 아무도 좋을(안전할)것이다.
  7. 이제 설치자는 얼마나 많은 사용자가 당신의 데이터베이를 사용할것인지 물어볼것이다. 나는 5라고 입력했다
  8. 다음으로 당신의 새로운 데이터베이스에 어떤것을 설치할것이지 물어볼것이다. 다시말하자면 당신의 당신이 원하는것을 나보다 더 잘 알고 있다.
  9. 오라클은 이제 "Global Database Name" 과 "SID"를 필요로 할것이다. 데이터베이스 이름(Database Name)은 FQDN(fully qualified domain name) 과 비듯하다(그러나 다르다). 당신이 오라클 도사라면, 마찬가지로 만약 당신의 회사가 사용하던 관행이 있다면 무엇을 입력해야 되는지 알겟지만. 나는 'dev1'라고 했다.(SID와 데이터베이스 이름 모두)
  10. 이제, 당신은 '당장' 데이터베이스를 만들지, 아니면 쉘스크립트로 정보를 저장하게 할지 정해야 한다. 나는 128Mb를 가지고 첫번째 옵션으로 고생을 하였다. 쉘 스크립트를 만들었고, X(window)를 끝내고 메모리를 많이 사용하는 다른 것을 끝내고 스크립트를 시작했다. 잽싸게(?)
  11. 문서의 어떤 곳에서도 언급하지 않았지만, 그러나 당신의 데이터베이스 는 그것(롤백세그먼트)없이 잘 작동하지 않는다!. 데이터 베이스 즉 'dbassist'는 제대로 생성되었으나, 디폴트 사용자 롤백세그먼트(user rollback segments) 는 off-line 인체로 남겨져있다. (참조:non-systerm users 는 트랜젝션을 필요로 하는 어떤 동작도 하지 않는다) 입력하라.
    cd $ORACLE_HOME/dbs
    
    이제 "init<SID>" (나의 경우는 "initdev1.ora")를 수정할 필요가 있다. 화일의 중간쯤에 다음과 같이 코멘트(comment, #) 되어 있을것이다.
    # rollback_segments = (r01, r02, r03, r04)
    
    코멘틀 없애라(#을 제거하라). 화일을 저장하면 된것이다.
  12. 이런 후에야 당신으 당신의 데이터베이스를 가지게 되며 시작할수 있다. 그러나 시스템(system) 비밀번호를 아마도 알수 없을것이다.! 두가지 알아야 할것이 있다. 첫번재는 SYSTEM 비밀번호이다. 디포트는 'MANAGER'이다.(오라클 비밀번호는 관습적으로 대문자를 사용 하는 것같다. 사실 비밀번호는 대/소문자를 구분하지 않는다.) 나는 즉시 SQL*Plus 프롬프트에서 password 라고 해서 바꾸라고 권장한다. (사람들은 ALTER USER를 생각하겠지만, 8i부터 지원원하는 SQL*Plus 에서 새로게 생긴것이다.) 당신이 필요한 다른 비밀번호는 SYS를 위한것이다. 디폴트는 'CHANGE_ON_INSTALL' 이고, 그것이 말하는 데로 정확하게 해라.
  13. 마지막과정, SQL*Plus 로 로그인 하면 'no profile'이라는 성가신 경고를 없애는 과정이다. SQL*Plus 에 'system'이란 사용자로 로그인하라(sqlplus system/<password>). 그리고 다음을 입력하라:
    @?/sqlplus/admin/pupbld.sql
    
    의문부호(?)는 $ORACLE_HOME 디렉토리의 별명(alias)이다.

그리고 그것으로, 이제 당신의 데이터베이스를 사용가능하다. SQL*Plus를 이용하여 로그인할수 있다.

4.3 질문과 답변

이거 정말 쉬워요?

그렇다 그리고 그렇지 않다. 만약 당신이 단지 구동만 시킬것이고, 8i의 새로운 특징을 배우기위한 당신만을 위한 데이터베이스라면 "그렇다"이고, 위에서 말한 데이터베이스를 완벽하게 그리고 잘 작동하게 한려고 한다면 "그렇지 않다" 이다.

그러나, 당신이 오라클에 대해 모든것을 안다면 당신은 디폴트 설정이 지독히 나쁘다는 것을 쉽게 알수 있을것이다. 만약 당신이 중요한, 생산 시스템을 만들것이라면 "Custom" 옵션을 선택하라고 충고하고 싶다.

나의 장난을 위한 시스템의 경우에도 나는 몇가지 설정을 바꾸었다. 모든 테이블스페이스(table-spaces)의 크기를 늘리고 바꾸었다. 이유는 그것들이 자동으로 늘어나지 않았기 때문에.(나는 소프트웨어가 지나치게 똑똑해 지려고하면 소프트웨어가 싫어진다.)

모든 화일을 다른 디스크에 넣는게 정말 필요한가요?

아니다. 그렇게 하지 않아도 잘 동작한다. 그러나 모든 화일을 같은 디스크에 넣으라고 권하고 싶다.

여러개의 디스크에 분산된 화일은 ,설령 화일이 테이터 화일이 한곳에 있고 롤백 세그먼트가 다른 곳에 있더라도, 상당한 성능항상을 가져온다. 더많은 정보를 원하면 오라클 DBA 에 관한 책을 참조하라.

dbassist을 시작할수 없어요.

설치 초기에 내용없는 화일(zero-length files) 때문에 일어난다. 패치를 설치하면 이문제를 해결하수 있다.

"ORA-01034: ORACLE not available" 란 매세지

짧게 이야기하면, 아마도 당신의 $ORACLE_SID 가 정확하지 않아서 생긴다. 'dbassist'가 가지고 있는 값과 당신의 환경변수를 같게하고, 익스포트되어야 한다.(예, 본쉘(Bourne shell)호환 쉘에서 export ORACLE_SID )

"ORA-01012: Not logged in" 란 매세지

매우 흔한 오류이다. 오류를 일으키는 많은 다른 이유가 있다.

먼저, 공유서버 설정(Shared Server configuration)을 만들지 않았는지 확인해보라.(MTS라고 알려진) Dedicated Server 를 이용해서 데이터베이스를 만들고, 나중에 바꾸어라.

그것이 아니라면, 당신의 NLS_LANG 환경변수를 확인해보라. 가장쉬운 옵션은 그것을 설정하지 않는것이다. 만약 정말로 그 환경변수를 사용하고 싶다면, 정확한 값을 가지고 있어야하다. (알파벳의 12번째 글자?????)

5. 구성

5.1 개요

축하한다. 당신의 리눅스 박스에서 오라클이 작동하게 되었다. 테이터 베이스 를 만들었으며 SQL*Plus를 사용하여 연결할수 있게 되었다.

물론, 이것이 끝이 아니다. 이상적이라면 당신은 전혀다른 기계에서 다른 유닉스 유저로 접속할수 있게 되었다. 이번 단락은 그것에 관한것이다.

5.2 다른사용자(another user)로 연결

이 단락에서는 개인적으로 사용하지 않을 경우의 좀더 자세한 설정을 기술하것이다. 다음에 나오는 것을 한가지 이행하라:

  • 만약 본쉘같은걸 사용한다면(bash 나 pdksh 같은)
    . oraenv
    
  • 만약 C-쉘같은걸 사용한다면
    source coraenv
    
    리눅스 디폴트 쉘인 'bash'를 사용할때 "oraenv"가 구동하면 오류가 생긴다. 그것은 어떤 문제도 생기지 않으므로 걱정할것 없다. 그것이 걱정된다면 'pdksh'를 사용할수 있다.

5.3 다른 기계(another machine)로 연결

이전버전의 오라클에서는 이설정이 매우 복잡하였다고 생각한다. 그러나. 이제 잘 작동(쉬워진)하는 것같다. (이전버전에서)나는 뭔가 잘못 되었거나. 뭔가를 잊었거나, 치명적인 보안구멍이 있다고 생각했다.

내가 했던것의 생각:

  1. 'oracle' user로 리눅스에 적재한다.
  2. "oraenv"가 실행중인지 확인하라.(예, 당신의 $ORACLE_HOME 의 설정이 맞게 됐는지.)
  3. 다음을 입력:
    lsnrctl start
    

이제 당신의 클라이언트 머신쪽에서 필요한것은 올바르게 서버머신을 지정하는 것과 올바른 테이터베이스 인스턴스이다.

만약 프로세스를 정교하게 조절하고 싶다면 "Net8 Configuration Assistant" ('netec') 가 도움을 줄것이다.

5.4 다른 기계(another machine)로 부터의 연결

이전 버전의 오라클에서는 매우 어려운 일이었다. 기괴하고 복잡한 문법의 많은 텍스트 화일을 에디트 해야했다.

그러나 8I에서는 JVM 이 동작한다면 당신이 필요한것은 "Net8 Easy Config" 라는 프로그램을 실행시키기만 하면 된다. 아래 써 있는 것을 따라한다면 다른 컴퓨터의 테이터베이스에 접속할수 있다.

  1. 'oracle'계정으로 로그인 하여 netec 라고 치고 "Net8 Easy Config" 를 시작하라.
  2. 조금 기다리면 자바와 연동하여 시작되며 환영한다는 화면이나온다. 어떤것을 원하냐고 물어볼것이다. 왼쪽의 라디오 버튼을 그대로 두라 (기본은 'create') 그리고 데이터베이스 이름을 텍스트 박스에 써 넣어라. 그리고 다 되었으면 'Next'를 클릭하라.
  3. 제공하는 프로토콜을 하나선택하라. 다른 것을 모른다면 기본적으로 설정 되었는 'TCP/IP'를 선택하라. 그리고 'Next'를 클릭.
  4. 원격 기계의 호스트이름(또는 IP 주소)를 입력하라. 아마도 포트 번호는 변경할 필요가 없을 것이다. 그리고 'Next'를 클릭.
  5. 라디오 버튼을 이용해 테이터베이스 타입(8i 또는 다른것)을 입력하고 텍스트박스에 적당한 이름 을 입력하라. 그리고 'Next'를 클릭.
  6. 당신은 이제 입력한 사항으로 오라클이 응답하는 알아볼수 있다. 'netec'는 입력사항이 정확하지 않으면 멈추는 경향이 있다. 오라클이 응답하면 'Next'를 눌러라. 그렇지 않다면 'Back'을 눌러 뒤로 가서 다시 정확하게 입력하면 된다.
  7. 입력한 정보가 정확하여 모든 것이 잘 됐다면 'Finish'를 누르면 모든 것이 끝난다. 만약 더 자세하게 조절하려면 netasst라는 명령을 사용하여"Net8 Assistant" (큰 화면에 복잡한 옵션을 가지는)를 이용하라.

5.5 질문/답변

'netasst'를 시작할수 없어요

몇개의 내용없는(zero-length) 화일때문에 생기는 문제이다. 패치를 설치하면 문제를 해결할수 있다.

6. 끝으로

6.1 유용한 소프트웨어

이제 당신은 오라클 설치에 관해 알았으니, 오라클을 사용하고 싶을것이다. 모든 것이 당신의 server PC에서 할수 있을지라도, 일반적으로 클라이언트-서버 시설을 이용하는 것과 다른 컴퓨터에 당신의 데이터베이스를 접속하게 좋다.

일반적으로 오라클은 많은 거대하고 상당히 좋은 클라이언트 소프트웨어 를 가지고 있다. 그러나 현시점에 리눅스에 대해서는 그렇지 못하다. 오라클 소프트웨어에 관해, 나는 다음에 나오는것을 얻으라고 하고싶다.

  • Oracle Enterprise Manager. ALTER USER 나 ALTER SYSTEM 등 애매한 명령을 기억하지 않아도 쉽게 할수 있다.
  • Oracle WebDB. 설치하기는 상당히 어려우나 HTML를 몰라도 멋진 웹사이트를 만들수있다.

그러나 모든 좋은 소프트웨어는 다른 곳에서 나온다.....

  • Tool for Oracle Application Development (T.O.A.D.). 공개 였으나 지금은 Quest Software. 의 소유이다. 공개버전을 얻거나 구입해도 된다. 구입하는것은 비용이 만만치 않으나 유용성은 나쁘지 않다.
  • SQLNavigator, Quest Software. 나는 한번도 이것을 사용하지는 않았지만, 가지고 있는 모든 사람이 추천했다.
  • Orac 좋은 DBA 설정 도구

6.2 유용한 책들

나는 모든 오라클 정보를 동료와 책에서 얻은것 같다. 나는 동료에게 정보를 주지는 못하지만 아래의 책들을 주천한다:

O'Reilly에서 책들을 볼수 있을것이다. 나는 형편없는 O'Reilly 책을 보지못했으며, 마찬가지로 'Oracle Press' 책중에서도 형편없는 책을 찾아보지 못했다.

6.3 유용한 인터넷자료들

웹상의 많은 유용한 자료들

  • Oracle Technet. 오라클 공식/무료 지원 웹사이트. 많은 중요한 자료가 았다.
  • Oracle Metalink. Oracle's private (you need a support contract) support website. Only slightly more useful than Technet!
  • Oracle Fans. 사설과 지원 포럼. 공식적인 오라클 연결이 없음(그래서 정보가 덜 편견적이다)
  • OraFaq. 모든 풀랫폼의 오라클에 관한 질문과 답변 사이트.
  • 오라클 메일링 리스트('SUBSCRIBE ORACLE-LINUX-L' 말을 본문에 넣어서 ListGuru@fatcity.com 에게 보내라)
  • 그리고 나의 웹사이트 를 잊지 말아라!


ID
Password
Join
He who invents adages for others to peruse takes along rowboat when going on cruise.


sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2003-12-12 08:42:27
Processing time 0.0027 sec