Oracle 설치와 함께 제공되는 dbstart
/ dbshut
스크립트를 사용할 수 있습니다 . 아래에서 사용할 수 있습니다 $ORACLE_HOME/bin
.
새로 설치 한 후 /etc/oratab
파일 을 편집해야 합니다.
# cat /etc/oratab
# format: $ORACLE_SID:$ORACLE_HOME:N|Y
my_sid:/home/juser/app/juser/product/11.2.0/dbhome_1:N
# sed -i 's/:N$/:Y/' /etc/oratab
# grep my_sid /etc/oratab
my_sid:/home/juser/app/juser/product/11.2.0/dbhome_1:Y
그런 다음 다음과 같은 스크립트를 사용할 수 있습니다.
$ whoami
juser
$ dbstart $ORACLE_HOME
$ # execute DB jobs ...
$ dbshut $ORACLE_HOME
dbstart
Pro * C / OCI 프로그램에 필요한 모든 것을 제공합니다.
dbstart
/ 사용 dbshut
은 질문에 언급 된 사용자 정의 방법보다 개선 된 것입니다.
method time called tools
―――――――――――――――――――――――――――――――――――――――――――――――――――――
dbstart 5.7 s lsnrctl, sqlplus
dbshut 5.7 s lsnrctl, sqlplus
custom startup 27.9 s lsnrctl, sqlplus, emctl
custom shutdown 31.0 s lsnrctl, sqlplus, emctl
(Core i7 / 2.8GHz 시스템에서 시간이 느리게 회전하는 하드 디스크)
dbstart / dbshut 작동 방식
dbstart $ORACLE_HOME$
호출은 기본적으로 동일합니다 :
$ lsnrctl start
$ echo -e 'connect / as sysdba\nstartup\nquit'| sqlplus /nolog
그리고 a dbshut $ORACLE_HOME$
는 기본적으로 다음과 같습니다.
$ lsnrctl stop
$ echo -e 'connect / as sysdba\nshutdown\nquit'| sqlplus /nolog
(를 통해 모든 것이 종료되었는지 확인할 수 있습니다 ps aux | grep 'tnsl\|ora'
)
명령 순서가 중요합니다. 이는 lsnrctl start
sqlplus-startup 명령 이후에 실행될 때 Pro * C / OCI 프로그램이 여전히 사용할 수없는 TNS- 리스너에 대해 불평 함을 의미합니다.
그리고 이것은 문제의 명령 순서와 정확히 관련된 문제입니다 emctl start
. TNS- 리스너 설정 부분을 수정하기 때문에 잘못된 순서로 문제를 해결할 수 있습니다.
또한 Pro * C / OCI 프로그램을 실행하기 위해 EMCTL 서비스가 필요하지 않습니다.