전체 글 77

[오라클] 락 정보 조회 및 kill session 스크립트

오라클 락 정보 조회 및 kill sessiondbms_datapump 패키지를 사용하면서 펌프 작업중 발생하는 에러를 출력하려다 lock 걸려있는 impdp 작업 조회, kill session 후 락테이블 삭제하는 작업을 진행함.>>간단조회 select * from v$locked_object;SELECT /*+ ordered */ LEVEL lvl, NVL (s.blocking_session, s.sid) lck_hold, CASE WHEN s.blocking_session IS NOT NULL THEN s.sid END ..

새싹 DBA/Scripts 2024.08.16

DATAPUMP LOG 파일 읽기 API

DATAPUMP LOG 파일 읽기 API서버 들어가서 로그파일 확인할 필요 없이데이터 펌프 로그를 읽는 패키지를 써서 툴로 로그파일 읽는 스크립트.DECLARE V1 VARCHAR2(200); --32767F1 UTL_FILE.FILE_TYPE; BEGIN F1 := UTL_FILE.FOPEN('DATA_PUMP_DIR','INIT_BK_TB_RC_JEJU_12_20190910.LOG','R'); Loop BEGIN UTL_FILE.GET_LINE(F1,V1); dbms_output.put_line(V1); EXCEPTION WHEN No_Data_Found THEN EXIT; END;end loop;IF UTL_FILE.IS_OPEN(F1) THEN dbms_output.put_line..

새싹 DBA/Scripts 2024.08.16

[ORACLE] INDEX 의 모든것 (PARTITION INDEX GLOBAL LOCAL PREFIXED)

1. Partitioned Index / Non - Partitioned Index  Non-Partitioned Index는 하나의 루트 노드에서 리프 노드까지 전체적인 균형을 유지하는 구조를 갖고 있다.반면, Partitioned Index는 각 파티션이 독립적인 루트 노드와 리프 노드를 가지며, 각 파티션이 자체적으로 균형을 유지 이로 인해 대용량 테이블에서 Global Index의 깊이는 매우 깊어질 수 있는 반면,Partitioned Index는 파티션별로 관리되므로 인덱스의 깊이가 얕아지고,파티션 단위로 인덱스를 관리할 수 있어 병렬 처리에 의한 인덱스 관리에 매우 효과적이다. Partitioned Index는 검색 조건에 인덱스 파티션 키가 포함된 경우에만 해당 인덱스 파티션을 검색하여 성능..

새싹 DBA/Oracle 2024.08.12

select_catalog_role 과 select any dictionary 차이

select_catalog_role , select any dictionary 차이select_catalog_role 을 dba_sys_privs, dba_role_privs 해도 안나오는거임 ㅠㅠ  일단 젤 중요한거 SELECT_CATALOG_ROLE 은 롤이다.SELECT ANY DICTIONARY 는 시스템권한 system privilege 이다.  select_catalog_role 에는 hs_admin_select_role 이라는 롤이 한번 더 부여되있고dba_tab_privs 뷰에서 grantee = hs_admin_select_role 을 조회해보면 sys 가 가지고 있는 object 를 조회할 수 있는 select 권한이 object 딴에 부여되어있다. (롤에 시스템 권한을 부여하는 것이 ..

새싹 DBA/Oracle 2024.08.06

SYNONYM, ROLE 모니터링

오라클 SYNONYM, ROLE 모니터링 -- 유령 시노님 체크 뷰 ( 테이블은 없고, 시노님만 있음 )SELECT * FROM VW_CHK_SYNONYMS ; -- 퍼블릭 시노님 생성 뷰 ( 테이블은 있고, 퍼블릭 시노님 없음)SELECT * FROM VW_CRE_SYNONYMS;-- DB LINK 막히고, 개발 DB -> 전환 DB 테이블 반영 DDL 추출 프로시저EXEC DBADM.HL_SP_MIG_TAB('IGWOWN','IGWOWN') ; EXEC DBADM.HL_SP_MIG_TAB('MBMS','MBMS') ;-- CHK_PRIVS 테이블에대한 권한 확인 ( 수정필요)EXEC CHK_PRIVS('IGWOWN','RL_IGWALL','CRUD');-- 백업 테이블 정리 프로시저EXEC DBADM..

새싹 DBA/Oracle 2024.08.05

서로 다른 DB 테이블, 컬럼 명 비교 (vlook up)

오라클 서로 다른 DB 테이블, 컬럼 명 비교각 DB 에서 테이블명, 컬럼명, 컬럼아이디, 오너 등등 조회해서 엑셀에 붙여넣고 VLOOKUP 쓰자.SELECT OWNER , TABLE_NAME , COLUMN_NAME , DATA_TYPE , DATA_LENGTH , COLUMN_ID FROM DBA_TAB_COLUMNSWHERE OWNER IN ('MBMS','IGWOWN') AND TABLE_NAME NOT LIKE 'BIN%' AND NOT REGEXP_LIKE(TABLE_NAME, '^[A-Za-z]+[0-9]{8}$') ORDER BY 1,2,3; DB LINK 가 방화벽 문제로 잠시 막혀서전환 DB에 싱크 맞춰주는 작업에 차질이 생겼다.  1차적으로 GET D..

새싹 DBA/Scripts 2024.08.05

[오라클] DDL 로그 트리거

오라클 DDL 로그 트리거많은 사람들이 같은 DB에서 작업을 할때, DB에 문제가 생겼을 때 어떤 사람이 했는지 찾을 수 없다. 접속한 유저가 날린 SQL문을 추적하는 DDL 로그 트리거를 통해 이러한 문제를 해결할 수 있다.  1. sys 로 접속 후 트리거를 만드는 계정에 권한 주기-- 권한부여 GRANT SELECT ON sys.v_$session TO DBADM;-- 부여 확인SELECT * FROM DBA_TAB_PRIVSWHERE GRANTEE ='DBADM' AND TABLE_NAME LIKE 'V_$SESSION' ; 2. 조회 결과 테이블 생성DROP TABLE DBADM.TB_DDL_HISTORY CASCADE CONSTRAINTS; CREATE TABLE DBADM.TB_DDL_..

새싹 DBA/Scripts 2024.07.30

[오라클] 테이블스페이스 모니터링 및 자동 증설

오라클 테이블스페이스 자동 관리 프로시저테이블 스페이스 용량 관리는 DBA 의 업무중 하나로,지속적으로 모니터링 하고 용량을 늘려주는 작업을 해야한다. DBA 의 운영 업무 중 가장 큰 스트레스 중 하나는 테이블 스페이스의 용량이 부족하여 DB에 심각한 장애가 발생하는 경우이다.  특히, 개발 단계에서 대량 배치 작업이나 데이터 이관 작업을 심야 시간에 진행 시 dba가 항상 상주하여 모니터링 할 수 없는 경우가 발생한다. 이러한 상황에 대비하여 DBA 가 부재한 상황에서 자동으로 테이블스페이스의 데이터파일 평균 사용률을 모니터링하고 임계치에 달하면 테이블 스페이스를 증설하는 프로시저를 소개하고자 한다. 프로시저 개요기능:테이블스페이스 내 데이터파일 설정 최적화테이블스페이스의 데이터파일 평균 사용률이  ..

새싹 DBA/Scripts 2024.07.29

[오라클] 시퀀스 생성 쿼리 Sequence , synonym 생성

1. 시퀀스 생성---- 1. 시퀀스 생성---- DROP SEQUENCE IGWOWN.SQ_FB_ABC;/***** 여기에 시퀀스 생성 요청 양식 넣고 작업하기 ******/1. 사용할 테이블명 : FB_ABC2. 사용할 컬럼명 : FMCFD_APLY_SN3. 시퀀스명 : SQ_FB_ABC4. 시작/종료값 : 1 - 99999995. 순환/비순환 : 비순환6. 배치 대량건 생성: N (동시에 대량건 채번할경우 = Y)/*****************************************************/CREATE SEQUENCE IGWOWN.SQ_FB_ABC START WITH 1 -- 시작번호 INCREMENT BY 1 ..

새싹 DBA/Scripts 2024.07.26