본문 바로가기

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 BBED Utility 사용기 Oracle에는 BBED 유틸리티 (블록 브라우저 및 편집기)라는 유틸리티가 있습니다. Oracle7에서 Oracle10g까지 Oracle DB 버전에서 사용되던 유틸리티로 Oracle 11g에서 바이너리 파일이 엔진상 제거되었지만... make명령어를 통해 BBED를 사용할 수 있습니다. 사용될 make파일은 ins_rdbms.mk로 $ORACLE_HOME/rdbms/lib 디렉토리에 있는데요. 명령어는 아래와 같이 실행하면 됩니다. make -f ins_rdbms.mk BBED=$ORACLE_HOME/bin/BBED $ORACLE_HOME/bin/BBED internal하게 사용되는 BBED 유틸리티는 Oracle 기술 지원시 데이터 블록 손상 문제를 검색, 진단 (및 복구)하는 데 사용하는데 쓰여왔.. 더보기
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이.. 더보기