.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