본문 바로가기

카테고리 없음

ORACLE 10g CREATE DATABASE ~ LISTENER CONFIGURATION

항상 보던 템플릿이 아닌걸? 하고 의아해 하는 분을 위한 사족이지만 작업환경이 PC방이기 때문이다...
개인 공부차원으로 전체적으로 살펴본 것이고 9i 문서를 작성했을 때로부터 상당한 시간이 흘렀음에 전율하고 있다!
10g에 설치에 대해 만들어는 보았지만 별로 새로울 건 없고 95% 정도 동일한 내용이 아닐까 싶다
9i 문서 보고 싶으신 분들은 db 수동 생성 이라 검색하길 바란다.

수동 DB 생성 (10g)

*사전에 profile 파일에 database engine 에 대한 setting 이 완료되어 있다고 가정하고 진행하겠다.*


<PARAMETER 설정>

ocp@orcl : /home/oracle> sqlplus "/as sysdba"

SQL*Plus: Release 10.2.0.1.0 - Production on Sat Nov 14 21:32:25 2009

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

Connected to an idle instance.

SQL> startup
ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file '/u01/app/oracle/product/10.2.0/db_1/dbs/initorcl.ora'

ORACLE_SID 가 설정되어 있는 상태에서 DB 에 접속해 기동하려 하면 위와 같은 메시지를 볼 수 있다.
nomount 단계로 가기 위해서는 기본적인 설정이 필요하다.
위에 명기된 경로에 해당하는 이름으로 파일을 생성한다.
파일 이름은 init${ORACLE_SID}.ora 로 생성한다.


<initorcl.ora>
db_name=orcl
control_files=(/u01/oradata/orcl/disk1/control01.ctl,
/u01/oradata/orcl/disk2/control02.ctl,
/u01/oradata/orcl/disk3/control03.ctl)
shared_pool_size=128m
db_cache_size=64m
db_block_size=8192
undo_management=auto
undo_tablespace=undotbs
background_dump_dest=/u01/app/oracle/admin/orcl/bdump
core_dump_dest=/u01/app/oracle/admin/orcl/cdump
user_dump_dest=/u01/app/oracle/admin/orcl/udump

위에서 undo_management 와 undotablespace 부분은 생략가능하다.
파라미터 설정을 마친 후 startup nomount 로 설정상 이상부분을 판단한다.

nomount 단계에서 다음으로 할 동작은 create database 이며 이를 성공적으로 마치면
database 가 open 된 상태가 된다.


<create database>
create database orcl
controlfile reuse
datafile '/u01/oradata/orcl/disk1/system01.dbf' size 600m reuse
autoextend on next 10m maxsize unlimited
sysaux datafile '/u01/oradata/orcl/disk1/sysaux01.dbf' size 400m reuse
autoextend on next 10m maxsize unlimited
default temporary tablespace temp
tempfile '/u01/oradata/orcl/disk2/temp01.dbf' size 100m reuse
autoextend on next 10m maxsize 600m
undo tablespace undotbs
datafile '/u01/oradata/orcl/disk2/undo01.dbf' size 300m reuse
autoextend on next 10m maxsize 600m
logfile
group 1 ('/u01/oradata/orcl/disk1/redo1_1.log','/u01/oradata/orcl/disk2/redo1_2.log',
'/u01/oradata/orcl/disk3/redo1_3.log')
size 10m reuse,
group 2 ('/u01/oradata/orcl/disk1/redo2_1.log','/u01/oradata/orcl/disk2/redo2_2.log',
'/u01/oradata/orcl/disk3/redo2_3.log')
size 10m reuse,
group 3 ('/u01/oradata/orcl/disk1/redo3_1.log','/u01/oradata/orcl/disk3/redo3_2.log',
'/u01/oradata/orcl/disk3/redo3_3.log')
size 10m reuse
user sys identified by oracle
user system identified by oracle;

create 가 완료되면 db 가 open 된 상태가 된다.
script 내용을 보면 전체적으로 control file / tablespace / redo log file / user 부분으로 나뉘어 진다.
undo tablespace 와 user 는 필수적인 부분은 아니다.
redo log 의 경우 생성시 위와 같이 그룹/멤버를 구성할 수 있다.

db생성 과정을 지켜보려면 alert 로그를 모니터링 하면 된다.
모니터링 하는 방법은 tail -f {alertlog_name} 을 사용하면 된다.
경로는 background_dump_dest 에 정의했던 경로를 확인한다.
alert file 이름은 보통 alert_${ORACLE_SID}.log 이다.

설치가 끝나면 다음의 할일은 dictionary 생성이다.

<create dictionary>

@?/rdbms/admin/catalog.sql

@?/rdbms/admin/catproc.sql

conn system/oracle

@?/sqlplus/admin/pupbld.sql


위 과정을 script 로 만들어 수행하는것도 괜찮다.
설치를 마치면 listener 설정을 한다.

<listener.ora>
orcl=(description=
        (address_list=(address=(protocol=tcp)(host=192.168.100.100)(port=1521)))
)

sid_list_orcl=
(sid_list=
        (sid_desc=
        (sid_name=orcl)
        (oracle_home=/u01/app/oracle/product/10.2.0/db_1))
)

listener.ora 의 내용은 listener 서비스에 대한 정의와 해당하는 listener 가 서비스 할 서비스(sid_list) 를 정의한다.
sid_list 항목에는 다수의 sid_desc 가 들어갈 수 있고 이것이 의미하는 바는 하나의 리스너가 여러 서비스를
연결할 수 있다는 것이다.

설정 중 괄호를 잘 못 쓰면 다음과 같은 에러를 얻는다.

TNS-01155: Incorrectly specified SID_LIST_orcl parameter in LISTENER.ORA
 NL-00303: syntax error in NV string

<tnsnames.ora>

orcl = (description=(address=(protocol=tcp)(host=192.168.100.100)(port=1521))
        (connect_data=(sid=orcl)))

tnsnames.ora 의 경우 connect_data 를 기술하는 부분이 있다.
이곳을 기술하는 이유는 하나의 listener 서비스가 여러 인스턴스에 대해 서비스를 할 수 있기 때문에
필요하다.

위 설정을 종료한 후 lsnrctl start orcl 로 기동 후 lsnrctl serv orcl 로 서비스 동작을 확인한다.

/*+ samples 폴더 밑에 위치한 listener.ora, tnsnames.ora 는 상당히 유용한 정보를 담고 있다. 한번 쯤 읽고 문서화 */