본문 바로가기

ORACLE

오라클 인스턴스 2개 띄우기

========================== 미리 알아야 할 지식 ================================================================

리눅스에서..

정확히 Linux Enterprise 5 버전에서

오라클 10g (10.2.0 ) 을 설치 하다가.. 패키지 설치가 안되었는지 오라클이 설치가 안되었다.

필요패키지 확인후 yum 으로 설치를 하려 했는데 yum 이 먹통이다.

알고 보니 리눅스 사이트에 서브스크립션 등록을 해야 패키지, 패치 등 여러 서비스를 받을 수 있단다.

서브스크립션 등록 후 yum 등이 잘 되더라, yum 은 안쓰고 리눅스 구매 업체에서 패치를 받긴 했지만..

(서브 스크립션 등록하면 사이트에서도 모든 패치, 설치 파일들을 받을 수 있다네요..)

어쨋든 필요 패키지를 설치후 ./runInstaller 를 실행하니 GUI 가 뜨던 것이었던 것이었다.

눈물을 머금고 하나씩 설치를 하는데,, 리눅스 패치등이 상위 버전이어서 그런지 ,, 설치 되다 OUI-03001 인가? 그 오류가 나면서

계속 진행하니 Error 박스가 뜨더라. 그리곤 오라클 설치 완료 되었다는 메시지 뜬다. OUI-03001 인가? 그놈에 대한 자료도 한개도 없더라!;;

오라클 엔지니어는 아니지만 여기저기 웹서핑 한 결과 데이터베이스 등 아~무것도 생성이 안된상태에서 고민하다가

수동으로 설치하기로 마음먹었다. sqlplus '/as sysdba' 이놈이 되기에..ㅋ

init<SID>.ora 파일 생성해주고 ( 안에 컨트롤파일 경로도 지정 : 그럼 create database 시에 생성 되더라 )

환경변수 맞춰주고.. 디렉토리들 생성 및 권한 설정 맞춰주고.. 서버 호스트 네임도 맞춰주고 ..

여러가지 작업후 드디어

sqlplus '/as sysdba' 로 접속해서 다음 명령을 날리니 생성 되었다~ 유후~(오 하느님 감사합니다)^^

create database ORA10G
controlfile reuse
logfile
group 1 ('/data/ORA10G/redo01a.rdo') size 10m reuse,
group 2 ('/data/ORA10G/redo02a.rdo') size 10m reuse
datafile '/data/ORA10G/system01.dbf' size 1024M reuse
autoextend on
sysaux
datafile '/data/ORA10G/sysaux01.dbf' size 50m reuse
autoextend on
undo tablespace UNDOTBS1
datafile '/data/ORA10G/UNDOTBS101.dbf' size 50m reuse
autoextend on
default temporary tablespace temp
tempfile '/data/ORA10G/temp01.dbf' size 50m reuse
autoextend on;

주의 할점

init<SID>.ora 파일에 undo tablespace 와 맞도록 일치시켜야 한다.

만약 틀리면 다음의 애러가 발생한다.

create database ORA10G
*
ERROR at line 1:
ORA-01092: ORACLE instance terminated. Disconnection forced

위의 애러가 발생한다면 당황하지 말고 init<SID>.ora 파일과 undo tablespace 명을 일치 시켜 준후

다시 생성해 준다.

필자가 다시 생성하기 전에 잠깐 고민했던건 drop database 같은걸 한 뒤 다시 create database 해야 하지 않을까 였다.

왜냐 하면 control 파일 redo.log 파일 등이 모두 생성 되었기 때문이다.

그러나 위의 상태에서 다시 create database 문을 날려 주면 OK 이다.

ps : 생성 하면 DB 가 정상적으로 start 될겁니다. start 후 sqlplus system/manager 등으로 들어가면

ORA-06553 PLS 213 과 같은 장애가 발생 할 수 있습니다.

그럼 이전의 포스트를 참고하세요! 해결 방법있습니다~^^

============================================ 멀티 인스턴스 생성 시작 ==========================================

예전에 오라클 수동 생성이라는 명령어로 위와 같은 글을 올린 적이 있었다.

헌데 오늘 이미 오라클이 설치 되어 있는 서버에 인스턴스를 하나 더 띄우라는 지시가 있어 깅가밍가 하면서 작업을 해보니

성공했다.

일단 위의 내용을 참고 했으며 ORACLE_SID 만을 변경 함으로써 데이터 베이스의 인스턴스를 계속 추가 할 수 있다는 것을

경험했다.

기존에 ORACLE_SID 가 위와 같이 ORA10G 이고 새로 만들 ORACLE_SID 가 STAR 라면 리눅스 터미널 환경에서

ORACLE_SID 만 변경 및 적용하여 새로 데이터 베이스를 create 할 수 있었다.

# setenv ORACLE_SID STAR

# sqlplus '/as sysdba'

SQL> create database STAR

........

........

일단 작업은 위에 게시된 내용과 같이 initSTAR.ora 파일을 생성(복사) 하고 initSTAR.ora 파일 내에 기재된 내용 대로

폴더등을 만들어준다. adump, bdump, cdump, udump 등..

마찬가지로 system01, sysaux01, temp01, redo01a.rdo, redo02a.rdo, 및 생성할 테이블 스페이스의 dbf 데이터 파일이

생성될 디렉토리도 만들어 준다.

그 후 작업 내용은 아래와 같다.


# setenv ORACLE_SID START

# sqlplus '/as sysdba'

SQL> startup nomount pfile="/oracle/app/product/10.2/dbs/initSTAR.ora";
ORACLE instance started.

Total System Global Area 683671552 bytes
Fixed Size 1221252 bytes
Variable Size 180358524 bytes
Database Buffers 494927872 bytes
Redo Buffers 7163904 bytes
SQL> create database STAR
2 controlfile reuse
3 logfile
4 group 1 ('/data/STAR/redo01a.rdo') size 10m reuse,
5 group 2 ('/data/STAR/redo02a.rdo') size 10m reuse
6 datafile '/data/STAR/system01.dbf' size 1024M reuse
7 autoextend on
8 sysaux
9 datafile '/data/STAR/sysaux01.dbf' size 50m reuse
10 autoextend on
11 undo tablespace UNDOTBS2
12 datafile '/data/STAR/UNDOTBS101.dbf' size 50m reuse
13 autoextend on
14 default temporary tablespace temp
15 tempfile '/data/STAR/temp01.dbf' size 50m reuse
16 autoextend on;

Database created.

SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL>
SQL> startup
ORACLE instance started.
Total System Global Area 683671552 bytes
Fixed Size 1221252 bytes
Variable Size 180358524 bytes
Database Buffers 494927872 bytes
Redo Buffers 7163904 bytes
Database mounted.
Database opened.
SQL>

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

다음은 tnsnames.ora 설정 내용 이다.

# tnsnames.ora Network Configuration File: /oracle/app/product/10.2/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.

LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = RIANDB)(PORT = 1521))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = RIANDB)(PORT = 2481))
(PROTOCOL_STACK =
(PRESENTATION = GIOP)
(SESSION = RAW)
)
)
)

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /oracle/app/product/10.2)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = ORA10G)
(ORACLE_HOME = /oracle/app/product/10.2)
(SID_NAME = ORA10G)
)
)

SID_LIST_LISTENER1 =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /oracle/app/product/10.2)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = STAR)
(ORACLE_HOME = /oracle/app/product/10.2)
(SID_NAME = STAR)
)
)


LISTENER1 =
(DESCRIPTION_LIST =
(DESCRIPTION =
# (ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = RIANDB)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
)

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

참고로 한가지 더 얘기 하자면 위와 같이 데이터베이스 생성 후에 토드나 DBA2009 같은

클라이언트 프로그램으로 접속시 애러가 발생 할 수 있다

애러해겳 방법은 패치를 가지만 해주면 되는데 다음 페이지를 참조하도록 하자

/oracle/app/product/10.2/rdbms/admin 밑에서

utlrp.sql catproc.sql catalog.sql

/oracle/app/product/10.2/javavm/install 밑에 rmjvm.sql 실행한다