Admin 9

히든파라미터 _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

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

Diagnostic Pack / Tuning Pack

sql_id로 sql정보를 찾을 때V$SQL은 금방 휘발되어 디스크 기반저장으로 더 오래가는 dba_hist_sqltext에서 찾을 수 있다. 단 Diagnostics Pack 라이센스가 필요한데 아래 파라미터 값으로 확인하자.SELECT name, value FROM v$parameter WHERE name = 'control_management_pack_access'; 결과NONE / DIAGNOSTIC / DIAGNOSTIC+TUNING 그 밖 주요 뷰 라이센스 필요 여부1. Diagnostics Pack 관련 주요 뷰V$ACTIVE_SESSION_HISTORY실시간 Active Session History(ASH) 데이터 조회DBA_HIST_ACTIVE_SESS_HISTORYAWR에 저장된 과거..

Admin 2025.07.03

롤(role) 과 권한(privilege)

ROLE : 권한들의 집합체ROLE에 여러가지 권한을 부여하고 계정에 ROLE을 부여함으로써 관리 용이성, 보안성을 챙긴다.사용자가 많아질수록 일일히 권한관리를 하지 않고 ROLE을 사용하면 용이하다.​ORACLE 기본 ROLE​CONNECT ROLE : DB에 SESSION을 만들 수 있는 권한이 있는 ROLERESOURCE ROLE : 트리거나 프로시져 같은 리소스 에 권한들의 모음DBA ROLE : 모든 시스템 권한이 부여된 ROLE​​권한관리시스템 권한 : 사용자가 DB에서 특정 작업을 실시할 수 있도록 함. EX) CREATE TABLE , CREATE ANY TABLE, SELECT ANY TABLE ... ANY 키워드는 모든 스키마에 권한을 가짐을 의미.​객체 권한 : 테이블이나 프로시져등..

Admin 2025.06.04