반응형

SID 변경 ORA-12638 오류
1️⃣ 오류 개요
Oracle 데이터베이스에서 SID 변경 작업 이후 원격 접속 과정에서 ORA-12638: Credential retrieval failed 오류가 발생하는 사례는 매우 흔합니다. 이 오류는 SID 자체의 문제라기보다 Oracle Net 인증 설정(sqlnet.ora)과 리스너/클라이언트 TNS 정보 불일치가 함께 얽혀 발생하는 일반오류형 케이스입니다.
현상 요약:
- 리스너는 정상 기동되지만 원격 접속 시 ORA-12638 발생
- SID 변경 후 listener.ora/TNS/환경변수 정보 불일치
- sqlnet.ora 인증 방식(OS/Kerberos/NTS 등)이 실제 환경과 충돌
- 리스너는 정상 기동되지만 원격 접속 시 ORA-12638 발생
- SID 변경 후 listener.ora/TNS/환경변수 정보 불일치
- sqlnet.ora 인증 방식(OS/Kerberos/NTS 등)이 실제 환경과 충돌
2️⃣ 1단계 — SID 변경 이력 및 상태 점검
먼저 실제 SID가 제대로 반영되었는지 서버·리스너·환경변수를 모두 확인합니다.
ps -ef | grep pmon으로 실제 인스턴스 이름 확인echo $ORACLE_SID로 OS 환경변수 확인- listener.ora의 SID_NAME 값과 인스턴스가 일치하는지 확인
- tnsnames.ora의 SERVICE_NAME/SID 값 변경 여부 확인
체크포인트:
- 서버 ORACLE_SID 값 = 실제 인스턴스 이름
- listener.ora SID_LIST → 변경된 SID가 정확히 등록
- TNS 접속정보가 이전 SID로 남아 있지 않은지 확인
- 서버 ORACLE_SID 값 = 실제 인스턴스 이름
- listener.ora SID_LIST → 변경된 SID가 정확히 등록
- TNS 접속정보가 이전 SID로 남아 있지 않은지 확인
3️⃣ 2단계 — ORA-12638 오류 메시지 확인
SQL> conn user@example
ERROR:
ORA-12638: Credential retrieval failed
이 오류는 인증 정보를 가져오지 못했다는 의미이며, 실제 발생 원인의 70% 이상이 sqlnet.ora의 AUTHENTICATION 설정 문제입니다.
점검 파일 목록:
- 서버: sqlnet.ora, listener.ora
- 클라이언트: tnsnames.ora, sqlnet.ora
- 서버: sqlnet.ora, listener.ora
- 클라이언트: tnsnames.ora, sqlnet.ora
4️⃣ 3단계 — sqlnet.ora 인증 설정 점검
특히 잘못된 인증 옵션이 설정되어 있을 가능성이 높습니다.
# 문제가 되는 예시
SQLNET.AUTHENTICATION_SERVICES = (NTS)
SQLNET.AUTHENTICATION_SERVICES = (KERBEROS5)
SQLNET.AUTHENTICATION_SERVICES = (ALL)
실제로 Kerberos나 OS 인증을 사용하지 않는 환경이라면 아래처럼 단순화해야 합니다.
SQLNET.AUTHENTICATION_SERVICES = (NONE)
조정 포인트:
- 서버·클라이언트 모두 동일한 AUTHENTICATION 설정 사용
- Kerberos·NTS 등 사용하지 않는 인증 제거
- 수정 후 리스너 재시작:
- 서버·클라이언트 모두 동일한 AUTHENTICATION 설정 사용
- Kerberos·NTS 등 사용하지 않는 인증 제거
- 수정 후 리스너 재시작:
lsnrctl reload5️⃣ 4단계 — Listener · TNS 정합성 점검
✔ listener.ora 예시
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = ORCL)
(SID_NAME = ORCL)
(ORACLE_HOME = /u01/app/oracle/product/19c/dbhome_1)
)
)
✔ tnsnames.ora 예시
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = db.example.com)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORCL)
)
)
중요 확인:
- SERVICE_NAME/SID_NAME 모두 변경된 SID 기준으로 작성되었는지
- HOST/PORT 변경 여부 검토
- 여러 개의 TNS 별칭 중 오래된 것이 남아 있지 않은지
- SERVICE_NAME/SID_NAME 모두 변경된 SID 기준으로 작성되었는지
- HOST/PORT 변경 여부 검토
- 여러 개의 TNS 별칭 중 오래된 것이 남아 있지 않은지
7️⃣ 기본 오류 대응 4단계
1단계: 원인 파악
2단계: 영향 범위 확인
3단계: 임시 조치 적용
4단계: 근본 원인 제거
2단계: 영향 범위 확인
3단계: 임시 조치 적용
4단계: 근본 원인 제거
오류 분석 흐름도
외부 노출 확인 → 역할 비활성화 → 포트 차단 → 로그 모니터링
8️⃣ 사후 관리 및 예방 전략
- SID 변경 이후 반드시 listener reload/재기동 수행
- sqlnet.ora 인증 옵션 변경 시 양쪽(서버·클라이언트) 동기화
- 오래된 TNS 설정 파일 정리
- DB 접속 이력에서 ORA-126xx 계열 오류 주기적 점검
반응형
'지식 공유 > DBMS' 카테고리의 다른 글
| [ORACLE] ORA-29516 오류 (0) | 2025.11.29 |
|---|---|
| [ORACLE] ORA-29532 오류 (0) | 2025.11.29 |
| [ORACLE]ORA-29548 오류 (0) | 2025.11.29 |
| [Oracle] DB Link — Oracle 간 연동과 이기종 DB 연동 구조 (0) | 2025.11.26 |
| [Oracle] ORA-1013 (0) | 2025.11.24 |
