Oracle 11gR2를 사용하여 일부 CentOS 5.6 서버를 설정했는데 이 특정 문제가 발생하지 않았지만 CentOS 6.3을 사용하고 Oracle을 자동으로 시작하는 데 문제가 있습니다. 이것이 CentOS의 새 버전이나 PEBKAC 순간과 관련이 있는지 확실하지 않지만 도움이 필요합니다.
CentOS 6.3에 Oracle 11gR2가 설치되어 작동 중입니다. 잘 실행되고 작동합니다. 이제 서버에서 시작하기를 원합니다. 이를 위해 저는 평소에 하던 다음과 같은 일을 했습니다.
/etc/init.d/oracle을 생성합니다:
#!/bin/bash
#
# oracle Init file for starting and stopping
# Oracle Database. Script is valid for 10g and 11g versions.
# chkconfig: 35 80 30
# description: Oracle Database startup script
# Source function library.
. /etc/init.d/functions
ORACLE_OWNER="oracle"
ORACLE_HOME="/opt/app/oracle/product/11.2.0/db_1"
case "$1" in
start)
su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME"
;;
stop)
su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/dbshut $ORACLE_HOME"
;;
*)
echo $"Usage: $0 {start|stop}"
esac
그런 다음 다음 두 명령을 실행합니다.
chmod 750 /etc/init.d/oracle
chkconfig --add oracle --level 0356
그러나 루트로 시도하면 service oracle start
다음 오류가 발생합니다.
env: /etc/init.d/oracle: No such file or directory
우리가 찾고 있는 파일을 찾는 방법을 잘 모르겠습니다.
확장된 변수를 사용하여 스크립트의 실제 시작 명령을 실행하면 데이터베이스가 오류 없이 시작됩니다.
su - oracle -c "/opt/app/oracle/product/11.2.0/db_1/bin/dbstart /opt/app/oracle/product/11.2.0/db_1"
그럼... 내가 여기서 무엇을 놓치고 있는 걸까요? 일부 일상적인 웹 검색을 통해 이 방법이 여전히 작동해야 한다고 생각하게 되었습니다.
답변1
푸우. 포스팅하고 나서 알았네요...
전체 문제는 내 컴퓨터에 "oracle" 파일을 만들어 업로드했다는 것입니다. 따라서 줄 끝이 잘못되었습니다. 파일을 다시 빌드하면 모든 것이 잘 작동합니다.