카테고리: Oracle DB Admin

Oracle Merge 문

테이블에 데이터가 이미 존재하면 업데이트 하고, 존재하지 않으면 입력을 해야 하는 경우가 종종 있습니다. 오라클에서 이런 작업을 한번에 할 수 있는 쿼리가 MERGE INTO 문 입니다. 현실적인 예는 아니지만 간단하게…

Oracle ASH 를 이용한 무료 Tool

https://timurakhmadeev.wordpress.com/2010/02/18/ash-viewer/ http://sourceforge.net/projects/ashv/   If you’re running a version of Oracle older than 10g (where v$active_session_history appeared), or if you’re not using Enterprise Edition, or if you just don’t want to pay for…

Hash Join 관련 Parameter

  1. HASH_JOIN_ENABLED Hash Join이 가능하도록 하기 위해서는 다음 방법 중의 하나를 사용한다 . init.ora 화일에 이 값을 TRUE 로 지정한다. ALTER SESSION SET HASH_JOIN_ENABLED = TRUE 로 지정 한다.…

Oracle Query Optimizer Parameter

  Oracle Query Optimizer  Parameter   1. optimizer_max_permutations optimizer_max_permutations      integer     2000 : 옵티마이저가 실행계획을 수립할 때 플랜의 경우의 수 내에서 실행계획을 수립하게 된다. 이러 한 경우 플랜이 훨씬 좋은 경우가…

Oracle ASM asm_diskstring 파라미터

asm_diskstring의 기본값은 플랫폼마다 다릅니다. Queries On V$Asm_diskgroup Are Taking Long Time (문서 ID 1552549.1) 문서에는 AIX의 기본값이 “/dev/*”라고 되어있는데요. 다음 문서에 나와 있습니다. Default Disk Discovery Path by Platform (문서…

LISTAGG Function 사용법

  1 목적 점차적으로 10g 에서 11g로 버전업이 되고 있는 시장에서 Oracle 11g에서 새롭게 소개된 기능을 살펴보고자 한다. SQL문을 사용하다보면 컬럼별로 가로로 정리해야 할때가 있다 10g 버전에서 사용하던 SYS_CONNECT_BY_PATH 함수를…

Oracle Gateway 이기종 DB Link

  1             Gateway 개요 n         이기종 Database 간의 통신을 위해서 오라클에서 제공하는 제품이다. n         이기종 시스템 간의 SQL 변환, 데이터의 원활한 상호 운영성을 제공한다 n         Oracle 9i 버전부터 CD에 포함되어…

Toad(토드)에서 CLOB 타입 보기

Toad에서 clob 타입의 컬럼 값을 볼때 간혹 아래 그림과 같이 보일때가 있습니다. 즉, 데이터가 보이지 않고 clob 타입이라는 것만 보여주게 되는데 옵션을 설정하면 해당 컬럼의 값을 볼 수 있다. 토드의 옵션창에서…

Oracle Log 관리 방법

다음의 내용들은 개인적인 권장하는 사항들이다. 오라클 10g의 경우 엔진 설치를 위한 디렉토리 공간을 20GB 이상 주는 것을 권장한다. 오라클의 adump, bdump, udump, 리스너 로그, 아카이브 로그 등을 백업할 수 있으면…

Oracle DCD (Dead Connection Detection) 설정

DCD(Dead Connection Detection)설정  1. Client의 user process가 비정상적으로 종료되었을 경우, Oracle Server Process는 dead connection을 detection하지 않기 때문에, 세션이 그대로 남아있을 수 있다. 2. Dead Connection Detection을 설정하여, 10분(권장값)내에 probe packet에…

oradim

  <oradim 사용법>   ※ Unix에서의 수동설치시에는 이 명령을 사용하지 않고 Windows 환경에서만 사용.   DBCA(Database Configuration Assistant)를 이용한 Oracle 자동설치가 아닌 윈도우 cmd창에서 수동설치를 할 경우에 Oradim Utility를 사용하게 된다.…

ORACLE DB 기동 / 중지

Oracle Data Base Startup Oracle Startup은 내부적으로 3개의 과정으로 나누어 실행된다. 각각의 과정에서 작업되는 내용 및 사용되는 file은 Backup이나 Recovery시 꼭 필요한 부분이라고 할 수 있다. SQL> startup     Oracle instance…

SYSAUX 테이블 스페이스

SYSAUX Tablespace SYSAUX Tablespace는 Oracle Database 10g 부터 제시되는 tablespace 개념이다. 많은 데이터베이스 구성 요소들의 Default 저장소로써 SYSAUX tablespace가 사용된다. 즉, SYSAUX tablespace를 사용하는 것이 선택적인 사항이 아니다. SYSTEM tablespace에…

DDL Wait 기능 (oracle 11g)

DDL Wait   DDL wait 기능은 데이터베이스 object에 DDL문장을 수행할 때, 필요한 Exclusive Lock을 얻지 못하는 경우 정해진 시간만큼 대기하는 기능이다. 예를들어, 테이블에 column을 추가할 경우   일반 업무 시간에는…

Oracle Table 압축

지난 10 년 동안 기업에서 다루어지는 고객데이터와 영업활동 및 거래로부터 발생한 데이터는 기하급수적으로 증가해왔다. 최근에는 기업 데이터의 영역이 기존의 정형 데이터에서 비정형 데이터로까지 확대되고 있어서 그 증가의 속도는 더욱 빨라지고…

새로운 통계정보 수집 방식 (oracle 11g)

정확한 통계정보 수집은 Optimal Plan을 생성하기 위한 필수 요건이다. 오라클 DBMS에서는 Cost-Based Opmizer 의 완벽한 기능을 위해 다양한 통계정보 수집방법을 구사할 수 있다. 대표적인 예가 Histogram으로 Skew된 Data에 대한 정확한 통계수집이 가능하다. 10g에서는 통계정보 수집을 자동화 framework을 제공하여 DBA들에게 편의성을 제공하기도 했다. Oracle Database 11g에서는 새로운 통계정보 수집방식을 추가하여 고객의 다향한 Data 특성을 반영하게 되었고 보다 정확한 통계정보를 기반으로 보다 정확한 Optimal Plan의 생성이 가능하게 되었다.   새롭게 추가된 통계정보 수집방식은 “Extended Statistics” 와 “Function-Based Statistics” 이다.   Extended Statistics: 한 테이블 내의 여러 column을 하나의 group으로 묶어 통계정보를 수집하되 column의 상호 연관성까지 파악하여 수집한다. Function-Based Statistics: 특정 column에 적용된 함수를 적용한 결과에 대한 통계정보를 수집한다.   이 장에서는 11g 의 향상된 통계수집 방법을 설명하고 optimizer가 이러한 통계정보를 어떻게 활용하는지를 테스트를 통하여 확인해 보도록 한다.  …

db backup guide

Backup   Database Backup의 중요성   Database Recovery가 가능한 운용 관계형 데이타베이스를 사용하는데 있어 가장 큰 장점 중의 하나는 데이타베이스에 이상 발생시 언제든지 Database Recovery를 수행하여 현재의 상황으로 복구가 가능하다는 점이다. 이러한 복구가 가능하기 위해서는 Database 관리자는 복구가 가능한 상태로 데이타베이스를 운용하여야만 합니다. 예를 들어 사용자가 NO ARCHIVE MODE상태로 운용시는 불행히도 Database를 처음 생성한 시점이나 전체 BACKUP 받은 시점으로 만이 복구가 가능합니다. 또한 BACKUP을 받는다고 할 경우에도 BACKUP을 받는 방법에 따라 현재의 시점까지의 복구가 가능하기도 하지만 그렇지 못한 경우 BACKUP을 받은 시점으로 밖에 복구가 안되는 경우도 있습니다. 일반적인 경우 BACKUP 정책없이 무작정 과다한 양의 BACKUP을 받을 경우 일정 기간이 경과하면 BACKUP에 의미가 희미해 지게 되고 정상적인 작업을 수행하지 않을때,  Backup File이 꼭 필요한 경우 작업 할 수 없는 경우가 발생 할 수도 있습니다. DATABASE 관리자는 BACKUP에 대한 정책을 수립하여 꼭 필요한 DATA를 최소의 양으로 BACKUP을 받고 최소의 시간을 소비 하면서도 항시 복구가 가능한 상태를 유지해야 합니다. DATABASE 관리자는 BACKUP의 중요성을 확실히 인식하고 필요한 시기에 꼭 정해진 방법으로 BACKUP 작업을 수행하여 언제라도 복구가 가능한 시스템의 운용이 필요하겠습니다.     BACKUP의 효율성과 안전성 데이타베이스는 기존의 FILE SYSTEM과는 달리 전체 사용자 OBJECT를 하나의 TABLESPACE로 관리하므로 BACKUP…

TWO-PHASE COMMIT

1. Two-Phase Commit 이란? (1) Two-Phase Commit은 Application Programmer가 별도의 Program없이 Global Database의 Integrity를 보장하는 기법이다. (2) Two-Phase Commit 은 분산 환경 Database (DB link)를 사용하는 경우에 사용된다. 이는 Oracle…

시스템 성능에 큰 영향을 미치는 상위 8개 INIT.ORA 파라미터

다음에 열거된 파리미터는 각각 데이터베이스 튜닝에 영향을 미치는 것들이다. DB_BLOCK_BUFFERSSHARED_POOL_SIZESORT_AREA_SIZEDBWR_IO_SLAVESROLLBACK_SEGMENTSSORT_AREA_RETAINED_SIZEDB_BLOCK_LRU_EXTENDED_STATISTICSSHARED_POOL_RESERVE_SIZE 1. DB_BLOCK_BUFFERS이 파라미터는 모든 버젼의 오라클에서 사용되며, Oracle block 크기를 단위로 지정하게 된다. 이 값은 사용자가 요청하는 데이터를, 메모리 영역에…

REDO LOG FILE 사이즈

보통의 사이트에서 Redo log 크기에 대해 언급할 때마다 너무 커지면 성능 저하가 일어나지 않을까 우려하는 경우를 자주 접하게 됩니다. 그런데 사실 Redo 로그는 커질수록 성능에 유리합니다. 너무 로그 스위치가 자주…

STATSPACK 을 이용한 오라클 DB 성능 트랜드 분석

모든 오라클 데이타베이스를 정밀하게 튜닝하기 위해서는 히스토리컬 데이타 수집 메커니즘이 필요하며, 또 변경사항들이 데이타베이스 성능에 미치는 영향을 보여주는 리포트로 이 데이타를 번역하는 기능이 필요하다. 오라클의 새로운 STATSPACK 유틸리티는 STATSPACK 테이블에…

AWR 은 유료 ? STATSPACK 은 무료 !

STATSPACK (Oracle 8.1.6 이상) STATSPACK 이란 ? Statspack 은 Oracle 8.1.6 부터 Database 성능에 관련된 data를 수집, 가공, 저장하고 이를 report형태로 보여주는 기능을 제공한다. 과거에 제공되었던 UTLBSTAT/UTLESTAT 와 다른 점은…

Oracle 데이터베이스의 통계정보

Oracle Enhanced Statistics Gathering Cost-Based Optimizer(CBO)는 데이터베이스의 통계 정보에 의존합니다. 따라서, CBO가 정확한 실행 계획(Execution Plan)을 생성하도록 하려면, 사용자는 CBO를 사용하기 전에 SQL 문에서 접근하는 모든 테이블, 인덱스, 클러스터 등의…

Flashback Versions Query & Transaction Query

Oracle9i의 Flashback Query를 확장한 내용이 Flashback Versions Query와 Flashback Transaction Query이다. Flashback Versions Query는 Select시 versions between명령을 넣으면 해당 정보의 history 정보가 나온다. Flashback Versions Query와 Flashback Transaction Query는 undo…

Oracle Partition Table 정리

  Version 7 Partitioning은 partition view를 통해 V7.3부터 가능하였다. 이 view는 동일한 구조를 가지는 table의 UNION ALL에 기본을 두었고 column과 type이 동일하고 같은 순서를 가져야 한다. 더욱이 각 table은 partition…

OS 백업 방법 ( HP , IBM )

Oracle 홈, Grid 홈을 패치 하거나 작업자 실수로 유실될 경우를 대비해서 분기,반기에 한번 씩 OS 백업을 권장합니다. 이에 OS 백업 방법을 공유합니다.   # mksysb – User-defined paging spaces and…

DBMS_STATS 사용

DBMS_STATS 사용     개요 Oracle8까지는 테이블, 인덱스에 대한 통계정보를 생성하기 위해 『ANALYZE』 명령만을 사용할 수 있었으나 Oracle8i 부터는 『ANALYZE』 명령 외에『DBMS_STATS』Package를 제공한다. ANALYZE명령을 사용할 경우에는 신규로 생성한 통계정보가 성능저하를…

RMAN의 기본적 지식

RMAN은 독립형 애플리케이션으로 오라클 데이터베이스와 클라이언트 연결 방식을 통해 접속됩니다. 실제 RMAN은 Command Interpreter에 불과하여 유저의 명령을 해독한 후, RPC를 통하여 데이터베이스에게 넘겨줍니다. 실제적인 작업의 처리는 대상 데이터베이스에서 수행하게 됩니다.…

TNSPING으로 접속 TEST하는 방법

TNSPING으로 접속 TEST하는 방법  Windows 95용 SQL*Net을 설치하면 tnsping.exe라는 프로그램이 생긴다. 이 프로그램은 일반적인 TCP/IP 프로그램에서 제공하는 Ping Utility와 유사한 방식으로 DB Server에 Login 여부를 확인할 수 있다. SQL*Net 2.2이상에서만 제공이…

8. PL/SQL 예외처리

8. PL/SQL 예외처리   A. 예외란?   – SELECT 문이 행을 하나만 읽어 들일 것으로 예상했지만 여러 행을 읽어 오류 발생하며 블록이 종료됨 – 위와같이 런타임에 발생하는 오류를 예외라고 한다.…

4. PL/SQL 프로그램의 SQL문

4. PL/SQL 프로그램의 SQL문 (오라클 데이터베이스 서버와 상호작용)   A. PL/SQL의 SQL문 §SELECT 명령을 사용한 DB 행 검색 §DML 명령을 사용한 DB 행 변경 §COMMIT, ROLLBACK, SAVEPOINT 명령을 사용한 TX…

3. PL/SQL 실행문 작성

3. 실행문 작성   A. Lexical Unit §모든 PL/SQL 블록의 기본 구조 §문자, 숫자, 탭, 공백, Return 및 기호를 포함한 문자, 시퀀스 §다음과 같이 분류 §식별자 : v_fname, c_percent §구분자…

2. PL/SQL 변수 선언

2. PL/SQL 변수 선언 A. 변수 사용 및 처리 §Use §Data 의 임시 저장 영역 §저장된 값 조작 §재사용성 §Handling §선언 섹션에서 선언 및 초기화(optionally) §실행 섹션에서 사용되고 새 값이…

1. PL/SQL 소개

1. PL/SQL 소개 A.  PL/SQL SQL을 확장한 절차적 언어(Procedural Language) 관계형 DB에서 사용되는 Oracle 표준 데이터 액세스 언어 코드 실행 단위에 블록 구조 제공 쉬운 코드 유지 관리 가능 프로시저…

Datapump – expdp, impdp

 Oracle datapump는 oracle 10g 버전부터 등장한 export/import 의 향상된 유틸리티입니다. 1. Datapump의 장점 -작업 관리의 편이성 : 작업 중지가 가능함.(job의 제어가 가능) -필요한 디스크 공간의 예측 : ESTIMATE 파라미터를 사용하여…

Oracle 저장 구조 – Data Block

  위 그림에서 제일 위에 있는 Block Header는 Cache layer(common)와 Transaction layer(varaible,fixed) 나뉩니다. 위에서 구분한 부분들의 각각 크기를 비교해보겠습니다. SQL> select component, type, description, type_sizefrom v$type_sizewhere component in (‘KCB’,’KTB’); COMPONEN…

Redo Log의 생성원리

 # Redo Log의 생성원리 *Write Log Ahead 실제 데이터를 변경하기 전에 Redo Log에 먼저 기록을 한 후 데이터를 변경합니다. *Log force at Commit Commit 요청이 들어오면 Redo Log File에 저장한…

오라클 시노님(Synonym)

# Synonym 시노님은 오라클 객체(테이블, 뷰, 시퀀스, 프로시저)에 대한 대체이름(Alias)를 말합니다.  Synonym은 실질적으로 그 자체가 Object가 아니라 Object에 대한 직접적인 참조 입니다.   시노님 사용 대상데이터베이스의 투명성을 제공하기 위해서 사용…

오라클 집합쿼리

# 집합쿼리 집합 연산자를 사용시 집합을 구성할 컬러의 데이터 타입이 동일해야 합니다. UNION :합집합 ◈ UNION ALL:공통원소 두번씩 다 포함한 합집합 INTERSECT:교집합 ◈ MINUS:차집합     UNION은 두 테이블의 결합을…

오라클 다중 열 서브쿼리

# 다중 열 서브쿼리 다중 열 서브쿼리란 서브쿼리의 결과값이 두개 이상의 컬럼을 반환하는 서브쿼리 입니다.     서브쿼리가 한번 실행되면서 모든 조건을 검색해서 주 쿼리로 넘겨 줍니다.     ex)…

오라클 그룹 함수

# 그룹함수 그룹 함수란 여러 행 또는 테이블 전체의 행에 대해 함수가 적용되어 하나의 결과값을 가져오는  함수를 말합니다.. GROUP BY절을 이용하여 그룹 당 하나의 결과가 주어지도록 그룹화 할 수 있습니다.  HAVING절을 사용하여…

오라클 보안

권한 (Privilege) GRANT privilege ON objectㅁ TO [user, role, PUBLIC] [WITH GRANT OPTION] SQL> CONN system SQL> GRANT CREATE SESSION TO ora10g;     ROLE GRANT privilege01, privilege02, .. TO…

오라클 제약조건

제약 조건(Constraints)의 정의 테이블에 추가, 변경, 삭제되는 데이터를 제약. 제약 조건의 필요성 데이터의 무결성(Integrity)을 유지하기 위해 사용. 제약 조건의 종류 UNIQUE (UK) : 중복된 값을 허용하지 않음. NOT NULL (NN)…

오라클 트랜잭션(Insert)

트랜잭션: 한 작업의 단위 commit, rollback     데이터 추가 – INSERT INSERT INTO 테이블이름 (칼럼이름1, 칼럼이름2, ..) VALUES (값1, 값2, ..); 예. ‘IT Education’이라는 신규 부서를 부서번호 280으로 부서(department)…

오라클 OSWatcher 수행 방법

  + 시작방법 /opt/oracle.cellos/vldrun -script oswatcher 해당 프로그램 수행시 내부적으로 /opt/oracle.cellos/validations/init.d/oswatcher 파일내에 nohup ./startOSW.sh 15 168 bzip2 3 가 수행됨. 아래와 같이 Option으로 수집주기와 보존기간을 지정하여 실행 /opt/oracle.oswatcher/osw/startOSW.sh $arg1 $arg2…

Select 문장의 실행 원리

# Select 문장의 실행 원리  Parse(구문분석) –> Bind(치환) –> Excute(실행) –> Fetch(인출) (1) Parse (구문 분석 단계)  문법검사 : select, from, where 등의 Keyword를 검사합니다   의미검사 : 위 문법들을 제외한…

오라클 SQL LOADER

SQL*Loader는 외부파일 데이터를 데이터베이스 테이블에 loading 하는 utility입니다. 다양한 데이터의 저장형태를 지원합니다. 이 utility로 아래와 같은 작업을 수행할 수 있습니다. 동일한 loading 세션을 통해 하나이상의 데이터파일 데이터를 loading 할 수…

오라클 Program Global Area(PGA)

PGA PGA는 단일 프로세스(서버나 백그라운드)에 대한 데이터와 제어 정보를 저장하는 메모리 영역입니다. 따라서 PGA를 “프로그램 글로벌 영역” 또는 “프로세스 글로벌 영역” 이라고 합니다. 운영 체제와 구성에 따라 다르지만 사용자 프로세스가…

오라클 System Global Area(SGA)

SGA SGA는 한 오라클의 인스턴스에 대한 데이터와 제어 정보를 가지는 공유 메모리 영역입니다. SGA와 오라클 백그라운드 프로세스가 오라클 인스턴스를 구축합니다. 오라클 인스턴스가 시작될 때 SGA를 할당하고 인스턴스가 종료하면 할당을 해제합니다.…

오라클 스키마 오브젝트

테이블(Table) 데이터 스토리지의 기본 단위로, 행(row)과 열(column)로 저장됩니다. 실제 디스크 공간을 사용하지 않지만 사용자가 지정한 표현식이나 함수에 의해 계산될 수 있는 가상 컬럼(virtual column)을 지정할 수 있습니다. 테이블에 대한 압축…

오라클 데이터베이스 논리적 구조

테이블스페이스(Tablespace) 데이터베이스는 논리적 저장 영역 단위인 테이블스페이스로 나누어집니다. 테이블스페이스는 연관된 논리적 구조를 그룹화합니다. 예를 들어, 테이블스페이스는 특정 관리 작업을 간단히 하기 위해 보통 응용 프로그램의 모든 객체를 그룹화합니다. 데이터베이스는 논리적으로…

오라클 데이터베이스 물리적 구조

데이터파일(datafile) 모든 Oracle 데이터베이스는 하나 이상의 물리적 데이터 파일을 가집니다. 데이터베이스의 데이터 파일은 데이터베이스의 모든 데이터를 가집니다. 테이블이나 인덱스 같은 데이터베이스의 논리적 구조는 데이터베이스를 위해 할당된 데이터 파일에 물리적으로 저장됩니다.…

옵션사용 확인

스탠다드 설치 시 control_management_pack_access 체크 비활성 확인     설치 후 조회 select name, value from v$parameter where name=’control_management_pack_access’ ;     설치 후 옵션 사용 조회 select * from…

Flashback 이란

  Flashback Database Oracle Database 10g 이전까지는 transactional point-in-time recovery를 위해서는 backup용 file과 redo log file을 이용하여 원하는 시간까지 복구를 해야만 했었습니다. 그러나 이 방법은 backup용 file이 오래됐고, archive log가…

Oracle Net 서비스

Oracle Net Service 드라이버 등은 Oracle 서버상에서 실행되는 Oracle RDBMS프로세스와 네트웍의 다른 컴퓨터에서 구동되는 Oracle Tool의 클라이언트 프로세스간의 인터페이스를 제공합니다. 이러한 드라이버들은 Oracle Tool의 인터페이스로부터 SQL문장을 받아서 Oracle 서버로 전송하기…

Client/Server 구조

일반적으로 Application과 데이터베이스는 Client와 Server라는 개념으로 분리되어 관리되며, 물리적으로도 다른 서버에 위치하게 됩니다. Client는 데이터베이스의 정보를 접근하는 application을 수행하게 됩니다. 데이터베이스 서버는 오라클 S/W를 실행하며 데이터베이스 데이터에 대한 동시 접속을…