반응형
🔹 발생한 문제
Oracle XE에서 TNS-12550, TNS-12560, TNS-00252 오류가 발생하면서 DB Listener 실행 불가
🔹 원인
Oracle XE는 프로세스 간 통신(IPC)을 위해 /var/tmp/.oracle/sEXPROC_FOR_XE라는 소켓 파일을 사용함.
하지만 다음과 같은 이유로 해당 파일의 소유자 및 권한이 변경되면 Oracle이 정상적으로 접근하지 못하고 TNS 오류가 발생함.
- 잘못된 사용자로 Oracle을 실행한 경우
- oracle 사용자가 아닌 다른 사용자(root 등)로 Oracle을 실행하면서 파일 소유자가 바뀜.
- 시스템 업데이트 또는 재부팅 후 권한 변경
- 일부 Linux 배포판에서는 /var/tmp/ 아래 파일의 소유권이 재부팅 후 변경될 수 있음.
- 다른 프로세스가 /var/tmp/.oracle/sEXPROC_FOR_XE 파일을 건드린 경우
- 예를 들어, 수동으로 파일을 삭제하거나 백업/복원 과정에서 권한이 달라졌을 수 있음.
🔹 해결 방법
- 소켓 파일의 소유자를 oracle로 변경
- oracle:oinstall → Oracle 기본 사용자 및 그룹
- chmod 770 → Oracle 프로세스가 정상적으로 접근할 수 있도록 설정
chown oracle:oinstall /var/tmp/.oracle/sEXPROC_FOR_XE
chmod 770 /var/tmp/.oracle/sEXPROC_FOR_XE
- Oracle 리스너 및 DB 재시작
- oracle 사용자로 리스너 및 DB를 다시 실행
sudo su - oracle lsnrctl stop lsnrctl start sqlplus / as sysdba startup
🔹 결론
이 문제는 Oracle이 IPC 통신을 위해 사용하는 소켓 파일의 소유자가 변경되면서 발생함.
파일 소유권과 권한을 수정하고 항상 oracle 사용자로 실행하면 정상적으로 해결됨. 🚀
반응형
'DB' 카테고리의 다른 글
[Database] SPOOL 개념과 사용법 (0) | 2025.03.19 |
---|---|
[Database] ORA-04030 원인,해결방법 (0) | 2025.03.19 |
[Database]Oralce Shirink (0) | 2025.03.05 |
[Database]Global Index VS Local Index (0) | 2025.03.05 |
[Database] Index란? (0) | 2025.03.04 |