오라클 설치하는데 거의 30시간을 투자했군요

이전에 한 두어번 설치 하다가 계속 실패를 거듭하고

이번에는 바로 개발서버에 설치해야 되기에 이빨 꽉 깨물고 성질 죽여가며

깔았는데 결국은 깔리더군요......ㅋ

 

이것 저것 자료 많이 찾아보고 참고 하고 했지만 현재 아래에 있는 자료가

지금의 제목의 OS와 오라클버전엔 참 잘 맞았습니다.

쓰신분께 노고를 표합니다...ㅋ

 

오라클 계정의 .bash_profile 내용

export USERNAME BASH_ENV PATH ORACLE_BASE=/u01/app/oracle;

export ORACLE_BASE

ORACLE_HOME=/u01/app/oracle/product/8.1.7; export ORACLE_HOME

ORACLE_SID=ora1; export ORACLE_SID

PATH=$PATH:/u01/app/oracle/product/8.1.7/bin:/usr/local/java/bin; export PATH

CLASSPATH=.:/u01/app/oracle/product/8.1.7/jdbc/lib/classes111.zip; export CLASSPATH

LD_LIBRARY_PATH=/u01/app/oracle/product/8.1.7/lib; export LD_LIBRARY_PATH

ORA_NLS33=/u01/app/oracle/product/8.1.7/ocommon/nls/admin/data; export ORA_NLS33

NLS_LANG=American_America.KO16KSC5601; export NLS_LANG

LANG=C; export LANG

 

 

=============================================================

설치 순서

-------------------------------------------------------------

1. JDK1.1.8 설치

2. glibc 2.1 설치- gcc, cc, ld lib파일 변경

3. oracle 계정 및 dba 그룹 생성

4. oracle 환경변수 설정

5. oracle tar file 풀기

6. oracle 설치 및 재설치

7. 버그 패치 후 dbcreat.sh 생성

8. initSID.ora 파일의 mts_dispatchers 부분 주석처리

9. shell script를 실행하여 database 생성

10. adapters oracle이라는 명령으로 SID에 링크된 프로토콜 확인

11. relink all 이라는 명령으로 파일연결 재구성

12. svrmgrl 을 실행해서 startup shutdown 테스트

13. 리스너 구성 및 구동

14. svrmgrl에서 사용자 추가 및 권한 설정

15. sqlplus USERID/PASSWORD 로 접속 확인

16. glibc 되돌리기.

 

 

 

-------------------------------------------------------------

※ 참고사항

$ 로 시작하는 명령은 설치중 만들 oracle 계정으로 하는 것임

# 로 시작하는 명령은 root 계정으로 하는 것임

-------------------------------------------------------------

jdk118_v3-glibc-2.1.3.tar.bz2

i386-glibc-2.1-linux.tar.gz

linux81701.tar

준비.

-------------------------------------------------------------

1. JDK1.1.8 설치

-------------------------------------------------------------

# /usr/local

# su - root

# cd /usr/local

# tar -xvIjf jdk118_v3-glibc-2.1.3.tar.bz2

# ln -s /usr/local/jdk118_v3 /usr/local/java

 

 

 

8.1.7버전에서는 /usr/local/java 디렉토리를 사용한다.

 

 

 

-------------------------------------------------------------

2. glibc 2.1 설치- gcc, cc, ld lib파일 변경

-------------------------------------------------------------

Oracle8i glibc 2.1이 반드시 필요하다. 2.2에서는 Oracle DB 생성에 있어

서 링크의 문제가 발생하여 제대로 DB 생성이 되지 않는다.glibc 2.2에서 사

용하는 gcc, cc, ld glibc 2.1로 대치하는 작업이 필요하고, Oracle DB

성 후 되돌릴 수 있다.

 

 

 

# cd /usr

# tar -xfz i386-glibc-2.1-linux.tar.gz

 

 

 

# cd /usr/bin

# mkdir backup

# mv gcc cc ld backup

# ln -s /usr/i386-glibc-2.1-linux/bin/i386-glibc21-linux-gcc gcc

# ln -s gcc cc

# ln -s /usr/i386-glibc-2.1-linux/bin/i386-glibc21-linux-ld ld

 

 

 

(링크를 꼭 확인하라.)

 

 

 

# cd /usr/lib

# mkdir backup

# mv libc.so libdl.so libm.so libpthread.so backup

# mv libc.a libdl.a libm.a libpthread.a backup

 

 

 

DB를 생성한 후 원래대로 되돌려 놓을것이다.

 

 

 

-------------------------------------------------------------

3. oracle 계정 및 dba 그룹 생성

-------------------------------------------------------------

 

 

 

# groupadd -g 5000 dba

# adduser -g dba oracle

# passwd oracle (원하는 비밀번호입력)

 

 

 

-------------------------------------------------------------

4. oracle 환경변수 설정

-------------------------------------------------------------

# su oracle

$ cd

$ vi .bash_profile (아래의 내용을 추가)

 

 

 

export ORACLE_BASE=/oracle/app/oracle

export ORACLE_HOME=$ORACLE_BASE/product/8.1.7

export ORACLE_OWNER=oracle

export ORACLE_SID=oracle

export TMPDIR=$ORACLE_BASE/tmp

export PATH=.:$ORACLE_HOME/bin:/usr/local/java/bin:$PATH

export TNS_ADMIN=$ORACLE_HOME/network/admin

export NLS_LANG=American_America.KO16KSC5601

export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH

export LANG=C

umask 022

 

 

 

export LANG=C를 하지 않으면 Net8 설치시 화면의 글자가 안보임

 

 

 

-------------------------------------------------------------

5. oracle tar file 풀기

-------------------------------------------------------------

 

 

 

설치시 oracle 계정에서 해야함으로..소유권변경후 풀기.

# mkdir /backup

# mv linux81701.tar /backup (자신만의 디렉토리)

# chown oracle.dba linux81701.tar

# tar -xvf linux81701.tar (Disk1 디렉토리에 오라클 설치 파일들이 풀린다)

 

 

 

------------------------------------------------------------

6. oracle 설치 및 재설치

-------------------------------------------------------------

logout oracle 계정으로으로 로그인한다.(su - oracle 해도 됨)

 

 

 

$ su -

root pass 입력

# mkdir /oracle/app/oracle/oraInventory -p

# chown oracle.dba /oracle -R

# exit

 

 

 

$ cd /backup/Disk1

$ ./runInstaller

 

 

 

 

 

 

Welcome 화면 : Next 버튼

 

 

 

File Locations 화면

 

 

 

UNIX Group Name 화면

UNIX Group Name dba 입력

 

 

 

Oracle Universal Installer 화면

/oracle/app/oracle/product/8.1.7/orainstRoot.sh root권한으로 실행하

라는 알림창.

 

 

 

한텀을 하나 더 띄워서 아래와 같이 실행

$ su -

pass enter

# /oracle/app/oracle/product/8.1.7/orainstRoot.sh

 

 

 

Retry 버튼

 

 

 

Available Products 화면

Oracle8i Enterprise Edition 8.1.7.0.1 선택

 

 

 

Installation Types 화면

Custom 선택

 

 

 

 

 

 

Available Product Components 화면

Net8 Products를 전부 체크해준다. 나머지는 필요에 따라 체크해 주면 된다.

 

 

 

 

 

 

화면상단에서 설치에 필요한 파일 로딩중....

 

 

 

Component Locations 화면

Java Runtime Environment 1.1.8

 

 

 

 

 

 

화면상단에서 설치에 필요한 파일 계속 로딩중....

 

 

 

Privileged Operating System Groups 화면

Database Administrator (OSDBA) Group : dba

Database Operator (OSOPER) Group : dba

 

 

 

 

 

 

화면상단에서 설치에 필요한 파일 계속 로딩중....

 

 

 

Create Database 화면

No 선택

 

 

 

 

 

 

화면상단에서 설치에 필요한 파일 계속 로딩중....

 

 

 

Summary 화면

Install

 

 

 

 

 

 

Setup Privileges 화면

이 화면이 보이는 상태에서 루트계정의 두번째 한텀에서 아래와 같이 실행한

.

 

 

 

# /oracle/app/oracle/product/8.1.7/root.sh

# 뭐라고 나오는는데 그냥 엔터

 

 

 

Ok 버튼

 

 

 

Configuration Toos 화면

Net8 Configuration Assistant in progress...

여기에서 설치가 더 이상 되지 않으므로 종료하고 나온다.

 

 

 

adapters라는 명령으로 설치된 프로토콜을 확인해 본다.

$cd $ORACLE_HOME/bin

$adapters

 

 

 

몇가지가 설치되어 있지만 TCP/IP는 설치되어 있지 않다.따라서 이것을 다시

설치해 주어야 한다.

 

 

 

다시 runInstaller를 실행한다.

 

 

 

$ ./runInstaller (이때 혹시 화면 뜨지 않으면 아래의 명령을 실행한다)

$ killall -9 jre

$ ./runInstaller

 

 

 

설치할 제품 선택에서 Net8 부분들을 모두 체크해서 재설치 한다.

 

 

 

설치 중 ins_names.mk 를 부르는데 오류가 발생했다는 화면이 나오면 무시를

누르고 계속 설치한다. 설치가 종료된 후 다시 adapters라는 명령을 실행해

TCP/IP 프로토콜이 제대로 설치되었는지 확인한다.

이번에는 TCP/IP가 나올 것이다.

 

 

 

-------------------------------------------------------------

7. 버그 패치 후 dbcreat.sh 생성

-------------------------------------------------------------

이제 다음에는 database를 생성한다. database를 생성하기 전에 버그 패치를

해주어야 한다.

 

 

 

/backup/Disk1/patch 디렉토리에 가면 bug로 시작하는 두개의 디렉토리가 있

.

$ cd /backup/Disk1/patch/bug1542738

$ sh README.1542738

 

 

 

기억하기로는 이 패치를 하지 않고 곧바로 dbassist를 실행하면 ldap 어쩌고

저쩌고 하며 에러 메시지를 여러줄 뿌릴것이다.

 

 

 

다음에는 bug1538440 디렉토리로 가서 실행한다.

 

 

 

$ cd /backup/Disk1/patch/bug1538440

$ export TOP_PATCH_DIR=/backup/Disk1/patch/bug1538440

$ sh README.1538440

 

 

 

이렇게 패치를 하면 뭔가 패치를 한다.이 패치는 리스너 설정에 관련된 권한

설정 오류를 고치는 것으로 파악하고 있다.

 

 

 

이제 database를 생성하자.

 

 

 

 

 

 

$ dbassist

 

 

 

데이타베이스 생성 방법은 Custom을 선택한다.

 

 

 

이제 거의 모든 설정은 디폴트 값을 사용한다.

Character Set은 아래와 같이 한다.

 

 

 

Oracle Database Configuration Assistant 화면

Global Database Name: oracle

SID : oracle

Change Character Set.. 버튼 클릭

 

 

 

Character Set 화면

Character Set : KO16KSC5601 로 변경

 

 

 

마지막으로 database를 지금 생성 아니면 스크립트로 저장하겠느냐는 질문에

선 지금 스크립트로 저장을 선택하라.

 

 

 

만약 바로 생성하겠다는 것을 선택하면 ORA 00102 의 에러 메시지 창을 만날

것이다.

 

 

 

Oracle Database Configuration Assistant 화면

Save information to a shell script

 

 

 

Popup 화면

Enter file name: dbcreate.sh (스크립트 이름을 dbcreate.sh 로 한다.)

 

 

 

이제 dbcreate.sh이라는 데이타베이스 생성 스크립트를 만들었다.

이것은 $ORACLE_HOME/assistant/dbca/ 아래에 있다.

 

 

 

 

 

 

이것을 실행하기 전에 중요한 한가지를 수행해야 한다.

 

 

 

-------------------------------------------------------------

8. initSID.ora 파일의 mts_dispatchers 부분 주석처리

-------------------------------------------------------------

$vi $ORACLE_HOME/dbs/initoracle.ora

 

 

 

를 실행해서 mts_dispatchers로 시작하는 설정을 주석으로 처리한다.

주석처리 되지 않느곳은 두곳이다. 하단에 위치.

주석처리 하지 않으면 DB생성할 때 ora 00102 에러 발생하여 db생성

불가.

 

 

 

-------------------------------------------------------------

9. shell script를 실행하여 database 생성

-------------------------------------------------------------

자 이제 database 생성 스크립트를 실행하자.생성하는데 걸리는 시간은 세시

간 정도 걸린다.

 

 

 

$ cd /oracle/app/oracle/product/8.1.7/assistants/dbca

$ ./dbcreate.sh

 

 

 

-------------------------------------------------------------

10. adapters oracle이라는 명령으로 SID에 링크된 프로토콜 확인

-------------------------------------------------------------

이제 Listener 구성을 하자.

그전에 마지막으로 adapters oracle이라는 명령으로 설치된 프로토콜을 확인

해본다.

$ cd /oracle/app/oracle/product/8.1.7/bin

$ ./adapters oracle

여기서 좀전에 adapters명령으로 보았던 프로토콜들을 다 볼수 없다.

 

 

 

-------------------------------------------------------------

11. relink all 이라는 명령으로 파일연결 재구성

-------------------------------------------------------------

TCP/IP가 빠져 있을 것이다. runInstaller의 버그때문에 TCP/IP 프로토콜을

재설치 해주었는데 oracle(실행파일) TCP/IP 링크가 제대로 되지 않아서일

것이다. 따라서 relink all 이라는 명령으로 다시 링크를 검사해서 고쳐주면

된다

 

 

 

$ relink all

 

 

 

위를 실행하고 나서 다시 아래와 같이 하면 TCP/IP oracle 항목에 나타나

있을 것이다.

 

 

 

$ cd $ORACLE_HOME/bin

$ ./adapters oracle

 

 

 

 

 

 

-------------------------------------------------------------

12. svrmgrl 을 실행해서 startup shutdown 테스트

-------------------------------------------------------------

 

 

 

$ svrmgrl

SVRMGRL> connect internal;

SVRMGRL> startup;

SVRMGRL> shutdown;

SVRMGRL> exit

 

 

 

-------------------------------------------------------------

13. 리스너 구성 및 구동

-------------------------------------------------------------

 

 

 

$ netca

 

 

 

만약 창이 제대로 뜨지 않으면 한텀을 종료하고 새롭게 띄운다.

그전에 netca를 확실하게 종료시키자. 아래와 같이.

 

 

 

$ killall -9 netca

$ killall -9 jre

 

 

 

다시 한텀을 띄우고 netca를 하면 화면이 나타날것이다.

 

 

 

리스너명: LISTENER

프로토콜: TCP

포트: 1521 (기본)

 

 

 

로컬 네트 서비스 이름 구성

서비스 이름: test

프로토콜: TCP

호스트 이름: 210.111.111.1 (자기 환경에 맞도록 수정)

TCP/IP 포트: 1521

네트 서비스 이름: oracle

 

 

 

위의 과정을 거치게 되면 listener.ora tnsnames.ora가 생성되는데

파일들의 위치는 $ORACLE_HOME/network/admin에 있다. sample 디레토리 내용

을 참조하라.

아래는 그것을 사용하여 구성했을 때 생성한 파일 내용이다.

이 과정은 vi로 편집하여도 된다.

=============================================================

# LISTENER.ORA Network Configuration File: /oracle/app/oracle/product/8.1.7/network/admin/listener.ora

# Generated by Oracle configuration tools.

 

 

 

LISTENER =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 210.111.111.1)(PORT = 1521))

)

 

 

 

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(GLOBAL_DBNAME = oracle)

(ORACLE_HOME = /oracle/app/oracle/product/8.1.7)

(SID_NAME = oracle)

)

)

=============================================================

 

 

 

 

 

 

 

 

 

=============================================================

# TNSNAMES.ORA Network Configuration File: /oracle/app/oracle/product/8.1.7/network/admin/tnsnames.ora

# Generated by Oracle configuration tools.

 

 

 

ORACLE.MINIGATE.COM =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 210.111.111.1)(PORT = 1521))

)

(CONNECT_DATA =

(SERVICE_NAME = test)

)

)

=============================================================

listener 구동

Listener가 재대로 동작하는지 확인한다.

lsnrctl start (리스너 스타트)

------------------------------------------------------------------------

LSNRCTL for Linux: Version 8.1.7.0.0 - Production on 25-MAR-2001 12:36:25

(c) Copyright 1998 Oracle Corporation. All rights reserved.

Starting /oracle/app/oracle/product/8.1.7/bin/tnslsnr: please wait...

 

 

 

TNSLSNR for Linux: Version 8.1.7.0.0 - Production

System parameter file is /oracle/app/oracle/product/8.1.7/network/admin/listener.ora

Log messages written to /oracle/app/oracle/product/8.1.7/network/log/listener.log

Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle.minigate.com)(PORT=1521)))

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle.minigate.com)(PORT=1521)))

STATUS of the LISTENER

------------------------

Alias LISTENER

Version TNSLSNR for Linux: Version 8.1.7.0.0 - Production

Start Date 25-MAR-2001 12:36:25

Uptime 0 days 0 hr. 0 min. 0 sec

Trace Level off

Security OFF

SNMP OFF

Listener Parameter File /oracle/app/oracle/product/8.1.7/network/admin/listener.ora

Listener Log File /oracle/app/oracle/product/8.1.7/network/log/listener.log

Services Summary...

oracle has 1 service handler(s)

The command completed successfully

------------------------------------------------------------------------

 

 

 

lsnrctl status (리스너 상태 확인)

lsnrctl stop (리스너 종료)

 

 

 

lsnrctl services

------------------------------------------------------------------------

LSNRCTL for Linux: Version 8.1.7.0.0 - Production on 25-MAR-2001 12:37:51

(c) Copyright 1998 Oracle Corporation. All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle.minigate.com)(PORT=1521)))

Services Summary...

oracle has 1 service handler(s)

DEDICATED SERVER established:0 refused:0

LOCAL SERVER

The command completed successfully

------------------------------------------------------------------------

 

 

 

 

 

 

-------------------------------------------------------------

14. svrmgrl에서 사용자 추가 및 권한 설정

-------------------------------------------------------------

다음으로 실제로 리스너가 리모트에서도 동작하는지 테스트해본다.

사용자를 추가하고 connect권한을 준다.

 

 

 

$ svrmgrl

 

 

 

SVRMGRL> connect internal;

SVRMGRL> starup;

SVRMGRL> create user USERID identified by PASSWORD;

SVRMGRL> grant connect,resource to USERID;

SVRMGRL> exit

 

 

 

 

 

 

-------------------------------------------------------------

15. sqlplus USERID/PASSWORD 로 접속

-------------------------------------------------------------

16. glibc 되돌리기..

-------------------------------------------------------------

#cd /usr/bin

#rm -f gcc cc ld

#cd /usr/bin/backup

#mv * ..

#cd ..

#rm -rf backup

 

 

 

#cd /usr/lib/backup

#mv * ..

#cd ..

#rm -rf backup

 

 

 

-------------------------------------------------------------

 

출처 : 데이터베이스 사랑넷

 

크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by 때찌1