반응형

전체 글 100

[오라클] 롤백 트랜잭션 진행 상태 조회 (with - undo tbs)

요약 : USED_UBLK와 USED_UREC가 모두 감소한다면 일반적으로 Rollback이 진행 중이라고 판단할 수 있음Oracle은 Undo Record를 역순으로 적용하면서 트랜잭션을 되돌리기 때문에 롤백중엔 두 값이 감소하는 것이 일반적임. SELECT S.SID --세션 ID , S.INST_ID --인스턴스 번호 , S.SERIAL# --세션 Serial 번호 , S.EVENT , S.USERNAME , S.STATUS , T.START_DATE AS TRANSACTION_START_TIME , ROUND((SYSDATE - T.START_DATE) * 24 * 60 * 60) AS ELAPSED_SECONDS , TO_CH..

새싹 DBA/Oracle 2026.07.01

[오라클]dbms_resource_plan 패키지 - User 병렬 제한 설정

개발자들이 운영, 교육 DB 들어와서 병렬 쿼리를 무자비하게 돌린다면 자원이 어찌되나 .. 특히 운영중일땐 장애가 날 수도 있는 아주 무서운 상황임.. 따라서 리소스 사용 제한을 어찌할까.. 하다 찾은 dbms_resouurce_plan 패키지.트리거로 제한해도 alter session 해버리면 가능해지니 제대로 막아보자.. 생각보다 복잡한데 그래도 찬찬히 ~ 침착하게 ~BEGIN DBMS_RESOURCE_MANAGER.CLEAR_PENDING_AREA ; END ; / --0.기존 RESOURCE MANAGER 비활성화ALTER SYSTEM SET RESOURCE_MANAGER_PLAN = ''; ------------------------------------------------------..

새싹 DBA/Scripts 2026.04.24

[튜닝] Paging Query JPDD (join push predicate)

Oracle JPPD(Join Predicate Pushdown) 튜닝 원리는 뷰(View)나 서브쿼리 외부에 있는 조인 조건을 내부로 밀어 넣어, 인덱스 기반 Nested Loop Join을 가능하게 하여 불필요한 데이터 읽기를 줄이고 성능을 개선하는 데 있습니다.하지만 모든 상황에서 유리하지는 않으며, 힌트나 파라미터로 제어가 필요하다. 🔑 JPPD 튜닝 원리개념: 외부 쿼리 블록의 조인 조건을 뷰나 서브쿼리 내부로 전달(push down)하여, 뷰 내부에서 필터링을 먼저 수행.효과: 뷰 전체를 읽은 뒤 필터링하는 대신, 조건을 미리 적용해 I/O 감소 및 실행 속도 향상.적용 방식:옵티마이저가 자동으로 변환 (Cost-Based Decision).힌트(PUSH_PRED, NO_PUSH_PRED) ..

카테고리 없음 2026.03.18

[오라클] 개인계정 DML 트래킹 (audit policy)

단계별 오픈인 차세대 시스템에서 운영중인 환경에도 빈번한 모델 변경, 데이터 변경으로 인해 일부 개인 계정에 DML 권한을 준 상황. 권한은 부여했지만 누가 어떤 작업을 했는지 트래킹하지 못하면 너무 리스크가 크다. dbms_fga 패키지를 썼지만 테이블별로 정책을 등록하고 시스템 성능에 큰 문제가 됐다. 아래 방법은 PL님이 찾으신 방법으로 유저에게 정책을 걸어버리는 쉬운 방법.—sys로 접속 후 정책 생성CREATE AUDIT POLICY AUDIT_USER_DML(정책명) ACTIONS INSERT,UPDATE,DELETE;스키마에게 정책 부여AUDIT POLICY AUDIT_USER_DML_LOG BY DBADM;로그확인 테이블SELECT * FROM UNIFIED_AUDIT_TRAIL;정책해..

새싹 DBA/Oracle 2026.02.25

[오라클] dbms_redefinition 테이블 온라인 exchange

온라인 상태에서 서비스 중지 없이 테이블 레이아웃을 변경할 수 있는 패키지. 운영 환경에서 파티션 테이블로 변경시 파티션 타입 변경시, 컬럼 길이 변경시 유용하다.1. redefinition 가능 여부 확인BEGINdbms_redefinition. CAN_REDEF_TABLE(unames=>'DBADMtname=>'ORG_TABLE’options_flag=>DBMS_REDEFINITION.CONS_USE_PK);END;2. INT 테이블 생성 (바꿔치기 할 테이블)CREATE TABLE DBADM.INT_TABLE 3. 재정의 시작 (START) 데이터 복사 시작BEGINDEMS_REDEFINITION.START_REDEF_TABLE(uname=> 'DBADM',orig_table => 'ORG_TABL..

새싹 DBA/Oracle 2026.02.02

[오라클] 개발-전환 DB 테이블 레이아웃 정합화 (datapump package 사용)

구축 단계에서 잦은 테이블 구조 변경으로 전환팀에 제공한 DB 간 테이블 정합화(sync) procedure DBLINK 를 사용하여 impdp 하는 dbms_datapump 패키지를 사용하기 때문에 DBLINK 가 생성되어 있어야한다. CREATE OR REPLACE PROCEDURE DEVMIG.PRC_IMPDP_REMOTE_MIG_TABLE( p_remote_link IN VARCHAR2 --DB LINK명(필수입력) ,p_remote_owner IN VARCHAR2 --remote DB 테이블 OWNER(필수입력) ,p_target_owner IN VARCHAR2 --target DB 테이블 OWNER(필수입력) ,p_table_name IN VARCHAR2 ..

새싹 DBA/Scripts 2026.01.28

[오라클] RAC ASM 환경 controlfile 이중화

asm 환경에서 컨트롤파일 이중화 절차1. 현재상황확인2. shutdown3. nomount 후 현재 컨트롤파일 restore(RMAN이용)* restore controlfile to '+RECO' from '이전컨트롤파일경로';3-1. asmcmd로 restore된 controlfile 확인4. 파라미터파일 수정5. shutdown 후 startup5-1. 변경 후 상황확인1. 현재상황확인SQL> show parameter controlNAME TYPE VALUE------------------------------------ ----------- ------------------------------control_file_reco..

카테고리 없음 2026.01.20

[오라클] 파티션 테이블 병렬 INSERT 시 pq_distribute 힌트

일반 테이블 > 파티션 테이블 변경 작업 도중 데이터를 옮기다 튜너님이 주신 팁pq_distribute 힌트 주세요 ~ (그게뭐지) 찾아봤다. 결과 한줄 요약 pq_distribute(b none) 힌트는 PX 서버들끼리 데이터를 서로 재분배하지 않도록 해주는 힌트라서 INSERT 성능이 크게 좋아짐 pq_distribute 힌트 - 병렬 쿼리 수행시 테이블에 분배와 조인 조정하기 위한 오라클 hint 1. 적용 상황파티션 키를 무시하고 데이터를 다른 키로 분배하고자 할 때통계정보가 정확하지 않은 경우, 실행 계획을 고정할 시킬 때 옵티마이저가 파티션 데이터를 사용하지 않고 동적 재분배를 하고자 할 때2. 사용 방법 - 기본 Syntax /*+ pq_distribute( inner table..

새싹 DBA/Oracle 2026.01.07

[오라클] 운영 대용량 배치 UPDATE

눈물겨운 DBA 일기에 나온 대용량 배치 업데이트문 ..운영 DB는 아카이브로그도 설정되어있고, 다른 업무도 진행중이기 때문에 언두 테이블스페이스 등 대용량 작업 시 부담이 큼. 사전 체크포인트 1. 테이블 스페이스 용량 - UNDO TBS - 해당 테이블이 속해있는 TABLESPACE 용량2. RAC 의 경우 RECO 영역 - 아카이브로그가 폭증하면 순식간에 로그스위치가 우다다발생해로그파일을 내림3. CPU DECLARE -- 한번에 가져올 건수(배치 사이즈) v_batch_size NUMBER := 5000 ; --UPDATE 대상 PK 만 읽어올 커서 CURSOR c_keys IS SELECT MSG_KEY FROM DBADM.MY_TABLE ..

새싹 DBA/Oracle 2025.12.12
반응형