본문 바로가기

oracle

Oracle - 세션 수집 프로시저 제작 DBA 업무를 수행하다 보니... DB 폐기를 수행하기 전에 유입되는 세션이 있는지 확인요청하는 건이 생겼던 적이 있다. DB접근제어도 없고, 그렇다고 audit을 걸기에는 디스크 공간이 넉넉치 않은 이런 악조건에서 세션 유입이 되는지 확인하려면 어떻게 해야 하는걸까? 바로, v$session에 있는 내용을 주기적으로 수집하면 간단하게 해결된다. 전체적인 프로세스는 다음과 같다. 1. 수집 테이블 생성 2. 세션 수집 프로시저 생성 3. 세션 수집 프로시저 수행 쉘 생성 4. crontab 등록 1. 수집 테이블 생성 CREATE TABLE "SYSTEM"."SESSION_STAT" ( "SD" DATE DEFAULT sysdate, "SADDR" VARCHAR2(4000), "SID" VARCHAR2(.. 더보기
Oracle admin - nid utility를 활용한 DB 이름 변경 ※ 테스트 장비에서 수행했던 스크립트 1. initVFPROD.ora파일의 컨트롤 파일을 /app/oracle/VFPROD/data1/cntrl/cntrlPROD.dbf 로 변경 *.control_files='/app/oracle/VFPROD/data1/cntrl/cntrlPROD.dbf' 2. DB_NAME이 PROD인 상태로 DB mount 기동 oraVFPROD 114> export ORACLE_SID=PROD oraVFPROD 115> sqlplus "/as sysdba" SQL> startup mount; 3. nid 유틸리티로 db_name을 변경 (PROD -> VFPROD) oraVFPROD 118> nid target=sys/***** as sysdba dbname=VFPROD setna.. 더보기
Oracle Procedure 제작 - 통계정보 수집 자동화 프로시저 오라클이 버전업이 되어감에 따라 자동화와 관련된 기능들도 업그레이드되어 갑니다. 하지만, 특정 버전들에서는 자동화 기능이 정상 동작하지 않는 현상도 때때로 발생됩니다. 오늘은 Oracle 10g부터 나온 autotask 기능이 제대로 동작하지 않을 때, 프로시저를 통해 통계정보 수집을 자동화할 수 있는 방법을 공유하려고 합니다. 해당 프로시저를 사용함에 앞서, 2가지 사항을 확인 및 조치가 필요합니다. A. 다음의 SQL로 통계정보 수집을 하려는 테이블에 통계정보 LOCK이 걸려 있는가 확인 SELECT OWNER, TABLE_NAME,STATTYPE_LOCKED FROM DBA_TAB_STATISTICS WHERE OWNER='계정명' AND TABLE_NAME='테이블명'; 만약, 통계정보 LOCK이.. 더보기