분류 전체보기 28

ORA-03150: 데이터베이스 링크를 위한 통신 채널의 파일 끝, ORA-02063: line가 선행됨

1. 개요: ORA-03150 및 ORA-02063 오류란?**ORA-03150(데이터베이스 링크를 위한 통신 채널의 파일 끝)**은 DB LINK를 통해 원격 DB와 통신하던 중연결이 비정상적으로 단절되었음을 의미합니다. 주로 원격 서버의 프로세스가 강제 종료되거나 네트워크가 끊겼을 때 발생합니다. 이와 함께 발생하는 **ORA-02063(line가 선행됨)**은 해당 에러가 로컬이 아닌 '원격 데이터베이스(DB LINK)'로부터전달되었음을 알리는 부가 정보입니다. 이 에러 스택은 로컬 DB가 원격 트랜잭션의 상태를 확정 짓지 못할 때 alert.log에 Error 3150 trapped in 2PC라는 로그와 함께 기록됩니다.2026-03-26T15:23:22.759271+09:00 Error 315..

Trouble Shooting 2026.03.26

히든파라미터 _add_col_optim_enabled, 대용량 테이블 컬럼 추가

1. 개요대용량 테이블에 새로운 컬럼을 추가하며 DEFAULT 값을 지정할 경우, 오라클은 기본적으로 전체 레코드를 수정하는 물리적 업데이트를 수행합니다. 이 과정에서 발생하는 대량의 I/O 부하와 리소스를 방지하기 위해, 물리적 수정 없이 딕셔너리 정보만 변경하는 최적화 기법이 필요합니다.2. 히든 파라미터Oracle 11g부터 도입된 Fast Add 기능의 핵심은 Metadata Only Default 방식입니다.동작 원리: 데이터 블록을 직접 수정하지 않고 데이터 딕셔너리에만 기본값을 기록합니다. 이후 사용자가 데이터를 조회하는 시점에 실시간으로 값을 병합하여 결과를 반환합니다.핵심 파라미터: 19c 환경에서는 _add_col_optim_enabled 파라미터가 이 최적화 기능을 제어합니다.3. 해..

Admin 2026.03.25

ORA-00600: internal error code, arguments: [qosdExpStatRead: expcnt mismatch]

1. 장애 개요운영 중 아래 오류 발생:ORA-00600: internal error code, arguments: [qosdExpStatRead: expcnt mismatch] DBMS_SCHEDULER 사용자 Job 수행 중 발생Job 내부에서 DBMS_STATS.FLUSH_DATABASE_MONITORING_INFO 호출이후 DBMS_STATS 관련 기능 전반 실패사용자 Job 외에도 15분 마다 발생(백그라운드 통계관련 프로세스로 추정)2. 원인 분석해당 오류의 핵심 원인은 옵티마이저 통계 메타데이터 불일치 . 구체적으로는 아래 두 내부 테이블 간 데이터 불일치:SYS.EXP_OBJ$SYS.EXP_STAT$3. 진단 쿼리문제 데이터는 다음 쿼리로 확인 가능하다.WITH b AS ( SELECT ..

Trouble Shooting 2026.03.23

Oracle 관련 약어 정리

1️⃣ 스토리지 / 파일 시스템 ASMOracle Automatic Storage ManagementOracle 스토리지 관리 계층ACFSOracle ACFSASM 위에서 동작하는 cluster 파일 시스템ASMLIBOracle ASMLIBASM 디스크 관리 라이브러리ASMFDASM Filter DriverASM 디스크 보호 필터ODMOracle Disk Manager스토리지 벤더 기능 인터페이스OMFOracle Managed FilesOracle DB 파일 자동 관리ADVMASM Dynamic Volume ManagerASM 기반 볼륨 관리2️⃣ 성능 진단 / 모니터링 AWRAutomatic Workload RepositoryDB 성능 통계 저장ASHActive Session History세션 활동 기..

Admin 2026.03.11

ORACLE LogMiner

Oracle LogMiner는Redo Log를 사람이 읽을 수 있는 SQL 형태로 해석해주는 도구. DB에서 무슨 데이터가, 언제, 어떻게 바뀌었는지를 테이블 데이터 기준으로 추적할 때 쓰는 정식 Oracle 기능이다.LogMinerOracle DB는 모든 변경사항을 Redo Log에 기록함.Redo Log는 로그 스위치가 일어나면 Archive Log로 저장함(아카이빙 모드시).로그마이너로 추적 범위로 판단하여 필요한 Redo Log / Archived Log 를 통해 변경내용을 SQL 형태로 제공한다. 추출 SQL@ [YYYYMMDD HH24:MI 형식의 추적시작 일시] : 추적을 시작할 시간 예 : 20260211 10:00 @ [YYYYMMDD HH24:MI 형식의 추적종료 일시] : 추적을 종료..

Admin 2026.02.11

WITH GRANT OPTION이 필요한 진짜 이유 – VIEW와 PROCEDURE에서의 차이

WITH GRANT OPTION 이란?WITH GRANT OPTION은 단순히“권한을 받았다” 가 아니라내가 받은 권한을, 다른 사용자에게도 사용하게 할 수 있는 권리를 의미한다. 이 “사용하게 한다”는 것은 두 가지 방식이 있다.1️⃣ 권한 위임의 두 가지 형태🔹 명시적 위임 (Explicit Grant)구분설명방식GRANT ... TO USER DDL 실행형상✔ 남음조회 위치DBA_TAB_PRIVS, DBA_OBJECT_PRIVS특징제3자가 직접 권한을 소유 [OWNER2]GRANT SELECT ON OWNER2.TABLE TO OWNER1 WITH GRANT OPTION;[OWNER1]GRANT SELECT ON OWNER2.TABLE TO USER1;🔹 암묵적 위임 (Implicit Deleg..

Admin 2026.01.28

Flashback query, Flashback Versions Query

Flashback Query는 과거 시점의 데이터를 UNDO를 이용해 SELECT로 조회하는 기능이다. Oracle은 DML 전 데이터를 UNDO에 저장Flashback Query는:UNDO를 재조합하여과거 시점의 SCN / 시간 상태를 재구성📌 UNDO가 남아 있어야 가능하다, undo는 휘발성 로그이기 때문에 현재 DB 시스템의 UNDO_RETENTION 파라미터 값이 클수록 유리하다. SELECT * FROM [테이블] AS OF TIMESTAMP(to_date('2025/03/16 20:32:00','YYYY/MM/DD HH24:MI:SS')) WHERE [조건절(필요시)]; 혹은 (SCN기반) SELECT * FROM [테이블] AS OF SCN 123456789 WHERE [조건절(..

Admin 2026.01.05

분산 트랜잭션, 2PC PENDING

분산 트랜잭션(Distributed Transaction) •두 개 이상의 데이터베이스(DBMS) 또는 시스템 자원에서 동시에 수행되는 트랜잭션.•2Phase Commit 프로토콜을 사용해 모든 참여 DB가 동일하게 커밋되거나 롤백되어야 원자성을 보장. ORACLE 2PC PENDING은 **분산 트랜잭션(Distributed Transaction)**에서2-Phase Commit(2PC) 이 정상적으로 완료되지 못하고 대기 상태로 남아 있는 트랜잭션을 의미.그리하여 완료 메시지를 받지못해 판단할수 없는 트랜잭션을 미결 트랜잭션이라고 한다. 2PC(2-Phase Commit) 프로토콜Phase 1: Prepare Phase•Coordinator(조정자) 가 모든 Participant(참여 DB)에게 PR..

Admin 2026.01.05

ORACLE 청크 공간 재사용 테스트, clob

개요업무 배치 수행 중 특정 테이블스페이스의 사용량이 비정상적으로 급증하여, 데이터파일을 사전에 추가하지 못하고 TS_FULL 상황이 발생한 사례가 있었다.일반적으로 데이터파일의 MAX_SIZE는 30GB로 설정해 두고, 필요 시 점진적으로 확장하는 방식으로 운영하고 있었으나, 해당 배치는 매시간 수행될 때마다 테이블스페이스 사용량이 갑자기 30GB를 초과하는 증가 폭을 보였다.문제가 된 배치의 처리 방식은 다음과 같다.기존 데이터를 전량 DELETE이후 신규 데이터를 일괄 INSERT신규 데이터의 총 데이터량은 기존 데이터와 유사한 수준데이터의 총량이 유사함에도 불구하고 테이블스페이스 사용량이 지속적으로 증가했다는 점에서,기존 데이터 삭제에도 반환된 공간(블록 또는 LOB 청크)이 재사용되지 못하고 누..

Admin 2025.12.30

SQL Loader, 트랜잭션 원자성 여부 및 검증

SQL Loader 작업 중, alert log에 오류가 발생했더라도 일부데이터는 적재되어 있어문득 sqlldr가 트랜잭션 원자성을 지켜 주는지 궁금하여 여러 케이스를 검증해보았다 요약하면SQL*Loader는 direct 여부에 따라 Direct Path API를 활용하여 Oracle SQL 엔진을 우회하고, 내부 버퍼를 이용해 데이터 파일을 데이터 블록에 직접 기록 하거나 (Y) 일반적인 SQL INSERT 문을 이용하여 Oracle SQL 엔진을 통해 데이터를 적재하며, Undo/Redo 로그를 생성하고 rows 단위 커밋을 수행한다 (N) . 적재 대상 데이터파일이 모두 이상이 없으면 결과엔 차이가 없지만 이상데이터로 인해 sqlldr 진행 중 오류가 발생시 옵션에 따라 일부 정상 데이터가 누락..

SQL Loader 2025.07.16