[Oracle] 인덱스 사용여부를 모니터링하는 방법
저희 회사는 Oracle 11gR2 버전을 사용하고 있기 때문에 V$OBJECT_USAGE뷰를 사용하여 생성된 인덱스의 사용여부를 모니터링하는 방법을 알아보겠습니다. 컬럼명 설명/비고 INDEX_NAME 모니터링 대상이 된 인덱스의 이름입니다. TABLE_NAME 해당 인덱스가 설정되어 있는 테이블의 이름입니다. MONITORING 현재 이...
저희 회사는 Oracle 11gR2 버전을 사용하고 있기 때문에 V$OBJECT_USAGE뷰를 사용하여 생성된 인덱스의 사용여부를 모니터링하는 방법을 알아보겠습니다. 컬럼명 설명/비고 INDEX_NAME 모니터링 대상이 된 인덱스의 이름입니다. TABLE_NAME 해당 인덱스가 설정되어 있는 테이블의 이름입니다. MONITORING 현재 이...
데이터베이스 설계 시 테이블(Data)과 인덱스(Index)의 저장 공간을 분리하는 것은 오라클 관리의 교과서적인 베스트 프랙티스(Best Practice)라고 하네요. 테이블과 인덱스 저장용 테이블스페이스를 분리할 경우의 잇점을 Gemini에게 물어보니 아래와 같이 친절하게 대답해 줍니다. 정리하기로 결정한 걸 잘...
Audit Trail 기능을 사용해서는 Invalid Object의 접근/사용 이력을 기록할 수 없기 때문에 Schema Trigger를 생성해서 Invalid Object의 접근/사용 이력을 기록하는 방법을 알아보겠습니다. 로그 기록용 테이블 및 권한 부여(COM 스키마) Trigger 생성(TGMADM 스키마) 1. 로그...
스키마를 삭제하더라도 OS의 디스크 여유 공간이 증가하지 않습니다. 스키마를 물이라고 생각하면 물을 담고 있는 그릇, 즉 테이블스페이스를 삭제해야 비로소 가용 디스크 용량이 증가합니다. 아래는 테이블스페이스를 안전하게 삭제하기 위한 절차입니다. 휴지통(Recycle Bin)에 들어있는 객체 확인...
앞 글에서 스키마 삭제 시 DBA_DEPENDENCIES 뷰를 사용해서 의존성까지 점검했음에도 불구하고 여전히 불안감이 있을 수 있습니다. 저도 불안해서 Oracle의 Audit Trail 기능을 사용해서 의심스러운 스키마를 삭제하기 전에 하나 더 점검하려고 합니다. 참고로 Invalid Object는...
A proxy user is an Oracle database user that can authenticate on behalf of another user. SYSTEM(관리자)라도 Private Database Link를 삭제할 수 없습니다(drop database link DB링크). Private Database Link 삭제하기 위해서 해당 DB Link의...
오라클 개발용 DB를 사용 중 아래와 같이 “ORA-00257: archiver error”가 발생하여 DB 연결까지 안되는 사태가 발생했습니다. ORA-00257 오류는 오라클 데이터베이스의 아카이브 로그 디렉토리가 가득 차서 더 이상 로그 파일을 생성할 수 없을 때 발생합니다....
사용자의 현재 상태를 확인하려면 DBA_USERS 뷰의 ACCOUNT_STATUS, LOCK_DATE, EXPIRY_DATE, PROFILE 컬럼 값을 확인합니다. SELECT USERNAME, ACCOUNT_STATUS, LOCK_DATE, EXPIRY_DATE, PROFILE FROM DBA_USERS WHERE USERNAME = ‘username’; ACCOUNT_STATUS 컬럼은 다음과 같은 값을 가질 수 있습니다: OPEN:...
Oracle Data Pump 유틸리티를 사용하여 스키마 데이터를 이전하는 절차는 다음과 같습니다. 여기서는 데이터 내보내기(expdp)와 데이터 가져오기(impdp)를 단계별로 설명하고, 이 과정에서 필요한 점검 및 설정 항목을 함께 안내하겠습니다. 사전 점검 및 설정 데이터 내보내기 (Export)...
오늘 글은 월간 점검해야 하는 항목들을 확인하는 스크립트입니다. 일/주간/월간 점검항목을 구분하지 않고 매일 점검해도 누가 뭐라할 사람은 없는데, 그래도 쓸데없는 곳에 시간, 에너지, 전력 낭비를 하지 않으려고 구분해 봤습니다. 이 글을 읽고 계시는 분들은...
데이터베이스 월간 점검항목 중에 조각화된 테이블을 재구성하는 것은 테이블의 성능을 최적화하고 저장 공간을 효율적으로 사용하는 데 중요한 작업입니다. 블록 수가 많은 테이블은 데이터 액세스 성능에 큰 영향을 미칠 수 있기 때문에, 재구성을 통해 성능을...
오늘 글은 주간 점검해야 하는 항목들을 확인하는 스크립트입니다. 일/주간/월간 점검항목을 구분하지 않고 매일 점검해도 누가 뭐라할 사람은 없는데, 그래도 쓸데없는 곳에 시간, 에너지, 전력 낭비를 하지 않으려고 구분해 봤습니다. 이 글을 읽고 계시는 분들은...
데이터베이스 주간 점검항목으로 선정한 invalid object는 다양한 상황에 의해 발생할 수 있습니다. 이와 같은 invalid object는 데이터베이스에서 사용할 수 없는 상태를 의미하며, 보통 다음과 같은 이유로 인해 발생합니다. 의존성 문제: 객체가 의존하고 있는 다른...
오늘 글은 매일 점검해야 하는 항목들을 확인하는 스크립트입니다. 출력값이 아직 눈에 익지도 않고, 정상적인 값인지도 잘 모르지만 모니터링하다보면 익숙해지겠지요. 분기별로 방문/점검해 주시는 DBA분으로부터 노하우를 전수받아야겠습니다. 점검항목 타이틀 출력(printTitle.sh) 데이터베이스 기본 정보 확인 일일 점검항목...
Oracle 데이터베이스 관리 업무를 맡고 나서 벼르고 벼르던 데이터베이스 모니터링 스크립트를 정리하고 있습니다. 현재 유지보수 업체에서 사용하는 것을 참고하려고 했는데, 뭔가 2% 부족한 것 같아서 여러 사이트 및 DBA분들의 스크립트를 참고했습니다. 나름대로 일일/주간/월간 단위로...
WITHIN GROUP( )는 OVER()와 함께 SQL에서 윈도우 함수를 사용할 때 사용되는 절입니다. OVER( )와 WITHIN GROUP( )의 특징은 아래와 같습니다. OVER( )는 윈도우 함수의 파티션 및 정렬을 지정하는 데 사용됩니다. 윈도우 함수는 결과 집합...
카테고리 분석 함수 집계 COUNT( ), MAX( ), MIN( ), SUM( ), AVG( ) 순위 ROW_NUMBER( ): 결과 집합 내에서 각 행에 순차적인 일련번호(고유한 번호)를 할당하며 중복된 값이 있어도 고유한 번호가 할당됩니다RANK( ): 정렬된...
Oracle에서 TRUNC 함수는 날짜 또는 시간 값을 지정된 형식으로 잘라내는 데 사용됩니다. 이 함수는 다양한 형태의 날짜 및 시간 값을 받아들이고, 원하는 정밀도로 값을 잘라낼 수 있습니다. TRUNC 함수의 기본 구문은 다음과 같습니다. TRUNC(date_value,...
ALTER SYSTEM KILL SESSION과 ALTER SYSTEM DISCONNECT SESSION은 사용자 세션을 수동으로 종료시키는 두 가지 방법입니다. ALTER SYSTEM KILL SESSION ‘sid,serial#[,@inst_id]’ IMMEDIATE; 이 명령은 특정한 세션을 강제로 종료합니다. 알아야 할 것은 ALTER SYSTEM KILL SESSION...
최근에 작업 시간과 관련된 공정 데이터를 분석할 일이 있었습니다. Boxplot 도구를 사용해서 제품별 작업 시간의 편차를 시각적으로 표시하기 위해서는 사분위수(Quartile)를 구해야 했습니다.오라클 데이터베이스에서 사분위수를 산출하는 가장 일반적인 방법 중 하나는 PERCENTILE_CONT 함수를 사용하는 것입니다....