본문 바로가기

카테고리 없음

ORACLE 9i 수동 DB 생성 #3/4 (파일설정 ~ 파라미터설정 ) v1.0


.bash_profile 의 설정

 

아래 내용을  .bash_profile에 추가해준다.
PS1과 EDITOR는 선택사항이고 나머지는 필수요소이다.
그밖에 많은 설정이 가능하나 여기서는 간단히 아래와같이 사용하겠다.

export ORACLE_SID=STBY

export PS1='`hostname -s`@$ORACLE_SID : `pwd`>$'

export ORACLE_BASE=/oracle

export ORACLE_HOME=$ORACLE_BASE/ora92

export EDITOR=vi


ORACLE_SID는 말그대로 ORACLE의 SID 이다.
PS1은 프롬프트 모양을 만드는 변수이다.
ORACLE_BASE 와 ORACLE_HOME은 ORACLE의 PATH와 관련된 변수설정이다.
EDITOR 항목은 SQLPLUS 상에서 편집 (ED) 기능을 사용하기 위해 설정한다.
(옵션이라고는 하지만  필수느낌이다. 없음 불편 )

 

.bashrc의 설정

 

alias ss='sqlplus "/as sysdba"'

alias tns='cd $ORACLE_HOME/network/admin'

alias data='cd /opt/oracle/oradata/STBY'

alias dump='cd /oracle/admin/STBY'

alias dbs='cd $ORACLE_HOME/dbs'


.bashrc 에는 위와같은 내용을 넣는다.
주로 alias (사용자 정의 단축명령) 등을 위치시켰다.
.bash_profile 과 보통 쌍으로 연계되어있어 .bash_profile을 reload 시키면 같이 reload 되는
식이다. (아닌 경우도 있을 수 있다. 


ss는 sys로 sqlplus 를 실행하는 명령이고
tns는 network 설정을 접근하기위해 만들었으며
data는 dbf ctl log 등이 위치하는 디렉토리 경로를 넣었다.
dump는 bdump,cdump,udump 가 위치하는 디렉토리를 가리킨다.
마지막으로 dbs 항목은 password file과 parameter file이 위치하는 폴더의 내용을 저장했다.

위와같이 alias를 지정해놓으면 손쉽게 접근할 수 있다. 


Directory
의 생성

 

/oracle admin 디렉토리를 생성한다.

RH3@STBY : /oracle>$mkdir admin

 

/oracle/admin 밑에 STBY 디렉토리를 생성한다.

RH3@STBY : /oracle/admin>$mkdir STBY

 

/oracle/admin/STBY 밑에 bdump, cdump, udump 를 생성한다.

RH3@STBY : /oracle/admin/STBY>$mkdir bdump cdump udump

 

RH3@STBY : /opt/oracle/oradata/STBY>$mkdir ARCH1 disk1 disk2 disk3

데이터파일 컨트롤파일 리두로그파일 아카이브파일을 위치할 디렉토리를 생성한다.

( 자신이 맘에 드는 폴더를 만들어도 관계없다. ) 

 

initSID.ora 의 설정 ( parameter file)

 

sqlplus의 실행 ( 필자는 ss alias를 사용하였다. )

 

SQL>startup nomount; 를 실행해 본다.

해당경로에 파라미터 파일의 정보를 얻을 수 없다고 에러가 날 것이다.

에러에 나온 경로에 이동해 파일을 만든다.

 

위에 해당하는 해당경로는 필자가 만든 dbs alias 이름과 동일하다.

 

RH3@STBY : /home/oracle>$dbs

RH3@STBY : /oracle/ora92/dbs>$vi initSTBY.ora

 

 

initSTBY.ora 를 생성한다.

 

db_name=STBY

instance_name=STBY

compatible=9.2.0.4.0

control_files=/opt/oracle/oradata/STBY/disk1/ctrl01.ctl

sga_max_size=120m

shared_pool_size=64m

db_cache_size=32m

db_block_size=4096

background_dump_dest=/oracle/admin/STBY/bdump

core_dump_dest=/oracle/admin/STBY/cdump

user_dump_dest=/oracle/admin/STBY/udump


위의 compatible을 제외한 다른 항목은 모두 필수요소이다.(아마도...)

db_name, instance_name 항목엔  DB의 SID가 들어간다.

db_name 을 적어넣지 않으면 db를 생성해놓고 open을 하지 못하는 비극이 일어난다.(실화)
shutdown 이후 startup 을 해보면 문제를 인식할 수 있으리라 본다.

compatible은 db버전정보를 넣는 부분이다.
이 항목은 create database script 에서 undo tablespace를 생성을 할때 반드시 필요하다.
설정을 하지 않고 db생성을 하면 후에 undo tablespace를 만들지 못하는 비극이 일어난다.
에러메시지로 rollback segment ( 8i ) 를 만들라는 문구를 보게 된다.
( 후에도 parameter 수정으로 해결 가능하다 )

control_files 에는 control file의 경로와 이름을 쓴다.

sga_max_size > shared_pool_size + db_cache_size 는 알리라 생각한다.
위 사이즈는 필자가 임의로 던져놓은 사이즈로 큰 의미는 없다.

db_block_size 는 db의 default block 을 지정하는 항목으로 이는 후에도 변경이 안되니 신중히
지정해야 한다. (필자는 아무생각없이 무난한 4k를 선택했다 )

bdump, cdump, udump를 지정하면 parameter file의 설정은 끝난다.

SQL>startup nomount
가 에러없이 실행되는지 확인한다.

 

alert log 설정

 

위에서 nomount 단계에 이상없이 이동했다면 bdump 경로에 alert 파일이 생성되었을 것이다.

.bashrc alias tail 명령어를 추가한다.

alias alert='tail -f /oracle/admin/STBY/bdump/alert_STBY.log'

 

위의 명령어는 alert log가 갱신되는 것을 실시간으로 보여줄 수 있는 명령어이다.

.bashrc
를 리로드 후 프롬프트에서 명령어가 실행되는지 확인해 본다.

$alert