ERROR:
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
Linux Error: 2: No such file or directory
상태로 봐서는... 오라클DB를 기동하는 DB 파일중의 일부가 없기 때문입니다.
오라클DB를 기동하기 위해서는
1. 시스템 테이블스페이스 (기본 파일명 : system.dbf)
2. UNDO 테이블스페이스 (기본 파일명 : undotbs1.dbf)
3. TOOLS 테이블스페이스 (기본 파일명 : tools.dbf)
그리고
온라인 리두로그 파일(redo1.log, redo2.log, redo3.log,...),
컨트롤 파일 (control1.ctl,...)
가 필요한데, 해당 테이블스페이스가 속한 데이터파일이 파일 시스템에 없거나
경로가 잘못 지정되어 있어서 그렇습니다.
님이 관리하시는 서버에 Oracle DB가 어떻게 구성되어 있는지를 몰라서
정확한 답변을 드리기는 힘들고요
(외장 Disk Array 를 사용하시는지, 혹은 NFS를 사용하시는지...
어떤 이유에서인지 linux 파일시스템 mount 가 되어 있지 않아서
오라클 데몬이 파일을 찾지 못하는 경우입니다)
우선 파일시스템 체크를 해보시고요...
파일 시스템에 이상이 없다면
shell 에서 sqlplus "/ as sysdba" 로 접속하셔서 다음의 명령어를 입력해 보시기 바랍니다...
select tablespace_name, file_name
from dba_data_files;
쿼리로 나온 결과에는 테이블스페이스 및 해당 테이블스페이스의 내용을 보관하고 있는
데이터파일 이름이 나옵니다.
이 결과값이 현재 물리적인 파일시스템과 일치하는지 하나씩 확인해 보시기 바랍니다.
참고로...
오라클의 관리자 계정인 system 계정의 기본 패스워드는 'manager' 입니다.
통상 오라클 9i 이상부터는 DBA가 DB를 관리하기 위하여 svrmgrl 을 사용하지 않고
sqlplus "/ as sysdba" 로 접속하게 되어 있습니다.
** 답변 일부를 수정드립니다.
또 하나의 가능성은
리눅스 Shell 환경변수에서
$ORACLE_HOME 이나 $ORACLE_SID 가 잘못 되어 있을수 있습니다.
계정의 home directory에서
vi .cshrc (C-Shell 사용시)
vi .profile (Korn Shell, Bourne-Shell 사용시)
하셔서 $ORACLE_SID 나 $ORACLE_HOME 이 어떻게 정의되어 있나 확인하시고요
echo $ORACLE_HOME
명령으로 나온 결과의 끝에 "/" 가 붙어 있으면 안됩니다.
예> ORACLE_HOME = /oracle/app/oracle/9204/product (O)
ORACLE_HOME = /oracle/app/oracle/9204/product/ (X)
$ORACLE_SID의 확인은
echo $ORACLE_SID
명령으로 확인 가능하고요
만약 $ORACLE_SID = MYDB 라면
오라클 데몬 프로세스가 떠 있는지 확인하시고요, 명령은
ps -ef | grep ora_
라고 치시면
ora_smon_MYDB
라고 나와야 정상입니다.