Tagged: Oracle Database

Data Guard 기반의 백업 오프로딩(Backup Offloading) 구조 0

[Oracle 11gR2] Data Guard 기반의 백업 오프로딩(Backup Offloading) 구조 구현하기 – Part1

Data Guard 기반의 백업 오프로딩(Backup Offloading) 구조는 오라클 데이터베이스 환경에서 가장 권장되는 표준화된 고가용성(High Availability) 및 백업 아키텍처로 아래와 같은 잇점이 있습니다. 운영 서버(Primary) 부하 제로: 백업 프로세스(RMAN)는 디스크 I/O와 CPU 자원을 많이 소모합니다....

Oracle Dataguard Architecture 0

[Oracle 11gR2] Oracle DataGuard 아키텍처와 프로세스의 이해

이번 글에서는 다이어그램을 통해 Oracle DataGuard 아키텍처와 프로세스를 이해해 보겠습니다. 어느 정도 이해가 되신다면, “Data Guard 기반의 백업 오프로딩(Backup Offloading) 구조 구현하기” 글을 참고하세요. LGWR(Log Writer) 프로세스 메모리(SGA)에 있는 Redo Log Buffer의 내용을 디스크의...

rlwrap 0

[Oracle] sqlplus 및 RMAN 프롬프트에서 방향키 및 history를 사용하는 방법(rlwrap 명령어)

Oracle 11g 이하에서는 기본적으로 sqlplus 프롬프트(SQL>) 및 RMAN 프롬프트(RMAN>)에서 방향키와 백스페이스키가 작동하지 않고 “^[[D^[[A^[[B^[[C^H” 같은 문자가 출력됩니다. 또한 버퍼에 저장되는 이전 쿼리도 / 명령으로 직전에 실행한 쿼리 하나만 실행할 수 있습니다. 불편한 점이 너무...

Oracle database DBA scripts 0

[Oracle] 시노님(Synonym)의 유효성을 점검하는 방법

시노님(Synonym)은 데이터배이스 링크(Database Link)와 마찬가지로 생성 시점에는 논리적 연결만 정의하고, 실제 참조 시점(Runtime)에 대상 객체의 존재 여부를 확인합니다. 즉 생성 시점에 DDL 문법이 정확하다면 dba_objects 뷰의 객체 상태(status 컬럼)의 값은 VALID이기 때문에 Invalid Object로...

Oracle database DBA scripts 0

[Oracle] RMAN으로 백업 및 복구하기

예전 글에서는 Oracle Data Pump 유틸리티(expdp/impdp)를 사용하여 스키마를 이전하는 절차를 알아봤는데요, 이번 글에서는 RMAN으로 Oracle Database를 백업 및 복구하늕 절차를 정리해 보고자 합니다. 아직까지 백업/복구 모의훈련을 위한 가상서버(VM)가 준비되지 않아서 먼저 정리를 하고, VM이...

Oracle database DBA scripts 0

[Oracle] DBMS_METADATA.GET_DDL( ) 한글 깨짐 및 가독성 해결 방법

DBMS_METADATA.GET_DDL( ) 함수를 사용하여 오브젝트 DDL을 추출할 때, 한글 코멘트가 깨지는 현상이 발생했습니다. 이를 해결하기 위해 Gemini의 도움을 받아 인코딩 설정과 출력 옵션을 정리했습니다. 향후 DDL 재사용성과 가독성을 높이기 위해 다음 설정들을 기록으로 남깁니다....

Oracle database DBA scripts 0

[Oracle] DATABASE LINK 연결 상태를 점검하는 방법

Database Link는 생성 시점에 원격지와의 물리적 연결성이나 계정 정보의 정확성을 검증하지 않기 때문에, DBA_OBJECTS 뷰에서는 연결 실패 여부와 상관없이 VALID 상태를 유지합니다. 따라서 DB Link의 가용성을 보장하기 위해서는 별도의 상태 점검이 반드시 필요합니다. 참고로...

Oracle database DBA scripts 0

[Oracle] 테이블 Move 및 인덱스 Rebuild 방법

데이터베이스를 오래 운영하다 보면 데이터의 입력, 수정, 삭제가 반복되면서 물리적인 저장 공간에 효율성이 떨어지는 현상이 발생하는데, 이를 ‘조각화(Fragmentation)‘라고 합니다. 테이블 Move와 인덱스 Rebuild는 이러한 ‘조각화를 제거‘하기 위함입니다. 그리고 “인덱스 저장용 테이블스페이스 정비 절차“, “통계...

Oracle database DBA scripts 0

[Oracle] 통계정보를 갱신하는 절차 및 방법

오라클 데이터베이스에서 통계 데이터를 수집해야 하는 가장 근본적인 이유는 CBO(Cost Based Optimizer, 비용 기반 옵티마이저)가 ‘가장 빠른 길’을 찾을 수 있도록 정확한 정보를 제공하기 위해서입니다. 예를 들어, CBO는 쿼리를 실행하기 전, 통계 데이터를 참조하여...

Oracle database DBA scripts 0

[Oracle] 인덱스 사용여부를 모니터링하는 방법

저희 회사는 Oracle 11gR2 버전을 사용하고 있기 때문에 V$OBJECT_USAGE뷰를 사용하여 생성된 인덱스의 사용여부를 모니터링하는 방법을 알아보겠습니다. 컬럼명 설명/비고 INDEX_NAME 모니터링 대상이 된 인덱스의 이름입니다. TABLE_NAME 해당 인덱스가 설정되어 있는 테이블의 이름입니다. MONITORING 현재 이...

Oracle database DBA scripts 0

[Oracle] 인덱스 저장용 테이블스페이스 정비 절차

데이터베이스 설계 시 테이블(Data)과 인덱스(Index)의 저장 공간을 분리하는 것은 오라클 관리의 교과서적인 베스트 프랙티스(Best Practice)라고 하네요. 테이블과 인덱스 저장용 테이블스페이스를 분리할 경우의 잇점을 Gemini에게 물어보니 아래와 같이 친절하게 대답해 줍니다. 정리하기로 결정한 걸 잘...

테이블스페이스 0

[Oracle] 테이블스페이스를 삭제하는 절차

스키마를 삭제하더라도 OS의 디스크 여유 공간이 증가하지 않습니다. 스키마를 물이라고 생각하면 물을 담고 있는 그릇, 즉 테이블스페이스를 삭제해야 비로소 가용 디스크 용량이 증가합니다. 아래는 테이블스페이스를 안전하게 삭제하기 위한 절차입니다.(참고: 스키마 삭제 시 반드시 체크해야...

Audit Trail 0

[Oracle] Audit Trail 기능 사용하기

앞 글에서 스키마 삭제 시 DBA_DEPENDENCIES 뷰를 사용해서 의존성까지 점검했음에도 불구하고 여전히 불안감이 있을 수 있습니다. 저도 불안해서 Oracle의 Audit Trail 기능을 사용해서 의심스러운 스키마를 삭제하기 전에 하나 더 점검하려고 합니다. 참고로 Invalid Object는...

Oracle database DBA scripts 0

[Oracle] 스키마 삭제 시 반드시 체크해야 할 10가지 핵심 항목

회사에서 사용하는 데이터베이스에 Locked and/or Expired Schema가 너무 많아 데이터베이스를 Full Backup받은 이후에 삭제하기로 하였습니다. 데이터베이스의 Migration과 신규 시스템 구축을 반복하면서 서비스가 종료되었거나 이관하지 않은 시스템에서 사용하던 스키마를 정리하지 않고 그대로 사용한 결과, “Rolling...

ORA-00257: archiver error 1

[Oracle] “ORA-00257: archiver error” 발생원인 및 조치방법

오라클 개발용 DB를 사용 중 아래와 같이 “ORA-00257: archiver error”가 발생하여 DB 연결까지 안되는 사태가 발생했습니다. ORA-00257 오류는 오라클 데이터베이스의 아카이브 로그 디렉토리가 가득 차서 더 이상 로그 파일을 생성할 수 없을 때 발생합니다....