이번 Post에서는 이전 Post에 이어서 Oracle 9i를 OUI로 설치하고 DBCA로 Database를 생성하는 방법에 대해서 알아보도록 하겠습니다.

1. Oracle Universal Installer로 Oracle 9i 설치

Oracle 9i의 OUI를 실행하기 위해서는 X Window에서 oracle 계정으로 Login해야 합니다. 하지만 Redhat 8에서는 굳이 oracle 계정으로 X Window를 Login하지 않아도 그냥 실행이 되는 군요.

다만 OUI에서 한글을 제대로 표시하지 못하기 때문에 OUI를 실행할 때 LANG 환경변수를 C로 변경해주어야 합니다. 아래와 같이 Terminal에서 입력합니다.

1
2
3
$ su - oracle
$ cd ~/Disk1
$ env LANG=C ./runInstaller

OUI : Welcome

OUI : Welcome

OUI를 실행하면 위의 그림과 같이 Welcome 화면이 표시됩니다. Next를 누릅니다.

OUI : Inventory Location

OUI : Inventory Location

System에 Oracle을 설치한 적이 없다면 위의 그림과 같이 Inventory Location을 설정하는 Dialog가 표시됩니다. Base Directory로 /opt/oracle/oraInventory를 입력한 후 OK를 누릅니다.

OUI : Unix Group Name

OUI : Unix Group Name

Oracle을 관리할 관리자의 Unix Group 이름을 입력합니다. dba를 입력하고 Next를 누릅니다.

OUI : oraInstRoot.sh

OUI : oraInstRoot.sh

root 권한으로 작업해야 할 Script를 실행해야 한다는 Message가 표시됩니다. 새로운 Terminal을 띄워서 root 계정으로 Login한 다음, /tmp/orainstRoot.sh를 실행합니다.

실행이 완료되었으면 Continue를 눌러 다음으로 진행합니다.

OUI : File Locations

OUI : File Locations

Setup File의 Location을 확인합니다. 기본값으로 두고 Next를 누릅니다.

OUI : Available Products

OUI : Available Products

설치할 Product를 선택하는 화면입니다. Oracle 9i Database 9.2.0.4.0을 선택하고 Next를 누릅니다.

OUI : Installation Types

OUI : Installation Types

설치 Type을 선택하는 화면에서 Enterprise Edition을 선택하고 Next를 누릅니다.

OUI : Database Configuration

OUI : Database Configuration

Database를 설치하는 목적을 선택하는 화면입니다. 여기서 다른 것을 선택할 경우 설치가 제대로 완료되지 않으므로 맨 아래의 Software Only를 선택하고 Next를 누릅니다.

OUI : Summary

OUI : Summary

설치 요약이 위와 같이 표시되면 Next를 눌러 설치를 진행합니다.

OUI : Install

OUI : Install

설치가 진행되는 모습입니다. Software만 설치하기 때문에 그다지 오랜 시간이 걸리지 않습니다.

OUI : Setup Previleges

OUI : Setup Previleges

설치가 완료되면 root 권한으로 설치를 해야할 것들을 모아놓은 root.sh를 실행해라는 Message가 표시됩니다. 새로운 Terminal을 띄워서 root계정으로 Login한 다음, /opt/oracle/product/9.2.0/root.sh를 실행합니다.

실행이 완료되면 OK를 눌러 진행합니다.

OUI : End Of Installation

OUI : End Of Installation

이제 기본적인 설치가 완료되었습니다. Exit를 눌러 OUI를 종료합니다.

2. Database Configuration Assistant로 Database 생성

이제 OUI를 통해서 Oracle 9i를 설치했으니 실제 Database를 생성하기 위해서 Database Configuration Asistant를 실행해 봅시다.

oracle 계정에서 DBCA를 실행하면 아래와 같은 Error를 만날 수 있습니다. 해결방법을 같이 적어 놓았으니 참고하시기 바랍니다.

- Error 1

1
2
3
4
5
6
7
8
9
$ su - oracle
$ dbca
SIGSEGV   11*  segmentation violation
        stackbase=0x453da000, stackpointer=0x453d9d5c
Full thread dump:
    "AWT-EventQueue-0" (TID:0x411d1e20, sys_thread_t:0x453d9e0c,
state:R) prio=5 *current thread*
        java.lang.Object.wait(Object.java)
        java.awt.EventQueue.getNextEvent(EventQueue.java:126)

해결방법은 아래와 같습니다.

1
2
3
4
$ su -
$ touch /etc/rac_on
$ su - oracle
$ dbca

- Error 2

1
2
3
4
5
6
7
8
9
10
$ su - oracle
$ dbca
SIGSEGV   11*  segmentation violation
        stackbase=BFFFF0F8, stackpointer=BFFFD4C4

Full thread dump:
    "SIGQUIT handler" (TID:0x430ef2a0, sys_thread_t:0x81fcbb8, state:R, thread_t: t@16387, sp:0x0 threadID:0x2d13, stack_base:0x40384a50, stack_size:0x200000) prio=1074373671
    "Finalizer thread" (TID:0x430ef088, sys_thread_t:0x81fca90, state:R, thread_t: t@8194, sp:0x0 threadID:0x2d12, stack_base:0x40363a50, stack_size:0x200000) prio=1074373671
    "main" (TID:0x430ef0b0, sys_thread_t:0x81f4588, state:R, thread_t: t@8192, sp:0x0 threadID:0x2d05, stack_base:0xbffff0f8, stack_size:0x200000) prio=1074373671 *current thread*
        java.lang.System.initializeSystemClass(System.java)

System의 Locale과 현재 LANG 환경변수의 값이 다를 경우에 발생하는 문제입니다. System의 Locale을 그대로 LANG 환경변수에 설정해 주면 됩니다.

euc-kr이 기본 Locale이라면 아래와 같이 입력합니다.

1
2
$ su - oracle
$ env LANG=ko_KR.eucKR dbca

- DBCA 실행

DBCA : 시작

DBCA : 시작

DBCA를 실행하면 위와 같은 화면이 표시됩니다. 다음을 눌러 진행합니다.

DBCA : 작업

DBCA : 작업

DBCA를 통해 수행할 작업을 선택합니다. 데이터베이스 생성을 선택하고 다음을 누릅니다.

DBCA : Database Template

DBCA : Database Template

Database를 생성하기 위한 Template을 선택하는 화면입니다. General Purpose를 선택하고 다음을 누릅니다.

DBCA : Database ID

DBCA : Database ID

Database ID를 입력합니다. 전역 데이터베이스 이름과 SID에 System 설정 시에 입력했던 orcl9을 입력하고 다음을 누릅니다.

DBCA : Database 접속 Option

DBCA : Database 접속 Option

Database 접속 Option을 설정합니다. 전용 서버 모드를 선택하고 다음을 누릅니다.

DBCA : 초기화 매개변수

DBCA : 초기화 매개변수

초기화 매개변수를 설정합니다. 대부분의 설정은 기본값으로 두되, 문자 집합에서 유니코드(AL32UTF8) 사용을 선택하고 다음을 누릅니다.

DBCA : Database 저장 영역

DBCA : Database 저장 영역

Database 저장 영역에 대한 정보가 표시됩니다. 기본값으로 두고 다음을 누릅니다.

DBCA : Datase 생성 완료

DBCA : Datase 생성 완료

Database 생성이 완료되면 위의 그림과 같이 관리자 계정의 Password를 입력하여 설정합니다. 설정이 완료되었다면 종료를 눌러 Database 생성을 완료합니다.

3. Startup/Shutdown DB

Database 생성이 완료되었으니 이제 Database를 시작해 봅시다. Database를 시작하기 위해서는 /etc/oratab을 수정하고 생성한 DB의 설정File을 설치해야 합니다.

다음과 같이 Terminal 에서 입력합니다.

1
2
3
4
5
6
7
$ su -
$ vi /etc/oratab

orcl9:/opt/oracle/product/9.2.0:Y

$ su - oracle
$ cp /opt/oracle/admin/orcl9/pfile/initorcl9.ora.* $ORACLE_HOME/dbs/initorcl9.ora

Database를 시작하거나 멈추기 위해서는 아래와 같이 입력합니다.

1
2
3
4
5
6
7
8
$ su - oracle
$ dbstart

(Database 시작)

$ dbshut

(Database 멈춤)

4. DB Test

이제 Database를 구동하기 위한 모든 설치를 마쳤습니다. 이제 제대로 동작하는지 Test 해봅시다.

요즘 Oracle Version에는 기본으로 설치되지 않지만 이때만 해도 유명한 sample 계정인 scott과 emp Table이 설치되어 있으니 한번 확인해 봅시다.

Terminal에서 아래와 같이 입력합니다.

1
2
3
4
5
$ su - oracle
$ sqlplus scott/tiger

sqlplus> select * from emp;
sqlplus> quit;

5. 마치면서..

최신 Oracle Version만 해도 설치 후에 설정이 별로 필요치 않은데 9i는 이래저래 손이 많이 가는군요.

다음 Post에서는 마지막으로 Redhat 8에 설치한 Oracle 9i에서 Pro*C를 Compile할 수 있는 환경을 구성하는 방법에 대해서 적어보도록 하겠습니다.



출 처 : http://ioriy2k.pe.kr/archives/1726

Posted by 나른한스누피