슬라이드 1 - 빛과소금(http://searcher.tistory.com)

Report
Oracle Database 10g 주요기능
(DBMS 부문)
Oracle Korea / 2004 . 02 . 20
1
목
차
1. Availability
2. Database Diagnostic
3. Performance & Scalability
4. Server Manageability
5. Security
6. Backup & Recovery
7. Information Integration
8. Business Intelligence
9. Application Development
10. Content Management
11. Windows
12. Migration & Upgrade
Oracle Database 10g 주요 기능 (DBMS)
1. Availability
가. Oracle Database 10g 가용성
개요
 Internet은 international한 환경에 다양한 정보 공유를 가능하게 해 주었으며, 이에 따라 고 가용성의 중요성은 더욱 더 커지게 되었습니
다. 작은 비즈니스나 enterprise급 비즈니스나 전세계의 모든 유저들을 대상으로 24시간 서비스 할 수 있습니다. 이러한 환경에서
Oracle 10g DBMS는 인터넷 분야에서 새롭게 등장하는 호스팅 애플리케이션 시장에 최적화된 데이타베이스 플랫폼입니다. Oracle10g
는 서비스 중심의 새로운 마켓플레이스를 위한 엄격한 고품질 서비스 요구사항을 충족시킬 뿐만 아니라 이를 능가하는 성능을 보유하고
있습니다. 투명하고 신속한 성장 클러스터링 성능, 강력하면서도 비용 효율적인 보안 방법, 0%에 가까운 데이타 유실율을 자랑하는 보
호 기능(safeguard), 그리고 실시간 인텔리전스 등을 통해 Oracle 10g는 기업이 차세대 인터넷 시장에 대응할 수 있도록 할 것입니다.
 시스템의 가용성 측면에서 보면, 크게 planned downtime과 unplanned downtime으로 나눌 수 있습니다.이러한 두 가지 측면 모두의
경우, Oracle 10g DBMS는 가장 효과적인 solution을 제공할 수 있습니다. 이 두 가지의 경우에 대해 대략적인 내용을 살펴보고, 주요
기능들에 대해 설명하겠습니다.
Reduction in Unplanned Downtime
 Server Failure
Unplanned Downtime의 가장 자주 생기는 문제는 Server Failure입니다. Server는 hardware failure, power failure, 또는
operating system crash등의 이유에 의해 fail됩니다. 이러한 문제에 대해 Oracle 10g database는 매우 빠른 recovery from
failure가 가능합니다.
Oracle’s Real Application Cluster는 server의 single point failure를 제거함으로써 mission critical application에 가장 높은
레벨의 availability를 제공할 수 있습니다. Oracle의 clustered architecture는 하나 또는 두 개 이상의 각각의 server가 하나의
database에 각각 작업을 할 수 있기 때문에, 한쪽 server에 문제가 생기면 해당 서버의 user들은 자동적으로 나머지 서버에 fail
over됩니다. 이러한 failover는 수초간에 이루어 지며, database의 recovery가 진행되는 동안 user는 평소와 똑같이 원하는 작
업을 진행할 수 있습니다.
3
Oracle Database 10g 주요 기능 (DBMS)
1. Availability
나. 다운타임의 종류와 원인
시스템의 가용성 측면에서 보면, 크게 planned downtime과 unplanned downtime으로 나눌 수 있습니다.이러한 두 가지 측
면 모두의 경우, Oracle Database 10g 는 가장 효과적인 solution을 제공할 수 있습니다. 이 두 가지의 경우에 대해 대략적
인 원인을 살펴보고 해결책을 제시합니다.
계획에 없는 다운타임
 서버 장애, 데이타 장애, 사이트 장애 및 인적 오류 등으로 인한 예기치 않은 다운타임은 오늘날 기업에게 너무나 흔히 발생하는 문제이
다. Disaster Recovery Journal에 따르면 홍수나 화재로 인한 재난이 실제로 발생하고 이 같은 재난 상황에 직면할 경우 다운타임 기간
이 길어질 가능성이 훨씬 커지기는 하지만, 일반적으로 예기치 않은 다운타임의 3% 정도만을 차지하는 것으로 나타났다. 인적 오류 및
시스템 하드 웨어 관련 장애는 각각 계획에 없는 다운타임의 36%와 49%를 차지하여 장애 원인으로서의 가능성이 훨씬 높았다.
 Server (Computer) Failures
Unplanned Downtime의 가장 자주 생기는 문제는 Server Failure입니다. Server는 hardware failure, power failure, 또는
operating system crash등의 이유에 의해 fail됩니다.
 Data Failures
Data failure는 주요한 전사적 정보의 분실, 손상되거나 변질된 경우입니다. 이러한 data failure의 원인은
Server failure보다 더 복잡하고 포착하기 어려운 일이며 the storage hardware, human error, corruption,
Site failure등이 원인으로 발생할 수 있습니다.
4
Oracle Database 10g 주요 기능 (DBMS)
1. Availability
나. 다운타임의 종류와 원인
계획된 다운타임
 계획되지 않은 다운타임은 그 양적 크기를 정확히 알 수 없지만 계획된 다운타임은 IT 부서와 서비스 공급 업체가 보다 정확히 통제할
수 있다. 예를 들어 업그레이드나 데이타 및 인덱스 재구성과 같은 계획된 다운타임은 모든 기업에서 발생하는 작업이다. 일부 기업들은
정기적인 유지 관리 작업을 미리 계획하여 수행하며 또 다른 일부 기업들은 필요할 때나 요구가 있을 때 유지 관리 작업을 수행한다. 계
획된 다운타임 또한 여전히 다운타임이며 따라서 비용을 초래한다. 문제는 이 계획된 다운타임을 아주 최소한의 수준으로 유지하는 데
있다.
 모든 service는 원하는 시간(그것이 24 hours per day라 할지라도)동안 정상적인 service를 하기를 원합니다. 그러나 대부분의 service
는 service를 함에 따라 data volume은 커지고 지속적인 performance문제와 I/O bottleneck이 생기기 마련입니다. 이에 대해 숙련된
DBA들은 항상 계획된 작업 하에 downtime을 만들고 있습니다. 이러한 planned downtime 또한, Oracle 10g database의 새로운 기능
으로 최소한으로 만들 수 있습니다.
 기존의 schema updates, data reorganization, index reorganization과 같은 maintenance operation이 이제는 운영 중에 작업이 가능
합니다. 또한 database space에 대한 monitor와 manage를 자동적으로 해주기 때문에 지속적인 문제에 대한 follow up이 가능합니다.
예를 들어 fragmentation이 많이 생겨 일정량 이상에 도달하면, de-fragmentation이 자동적으로 수행 됩니다. 또한 Oracle 10g Real
Application Cluster를 통해 database의 patch set을 upgrade할 시에 한 쪽씩 따로 해줄 수 있기 때문에 downtime이 전혀 필요 없습니
다. 또한 Oracle’s Metalink를 통해 자동적으로 patch에 대한 정보가 notified되어 patch를 지속적으로 해줄 수 있습니다.
5
Oracle Database 10g 주요 기능 (DBMS)
1. Availability
다. 가용성을 위한 Oracle Database 10g 일반기능
최소 I/O 복구 - 두 단계 인스턴스 또는 크래쉬 복구
 Oracle Database 10g에서는 예기치 않은 Down 시간을 최소화하기 위해 복구 시간을 최소화하는 메커니즘을 제공하며, 이런 기능은
I/O 연산을 줄이기 위해 다음과 같은 내부 메커니즘을 제공합니다. 어떤 블록이 디스크에 성공적으로 쓰여졌는가에 대한 추가적인 정보
를 이용하여 복구시에 이런 블록들에 대한 복구를 하지 않으므로써 전체 복구 시간을 최소화합니다. 즉, 먼저 복구를 필요로하는 레코드
를 분석하고, 이들 레코들을 포함하는 블럭들만을 처리함으로써 복구 시간을 최소화하고 시스템의 Down 시간을 줄입니다.
6
Oracle Database 10g 주요 기능 (DBMS)
1. Availability
다. 가용성을 위한 Oracle Database 10g 일반기능
Fast-Start 기반 복구 시간 설정
• 많은 서비스 단계에 있어서 중요한 것 중의 하나가 평균 복구 시간인데, Oracle9i부터 DBA는 데이터베이스를 복구하는데 걸리는 예상
시간을 제약함으로써 이러한 명시된 목표 시간을 충족하기 위해 Oracle10g 데이터베이스는 자동으로 내부 설정에 필요한 정보에 대해
적절한 값을 결정합니다.
• 복구 시간을 결정하는 것은 로그 파일을 읽는 시간과 복구된 데이터 블록을 처리하는 시간이며, Oracel 9i에서는 이러한 시간을
제한시킬 수 있는 FAST_START_MTTR_TARGET 파라미터를 DBA가 설정할 수 있는 환경을 제공함으로데이터베이스 복구 시간에
대한 정확성을 제공합니다. 복구를 수행하면서 Oracle10g 데이터베이스는 체크 포인터 주소에서부터 변경된 것을 재실행하게 됩니다.
따라서, 이 체크 포인트 위치에서부터 복구를 하므로 복구 시간을 줄일 수 있습니다.
buffer
cache
7
shared
pool
redo
log
buffer
SGA
Oracle Database 10g 주요 기능 (DBMS)
1. Availability
라. 서버 장애 대처 방안 - RAC
Oracle Real Application Clusters
장애 복구 시간
 오라클 RAC을 사용하면 장애 복구 시간이 20-30초 혹은 수초면 됩니다. Cold standby인 경우는 20-30분 혹은 그 이상이 걸릴 수도
있습니다. Cold standby 구성에서 primary 서버에 장애가 발생하면, 스토리지는 primary 서버에서 dismount되고, standby 서버에
mount되어야 합니다. 그리고 모든 사용자는 standby 서버로 재접속을 해야만 합니다. 그리고 마지막으로 standby 서버의 메모리 내
버퍼 캐쉬(buffer cache)에 자주 액세스되는 데이터가 올라와야 제대로된 성능을 유지할 수 있습니다. 이러한 시간때문에 전체적인 서
비스 장애 복구 시간은 길어질 수 밖에 없는 것입니다.
 오라클 RAC은 위의 복구 단계가 필요없습니다. 모든 클러스터 노드는 항상 모든 스토리지에 연결되어 있어서 dismount/remount와 같
은 작업이 일어날 이유가 없습니다. 살아 있는 노드에 접속되어 있는 사용자는 그대로 해당 노드들을 사용하면 되고, 단지 장애가 방생
된 노드에 접속되어 있던 사용자만 재접속하면 됩니다. 이 부분에 있어서, 오라클은 사용자들을 백업 노드에 미리 접속을 시키는 기술
을 제공하는데, 이 경우 재접속의 지연 시간도 제거할 수 있습니다. 마지막으로 살아 있는 노드들의 버퍼 캐쉬는 자주 액세스되는 데이
터를 캐슁하고 있으므로, 곧바로 고성능에 도달하게 되는 것입니다.
저비용
 Cold standby 혹은 active/passive의 또다른 큰 단점은 비용이 많이 든다는 것입니다. 가용성을 위해 하드웨어에 두 배의 비용을 지불
해야 하고, 평소에는 standby 시스템을 거의 사용하지 않습니다. 오라클 RAC은 active/active 환경이기 때문에 필요한 업무부하를 처
리할 수 있는 만큼의 하드웨어만 구입하면 됩니다. 만일 한 노드에 장애가 발생할 경우에 요구되는 서비스 레벨을 유지해야 한다면 조
그마한 여유 하드웨어를 준비할 수도 있습니다. 예를 들어 8 CPU면 처리될 수 있는 작업에 대해서, 2 CPU 짜리 서버 5대를 클러스터
로 구성하면, 한 노드에 장애가 발생하더라도 해당 작업에 필요한 프로세싱 파워를 가지게 되는 것입니다. 물론 commodity 서버는 커
다란 standby SMP 서버에 비해 훨씬 저렴합니다.
8
Oracle Database 10g 주요 기능 (DBMS)
1. Availability
마. 데이타 장애 대처 방안
Dramatic Advances
in Ease of Use
Data Guard
Flash
Recovery
Area
Flashback
Human Error
Protection
ASM Mirroring
Storage Failure
Protection
9
Corruption
Protection
Site Failure
Protection
Combine the
Features to
Achieve Any Level
of Data Protection
Oracle Database 10g 주요 기능 (DBMS)
1. Availability
마. 데이타 장애 대처 방안 - ASM
ASM Mirroring
 데이터베이스 수준의 software Mirroring을 제공합니다.
 아래와 같은 3가지 방법을 제공합니다.
External : Hardware mirroring을 사용하고자 할 때
Normal(2-way) : 특정 ASM Disk group이 적어도 2개 이상의 Failure Group을 갖게 되는 구성
High(3-way) : 특정 ASM Disk group이 적어도 3개 이상의 Failure Group을 갖게 되는 구성
 ASM Disk의 EXTENT에 대한 복사본이 다른 Failure Group에 저장/유지 됩니다. 이러한 이유로 기존 Hardware Mirroring에서 사용되었
던 Hot Spare 디스크는 필요치 않으며, 복사본 EXTENT를 유지할 수 있는 디스크 추가용량이 있으면 되는 것입니다.
10
Oracle Database 10g 주요 기능 (DBMS)
마. 데이타 장애 대처 방안 - Flashback
Flashback Database
 Oracle Database 10g 이전까지는 transactional pointin-time recovery를 위해서는 backup용 file과 redo log
file을 이용하여 원하는 시간까지의 복구를 하였었습니
다. 그러나 이 방법은 backup용 file이 오래된 것이며,
archive log가 많이 쌓여 있을 때는 많은 시간이 소요된
다. Oracle 10g부터는 flashback database를 이용하여
좀 더 빠른 recovery가 가능하게 되었습니다.
 Flashback database 의 사 용 용 도 는 logical data
corruption 이 나 user error시 유 용합 니다 . (Physical
data corruption은 H/W 문제이기 때문에 Flashback
database 로 recovery 불 가 능 합 니 다 .) Flashback
Database의 장점은 기존의 traditional point-in-time
recovery에 비해 매우 빠른 recovery가 가능하다는 것
입니다. 이러한 빠른 성능을 낼 수 있는 이유는
flashback database는 database의 크기에 비례해서
recovery시간이 늘어나는 것이 아니라, 변경된 data의
양에 비례해서 recovery시간이 걸린다는 점입니다.
Flashback Database를 위해 필요한 요소
 Database의 ARCHIVELOG mode 운영
 Flashback log를 위한 flash recovery area
 Real Application Clusters databases 는
Flash
Recovery Area를 clustered file system이나 ASM에 저
장 공간을 마련해야 합니다.
11
1. Availability
Oracle Database 10g 주요 기능 (DBMS)
1. Availability
마. 데이타 장애 대처 방안 - Flashback
Flashback Drop & Flashback Table
 이전 version까지의 Oracle Database는 drop된 object들에 대해서는, 일반적인 SQL query로는 되살릴 수 없었습니다. 그러나,
Oracle 10g부터는 recycle bin(휴지통)이 있어서 어떤 table을 drop하면, drop된 table과 해당 table과 관계되는 object들을 되살릴 수
있게 되었습니다.
12
Oracle Database 10g 주요 기능 (DBMS)
1. Availability
마. 데이타 장애 대처 방안 - Flashback
Flashback Version Query
 Oracle 9i의 Flashback Query를 확장한 내용이 Flashback Versions Query와 Flashback Transaction Query입니다. Flashback
Versions Query는 Select시 versions between명령을 넣으면 해당 정보의 history 정보가 아래의 그림과 같이 undo tablespace를 통해
나타나게 됩니다.
13
Oracle Database 10g 주요 기능 (DBMS)
1. Availability
마. 데이타 장애 대처 방안 - Flashback
Flashback Transaction Query
 Flashback Transaction Query는 아래의 그림과 같이 user의 실수로 잘못된 query를 수행하였을 경우, log miner보다 빠른 처리를 통
해 해당 query를 undo할 수 있기 때문에 human error에 대한 복구를 더욱 손쉽게 할 수 있습니다.
14
Oracle Database 10g 주요 기능 (DBMS)
1. Availability
마. 데이타 장애 대처 방안 - LogMinir
Logminir
리두 로그의 정보를 해석하고 분석할 수 있는 툴로서 데이터베이스의 논리적 결함을 진단하고, 상세한 복구를 수행할 수
있는 기능을 제공합니다.
Oracle 리두 스트림에 대한 관계형 액세스 시 기반 구조를 제 공 하 고 , 리두 스트림은 사용자에게 뷰(v$logmnr_contents)
의 형태로 표시가 되는데, 다음은 리두 스트림이 포함하고 있는 것을 나열한 것입니다.
• 데이타베이스에 작성된 변경 사항들의 기록
• 유형 (삽입, 업데이트, 삭제, DDL 또는 인덱스 작업)
• 그와 같은 변경이 발생하는 SCN (System Change Number)
• 변경을 포함하는 트랜잭션 식별
• 특정 트랜잭션이 커밋되는 SCN
• 변경된 객체의 테이블 및 스키마 명칭
• DML 또는 DDL 문을 발생시킨 사용자
• 리두 레코드들을 생성하는“동등한”SQL을 나타낼 수 있는 재생성된 SQL 문
• 변경 사항의 실행 취소를 위해 필요한 SQL을 제공하는 재생성된 SQL 문 (SQL_UNDO 열)
• Longs, Multi-Byte CLOBs, NCLOBs 등 다양한 데이터 타입을 지원합니다.
• Overflow나 LOB 세그먼트가 없는 IOT를 지원합니다.
• 자동화된 LogMinir 구성을 제공합니다.
15
Oracle Database 10g 주요 기능 (DBMS)
1. Availability
마. 데이타 장애 대처 방안 – Data Guard
Oracle Database 10g에서 제공하는 Data Guard는 서버 머신의 다운 또는 자연 재해와 같은 사고 때문에 데이터베이스의
데이터를 접근 하지 못하는 경우 대비하여 데이터베이스의 계속적인 서비스를 가능하게 하는 환경을 지원하기 위한
기능으로 데이터베이스의 고가용성과 장애 극복을 위해 다음과 같은 기능을 제공합니다.
 일관성 있는 관리 인터페이스
 물리적 스탠바이 데이터베이스를 자동으로 생성
Physical Standby
Database
 Failover와 Switchover 기능
 물리적 결함에 대한 보호망
 로그 전송 서비스에 대한 설정
Sync or Async
Redo Shipping
Backup
Production
Database
Redo Apply
DIGITAL DATA STORAGE
DIGITAL DATA STORAGE
Network
Broker
 로그 적용 서비스에 대한 설정
Optional
Delay
 모니터링, 경고와 제어 메커니즘
 논리적 스탠바이 데이터베이스 지원
Transform
Redo to SQL
Optional
Delay
16
Logical Standby
Database
Open for
Reports
SQL
Apply
Additional
Indexes & MVs
Oracle Database 10g 주요 기능 (DBMS)
1. Availability
마. 데이타 장애 대처 방안 – Data Guard
데이터 가드 REDO 적용
• Production Database 에서 생성된 Redo 데이터를 Standby Database에 전송하고 전송된 데이터를 복구 모드에 있는 대기
데이터베이스에 적용합니다.
• 물리적 대기 데이터베이스는 읽기 전용으로 사용할 수 있으나 Redo을 적용과 동시에 사용할 수는 없다.
Data Guard Broker
Physical Standby
Database
Primary
Database
Optional
Delay
Backup
Network
Sync or Async
Redo Shipping
17
DIGITAL DAT A ST ORAGE
Redo Apply
Oracle Database 10g 주요 기능 (DBMS)
1. Availability
마. 데이타 장애 대처 방안 – Data Guard
데이터 가드 SQL 적용
• SQL 적용 모드에서의 데이터 가드는 아카이브 로그로 부터 변경된 내용을 SQL 트랜잭션으로 생성하여 이를 대기 데이터베이스에
적용한다. SQL을 적용하기 때문에 대기 데이터베이스는 정성적인 사용이 가능하며 Production 데이터베이스와 다른 물리적인 구조를
가질 수 있다. 이를 논리적 대기 데이터베이스라 부른다.
• Primary 사이트의 정지 없이 논리적 스탠바이의 인스턴트를 지원합니다.
Additional
Indexes &
Materialized Views
Data Guard Broker
Primary
Database
Optional
Delay
Logical Standby
Database
Continuously
Open for Reports
Network
Sync or Async
Redo Shipping
18
Transform Redo
to SQL and Apply
Oracle Database 10g 주요 기능 (DBMS)
1. Availability
마. 데이타 장애 대처 방안 – Data Guard
ZERO Data Loss Log 전송
• 로그 전송 서비스(Log Transport Services)를 통하여 Production Database에서 변경된 내용을 Redo를 생성할 때 각 대기 사이트와
동시에 리두 내용을 전송하여 줌으로써 데이터의 손실을 막고 재해에 대한 완벽한 데이터 보호합니다.
역할(ROLE) 관리 서비스
 Oracle Database 10g는 기본 데이터베이스와 대기 데이터베이스는 계획되지 않은 상황에서 그 역할을 바꾸는 Failover와 계획된
상황에서 역할을 바꾸는 Switchover를 지원하며, 이와 같은 역할을 동적으로 바꾸는 환경을 제공합니다.
데이터 가드 중계자 (Data Guard Broker)
 데이터 가드 환경을 관리하는 기능으로 데이터 가드 중계자를 제공함으로써 대기 데이터베이스에 대한 구성과 로그 전송/적용
서비스에 대한 모니터링과 제어 및 자동화를 관리하며, Failover와 Switchover의 대한 작업을 수행 할 수 있는 환경을 제공합니다.
 Oracle Real Application Clusters를 지원합니다.
19
Oracle Database 10g 주요 기능 (DBMS)
1. Availability
마. 데이타 장애 대처 방안 – Data Guard
REAL TIME APPLY AND FLASHBACK DATABASE
Oracle Database 10g의 데이터 카드에서는 FLASHBACK 데이터베이스를 이용하여 실시간 적용과 통합을 지원합니다.
실시간 (Real Time) 기능은 로그 적용 서비스(Log Apply Services)가 Primary 데이터베이스로 부터 리두 데이터를 받자
마자 Standby 데이터베이스의 Current 로그의 아카이브 로그 생성의 기다림 없이 바로 적용을 할 수 있습니다.
이러한 기능은 빠른 역할 변경 (switchover, failover)을 가능하게 하여 비계획/계획된 다운타임을 최소화 시켜줍니다.
Production
Database
Transaction
Shipping
(Real Time Apply)
Reporting
On Real Time
Data
Standby
Database
Some Nodes
Used for
Other
Computing
No
Delay
Flashback
Log
20
Flashback
Log
Oracle Database 10g 주요 기능 (DBMS)
1. Availability
바. 데이타 변경 대처 방안 – Online Reorganization
인터넷 비즈니스는 항상 응용 시스템이 항상 가용해야 되며, 계획된 유지보수를 할 경우라도 데이터베이스에 대한
접근은 계속되어야 합니다. 또한, 데이터가 데이터베이스에 삽입과 삭제됨에 따라 객체는 조각나게 되므로 때때로 객체
저장 속성은 대용량 데이터를 처리하기 위해서 변경되어야 할 필요가 있습니다.
온라인 스키마 재정의
 add, modify, drop column
온라인 인덱스 재구성
 create, recreate, replace
온라인 테이블 재구성
온라인 재구성 시, Update 및 Query 지속
Source
Table
Copy
Table
Transform
Result
Table
GUI
interface
to make it
Simple
Update
Tracking
21
Store
Updates
Transform
Updates
Oracle Database 10g 주요 기능 (DBMS)
1. Availability
바. 데이타 변경 대처 방안 – Partitioning
파티션된 데이터베이스 오브젝트는 파티션 독립성을 제공합니다. 이러한 독립성의 특징은 고 가용성 전략의 중요한 부분
이 될 수 있습니다. 예를 들면 파티션된 테이블의 하나의 파티션이 사용할 수 없게 된다 하더라도 다른 파티션들은 온라인
이나 가용한 상태로 남아 있게 됩니다. 사용할 수 없는 파티션에 액세스하지 않는 애플리케이션의 지속적인 질의와 트랜
잭션을 지속적으로 수행하게 되고 데이터베이스 운용 작업도 성공적으로 수행 가능합니다.
데이터베이스 관리자는 각 파티션을 각기 다른 테이블 스페이스에 저장할 수 있습니다. 이는 테이블이 저장되어 있는 파
티션들은 각기 독립적이기 때문에 각 개개의 파티션에 대해 백업과 복구 작업을 수행할 수 있습니다.
더구나 파티션닝은 계획된 다운타임을 감소 시켜줍니다. 대용량 데이터베이스 오브젝트에 대한 완벽한 유지 보수 작업을
파티셔닝을 통하여 빠른 성능을 얻을 수 있습니다. 대용량 데이터베이스 오브젝트에 대한 대부분의 유지보수 작업은 온
라인 운영과 같은 작업을 의미합니다. 따라서 다운 타임을 위한 필요성을 완벽하게 완화시켜 줍니다. 파티셔닝은 온라인/
오프라인 유지보수 작업의 빠른 성능을 제공합니다.
월별로
데이터
분리 저장
Orders
Table
22
이전 달의
데이터 만
읽기 전용
Oracle Database 10g 주요 기능 (DBMS)
1. Availability
사. 시스템 변경 대처 방안 – Rolling Patch Upgrade Using RAC
Clients
A
B
1
Clients
A
B
B
Patch
2
Initial RAC Configuration Clients on A, Patch B
A
B
4
Upgrade Complete
23
Patch A
A
Oracle
Patch
Upgrades
Operating
System
Upgrades
B
3
Clients on B, Patch A
Hardware
Upgrades
Oracle Database 10g 주요 기능 (DBMS)
1. Availability
사. 시스템 변경 대처 방안 – Rolling Release Upgrade Using DG
Logs
Ship
Logs
Queue
Clients
Clients
1
Patch Set
Upgrades
2
Version X
Version X
Initial SQL Apply Config
X
X+1
Upgrade node B to X+1
Logs
Ship
Logs
Ship
Clients
3
X+1
X+1
Switch to B, upgrade A
X
Run mixed to test
Major
Release
Upgrades
Cluster
Software &
Hardware
Upgrades
Clients
4
24
Upgrade
X+1
Oracle Database 10g 주요 기능 (DBMS)
1. Availability
사. 시스템 변경 대처 방안 – Dynamic Resource Provisioning
CPU
 SMP장비에 CPU의 동적 증설 및 제거
Momory
 Shared Memory의 동적 할당
 사용자 메모리의 동적 관리(On Demand)
Disk
 스토리지 환경의 자동 조정
 데이터화일 이동
 디스크 동적 추가/삭제
Cluster Node
 클러스터 노드들의 동정 추가 및 제거
25
Oracle Database 10g 주요 기능 (DBMS)
2. Database Diagnostic
가. Oracle Database 10g 성능 진단 개요
Oracle database 10g 성능 진단
 Database의 진단이라 함은, database server가 얼마나 자신의 성능을 내고 있는지, 어떤 곳에 문제는 없는지 살펴보는 것을 의미합니
다. Oracle Database 10g 는 이전 9i 버전에 비해 매우 향상된 자가 진단 기능을 제공합니다. 이러한 자동화된 자가 진단 기능은 문제시
될만한 점을 미리 알려주어 사전에 문제를 예방할 수 있으며, 최소한의 인력으로 최대의 효과를 만들 수 있습니다.
 Oracle Database 10g 부터는 Self-Managing 개념이 적용이 되었습니다. 그 중에서 Performance 와 관련된 Self-Managing 기능을
살펴보겠습니다.
26
Oracle Database 10g 주요 기능 (DBMS)
2. Database Diagnostic
나. 성능 진단의 어려움
10g 이전의 성능 진단 상의 어려웠던 점
Oracle 9i까지의 database 성능 진단에는 다음과 같은 어려운 점이 있었습니다.
 문제 진단을 위한 작업(script실행)이 오히려 DB 에 부하를 주었습니다. 최근에는 SGA 영역을 직접 access 하여 모니터링 하지만 이
것 역시 CPU 에 큰 부담을 줍니다.
경합 발생(latch 및 디스크 I/O)
자원의 오버헤드 발생
잠재적 장애 시간 발생
작업 요청 없이 모니터링 불가
매우 많은 자원 사용(1%이상)
자기적으로 데이터를 읽어오는 “Pull-based” 메커니즘 사용
SGA 상에서 직접 필요한 데이타를 읽어오는 방식 또한 시스템의 CPU를 사용
 문제를 진단하기가 매우 어려웠습니다. 많은 기술과 정보가 필요해서 전문 지식을 가진 사람이 할 수 있는 부분이었습니다.
 문제를 미리 막는 proactive 한 monitoring 이 아니었습니다.
 모니터링 시스템 환경 구성이 복잡하므로 커스터마이징이 필요
모니터링을 위한 많은 스크립트
스키마 및 오브젝트 생성
유연한 전개방식 결여
확장성의 결여
 문제점의 감지부터 분석 및 해결까지의 집약된 기능 구현의 결여
이러한 점을 Oracle Database 10g는 극복하였습니다.
27
Oracle Database 10g 주요 기능 (DBMS)
2. Database Diagnostic
다. Oracle Database 10g 성능 진단 특징
Oracle Database 10g는 기존 버전과 다르게 database를 진단하는 새로운 방법들을 보여줍니다.
Proactive monitoring
 Automatic Database Diagnostic Monitor (ADDM)
이 ADDM은 Oracle database tuning을 위한 가장 중요한 요소입니다. ADDM은 Oracle database내의 bottleneck을 자동적으로 감지합
니다. 또한 여러 다른 관리 요소들과 작용하여 이러한 bottleneck을 해결하기 위한 제안들을 만듭니다.
 Server generated alerts
이것은 Oracle database가 자동적으로 상황들을 알려주는 부분입니다. Oracle database내에 있는 문제점들과 반응하여 가능한 복구
방법들을 알려줍니다.
Reactive monitoring
 Oracle Database 10g는 강력한 새로운 data 자료와 성능 보고 관리를 가지게 되었습니다. Enterprise Manager는 모든 가능한 data 자
료를 근거로 여러 가지 문제들을 잘 정리하여 제공하여 줍니다. 이러한 Enterprise Manager는 drill down 방식으로 각각의 문제들에 대
해 원인을 알아볼 수 있습니다.
28
Oracle Database 10g 주요 기능 (DBMS)
2. Database Diagnostic
다. Oracle Database 10g 성능 진단 특징
Oracle Database 10g 성능 진단에 대한 여러 가지 새로운 개념들
 MMON : 새로 소개되는 background process 로서 주기적으로 통계치를 수집하거나 다른 component 를 기동 시키는 역할을 합니다.
 AWR : Automatic Workload Repository 이며 각종 통계값 및 분석 정보를 보관합니다.
 ADDM : Automatic Database Diagnostic Monitor 로서 AWR 에 들어 있는 각종 정보를 이용하여 문제가 되고 있는 근본 원인을 분석하
며 가능한 경우 recommend 까지도 해 줍니다.
 ADVISOR : SQL Access Advisor, SQL Tuning Advisor, Memory Advisor, Undo Advisor 등이 있어서 쉽게 Tuning 및 Managing 을 할
수 있도록 말 그대로 advise 해줍니다.
 ASH : Active Session History 이며 매초마다 active session 을 sampling 하여 memory 에 가지고 있다가 MMON 이 10분마다 AWR
에 write 합니다.
 SERVER GENERATED ALERTS : MMON 이 1분마다 현재 시스템의 통계치와 임계치를 비교하여 임계치를 넘은 경우 alert 를 발생시킵
니다. 이 alert 는 ALERT_QUEUE 라는 advanced queue 에 저장이 되어 OEM, 3rd party tool 이 이 queue 에 들어 있는 alert 를 이용하
여 mail, paging 등을 할 수 있게 합니다.
ADDM
Tasks
Alerts
AWR
29
Advisors
Oracle Database 10g 주요 기능 (DBMS)
2. Database Diagnostic
다. Oracle Database 10g 성능 진단 특징
Oracle Database 10g 성능 진단 특징
Oracle Database 10g 는 기존 9i의 scripts를 실행하여 평가하는 방식과는
달리 database 자체 내에서 필요한 정보를 저장하고, 필요한 component
및 application에서 이 정보를 이용하여 분석하고 처리할 수 있도록 합니다.
이러한 동작 구조는 다음과 같은 특징을 가지고 있습니다.
 MMON 이라는 background process 가 주기적으로 직접 SGA 에서 훨씬
다양해진 정보를 Automatic Workload Repository 에 저장을 하며
Automatic Database Diagnostic Monitor(ADDM)을 기동 시킵니다.
 ADDM 은 AWR 에 있는 바로 전 snapshot 과 그리고 지금 발생한
snapshot 을 서로 비교( statspack 과 유사한 동작임) 하여 문제점등을 분
석하고 가능한 경우 recommend 까지 하게 되는데 이 내용을 다시 AWR
에 기록합니다.
 MMON 은 또한 현재 DB 의 각종 시스템 통계값과 user 가 설정 또는
default 로 설정된 임계치와 서로 비교를 하여 현재의 값이 임계치보다 큰
경우 ALERT 를 하게 된다. 이 때 이 ALELRT 내용은 Advanced Queue 에
들어가게 되고 이것을 subscribe 하여 user 에게 mail, page 하는 것은
OEM 또는 3rd party tool 이 됩니다.
 OEM 을 통하여 ADDM 의 분석 결과, Alert 등을 쉽게 볼 수 있으며, 이를
바탕으로 각종 Advisor 등을 이용하여 tuning 및 관리 작업을 할 수 있습니
다. (SQL PLUS 에서도 Text 형태로 볼 수 있습니다.)
30
Advisory
Application & SQL
Infrastructure
Management
Server-generated
Alert
Storage
System
Resource
Management
Infrastructure
Management
Automatic Maintenance
Task Infrastructure
Space
Backup & Recovery
ManagementDatabaseManagement
Managem
AutomaticentWorkload
Intelligent
Repository
Infrastructure
Oracle Database 10g 주요 기능 (DBMS)
2. Database Diagnostic
다. Oracle Database 10g 성능 진단 특징
Oracle Database 10g 성능 진단에 대한 개괄적인 그림
In memory
statistics
SGA
Snapshots
Alerts
ADDM
Proactive Monitoring
ADDM Results
Workload Repository
Reactive Monitoring
31
Oracle Database 10g 주요 기능 (DBMS)
2. Database Diagnostic
다. Oracle Database 10g 성능 진단 특징
ADDM 성능 진단
그러면 지금부터 각각의 구성 요소에 대해 자세히 살펴보겠습니다. 그 첫 번째로
Automatic Database Diagnostic Monitor (ADDM)에 대해서 알아보겠습니다.
 Automatic Database Diagnostic Monitor (ADDM)은 database의 문제시 될 만한
점을 미리 알아보며 효과적인 tuning을 위한 구성요소 입니다. ADDM은 옆의 그림과
같이 모든 구성요소와 정보를 공유하여 매우 세부적인 실시간 분석이 된 정보를 제
공해 줍니다. 이는 Real Application Cluster에 대한 정보도 포함됩니다.
 기본적으로 database는 30분마다 SGA에서 통계정보를 수집합니다. Database는
이러한 정보들을 Automatic Workload Repository에 snapshot 형태로 저장합니다.
이러한 snapshots들은 Statspack snapshots과 비슷한 형태입니다. 그러나 이
snapshots들은 Statspack snapshot보다 훨씬 더 자세한 정보들을 포함합니다.
 부가적으로 ADDM은 문제를 미연에 방지하기 위하여 새로운 MMON 프로세스를 이
용하여 정기적으로 처리하게끔 계획되어 있습니다. ADDM은 Snapshot이 만들어질
때마다 최근 두개의 snapshot과 함께 분석을 합니다. 이러한 능력은 instance를 감
시하여 후에 매우 심각한 문제가 되기 전에 문제를 발견합니다. 이러한 Automatic
Workload Repository에 저장된 정보들은 Enterprise Manager console을 통해 접근
가능합니다.
32
Application & SQL
Management
Storage
Management
System Resource
Management
Space
Backup & Recovery
ADDM
Management
Management
Oracle Database 10g 주요 기능 (DBMS)
2. Database Diagnostic
다. Oracle Database 10g 성능 진단 특징
ADDM Methodology
ADDM의 분석 방법은 문제를 해결하는 방식에 있어서 top-down 방식을 사용합
니다. 이러한 처리는 Oracle database내에 어떤 곳에서 얼만큼 시간을 소비하고
있는지 결정하는데 매우 도움을 줄 수 있는 시간 통계 모델을 사용합니다. 이 시
간은 모든 tuning 요소들에 의해서 사용될 수 있는 가장 일반적인 것입니다. 이
방법은 Oracle database가 어떤 문제가 database에 가장 큰 영향을 줄 수 있는
지 알아낼 수 있게 합니다.
기본적으로 ADDM은 가장 최근 두 개의 snapshot을 통하여 Oracle database 성
능을 분석합니다.
33
Oracle Database 10g 주요 기능 (DBMS)
2. Database Diagnostic
다. Oracle Database 10g 성능 진단 특징
ADDM의 문제를 분류하는 방법
내부적으로 ADDM은 모든 가능한 tuning을 표현 하기 위해 tree 구조를 사용합니다. 이 tree구조는 새로운 wait & time 통계 모델을 사용
합니다. 이 tree의 시작은 현상을 나타내며, 아래로 내려가면 그 현상에 대한 원이이 나타납니다. 그리고 각 노드의 시간을 기반으로 하
는 임계치를 기준으로 tree를 타고 아래로 내려갑니다.
만약 시간을 기반으로 하는 임계치가 어떤 기준을 넘지 않는다면, ADDM은 그에 해당하는 sub-tree를 잘라냅니다. 즉 ADDM은 이 부분
을 문제가 없다고 판단합니다. 이러한 tree 구조는 ADDM이 효과적으로 문제들을 관리할 수 있게 해줍니다.
34
Oracle Database 10g 주요 기능 (DBMS)
2. Database Diagnostic
다. Oracle Database 10g 성능 진단 특징
ADDM의 산출물
ADDM의 산출물은 Enterprise Manager console을 통하여 가장 잘 보여집니다. ADDM은 각각의 분석 후, database에 해당하는 영향에
대해 정보를 보내 줍니다. 이 영향은 database가 얼마나 많은 시간 소모를 하느냐를 기준으로 합니다.
또한 ADDM은 문제 뿐만 아니라 향상에 관계된 정보들도 생성합니다. 이러한 정보들은 대부분 advisor기능을 포함합니다.
35
Oracle Database 10g 주요 기능 (DBMS)
2. Database Diagnostic
다. Oracle Database 10g 성능 진단 특징
EM에서 본 ADDM의 산출물
Database Home Page
36
Oracle Database 10g 주요 기능 (DBMS)
2. Database Diagnostic
다. Oracle Database 10g 성능 진단 특징
EM에서 본 ADDM의 산출물
ADDM Findings
37
Oracle Database 10g 주요 기능 (DBMS)
2. Database Diagnostic
다. Oracle Database 10g 성능 진단 특징
EM에서 본 ADDM의 산출물
ADDM Recommendations
38
Oracle Database 10g 주요 기능 (DBMS)
2. Database Diagnostic
다. Oracle Database 10g 성능 진단 특징
SQL Tuning Advisor
어떤 SQL 문이 많은 자원을 소비하는지, 그리고 tuning이 필요한지 알아내는 일은 전문가라 해도 쉬운 일이 아닙니다. 또한 database를
관리하는 데에 있어서 SQL tuning만이 우선시 되지는 않지만, 도외시 될 수 도 없는 문제입니다. 이러한 수동적인 SQL tuning은 다음
과 같은 일들을 처리해 주어야 합니다.
 Execution plan을 조정하기 위해 SQL optimization
 Data에 대한 빠른 access를 위한 access path 디자인
 효과적인 SQL 구성을 위한 SQL 디자인
이러한 SQL tuning은 매우 시간이 많이 소요되는 일일 뿐만 아니라 tuning해야 될 SQL문은 항상 존재하기 때문에 관리자의 일은 언제나
많기 마련입니다. Oracle database 10g는 이러한 SQL문에 대해서 ADDM을 통하여 자동 관리해 줍니다.
Oracle Database 10g의 새로운 기능인 SQL Tuning Advisor는 관리자가 직접 해주어야 하는 SQL문 tuning을 대체하기 위해 만들어진
것이다. 이 advisor는 하나 이상의 SQL문을 받아서 받은 SQL문의 execution plan을 어떻게 하면 최적화 시킬 수 있는지에 대한 정보,
정보에 대한 중요한 이유, 변경에 따른 성능 향상 정도, 그리고 정보를 실행할 실제 명령문에 대한 정보를 제공해 줍니다. 관리자는
SQL Tuning advisor를 통해서 이러한 정보를 받아들이기만 하면 됩니다.
39
Oracle Database 10g 주요 기능 (DBMS)
2. Database Diagnostic
다. Oracle Database 10g 성능 진단 특징
SQL Tuning Advisor
SQL Tuning Advisor는 기본적으로 다음의 네 가지 종류의 특정
모드에 따르는 CBO를 기반으로 하는 Tuning 요소입니다.
 Statistics analysis mode : CBO가 정확한 동작을 하기 위해
서는 해당 object의 정확한 통계 자료가 필요합니다. 따라서
SQL Tuning Advisor는 빠지거나 오래된 통계 자료에 대해 다
시 자료를 모을 것을 권장하여 줍니다.
 Access path analysis mode : CBO는 더 빠른 execution 경
로를 거치기 위한 새로운 index를 권장하여 줍니다. 이 부분은
SQL Access Advisor를 실행시키면 더 자세한 분석이 나옵니
다.
 Restructure SQL mode : 어떤 SQL문의 plan에 많은 오버해
드를 주는 요소가 발견될 경우에 이것과 관계되는 부분에 재구
성할 정보를 제공합니다. 이러한 정보는 원래의 SQL 문과 매
우 유사하지만 동일하지 않기 때문에, DBA나 개발자가 판단해
야 합니다.
 Plan tuning analysis mode(SQL Profile) : CBO는 SQL
profile을 위해서 부가적인 정보를 수집합니다. 이것은 SQL문
의 변경되기 전의 정보를 포함합니다. Data dictionary에 남아
있는 이러한 변경 정보는 잘 tuning된 plan 생성에 매우 유용
하게 쓰입니다.
40
Automatic Tuning Optimizer
Statistics
check
mode
SQL
Profiling
SQL
Tuning
Advisor
SQL Tuning
Recommendations
Gather
Missing or
Stale
Statistics
Create a SQL
Profile
Access
Path
Analysis
Add Missing
Indexes
SQL
Structure
Analysis
Modify SQL
Constructs
D
B
A
Oracle Database 10g 주요 기능 (DBMS)
2. Database Diagnostic
다. Oracle Database 10g 성능 진단 특징
SQL Tuning Advisor – Statistics analysis mode
정확한 통계 자료는 최적화된 plan 생성을 위해 매우 중요한 요소 입니다. Oracle Database 10g는 자동적으로 통계 정보들을 모읍니다.
이 모드가 적용되어 있지 않는다면, 통계 정보는 오래 되거나 빠져 있을 수 있습니다.
이 통계 분석 모드에서는 옵티마이져가 사용하는 통계 정보들이 유용한가를 검사하며, 통계 정보가 필요한 곳이 어디인지를 알려줍니다.
DBMS_STATS.GATHER_TABLE_STATS(
ownname=>'SH', tabname=>'CUSTOMERS',
estimate_percent=>DBMS_STATS.AUTO_SAMPLE_SIZE);
41
Oracle Database 10g 주요 기능 (DBMS)
2. Database Diagnostic
다. Oracle Database 10g 성능 진단 특징
SQL Tuning Advisor – Plan Tuning Analysis mode
보통의 경우에는 CBO는 query에 필요한 정보가 무엇이든지 간에 가장 좋은 execution plan을 만들어 냅니다. 그러나 이러한 plan을 더
욱 향상시키기 위한 정보들을 가질 수 없습니다. Plan Tuning Analysis mode에서는 SQL Profile에 query의 부가적인 정보들을 저장하
고 있어서 이전 버전의 CBO보다 훨씬 더 좋은 plan을 생성해 낼 수 있습니다.
Plan Tuning Analysis mode에서는 CBO는 SQL profile을 위한 정보들을 자동적으로 모으며, 관리자는 profile을 실행시킬지를 결정할
수 있습니다. 만약 profile을 실행 한다면 원래의 execution plan보다 훨씬 더 잘 tuning된 plan을 제공할 수 있습니다.
이 정보들은 data dictionary에 저장되기 때문에 application code를 변화시킬 필요가 없습니다.
42
Oracle Database 10g 주요 기능 (DBMS)
2. Database Diagnostic
다. Oracle Database 10g 성능 진단 특징
SQL Tuning Advisor – Plan Tuning Analysis mode
아래의 그림은 SQL문을 profile하는 기본적인 흐름을 보여줍니다. 왼쪽에는 일반적인 모드에서의 Oracle optimizer가 실행하는 방법입
니다. 여기서는 현재의 통계 정보가 정확하다는 가정 하에 plan을 생성합니다.
가운데 그림은 Oracle optimizer가 plan tuning mode에서 profile 정보를 모으면서 plan을 결정하는 것입니다. Oracle optimizer는 이 모
드에서는 좀 더 정확한 통계정보를 위해 좀 더 많은 시간을 소요합니다.
 부분적으로 실행하여 보고, 더 좋은 통계 정보를 모으기 위해 동적인 샘플링 기술은 사용합니다.
 컬럼들관의 관계, 조인, 함수들의 복잡한 관계와 같은 좀 더 진보된 선택성을 검사합니다.
필요한 경우에는 통계 정보들이 다시 모아집니다. 이렇게 SQL profile이 모아지면 optimizer는 모아진 SQL profile을 바탕으로 plan을 생성합
니다.
43
Oracle Database 10g 주요 기능 (DBMS)
2. Database Diagnostic
다. Oracle Database 10g 성능 진단 특징
SQL Tuning Advisor – Access Path Analysis mode
Access Path Analysis mode에서는 SQL문의 성능 향상을 위해 부가적인 index가 필요한지를 검토합니다. 실수로 index가 drop되거나,
사용하지 못하게 되거나, 또는 만들어지지 않았다면 index를 만들어서 효과적인 성능 향상을 꾀할 수 있습니다.
SQL Tuning Advisor는 내부적으로 SQL Access Advisor를 호출합니다. 따라서 SQL Access Advisor는 다음과 같은 정보들을 제공합니
다.
 획기적인 성능 향상을 위해 새로운 index를 생성합니다.
 Application이 복잡한 index access를 효과적으로 잘 수행하고 있는지를 검사합니다.
SQL Tuning
Advisor
Significant
performance
gain
SQL
Access
Advisor
Workload
Comprehensive
index analysis
Index
44
Index
Oracle Database 10g 주요 기능 (DBMS)
2. Database Diagnostic
다. Oracle Database 10g 성능 진단 특징
SQL Tuning Advisor – SQL Analysis mode
SQL Analysis mode는 잘 쓰여지지 않은 SQL문을 알아내어 이 SQL 문을 재구성하도록 정보를 주는 역할을 합니다. CBO는 특정한 rule
을 근거로 SQL문을 평가하고 좋지 않은 명령에 대해 다른 명령으로 바꾸어 줍니다. 이러한 정보는 거의 비슷하지만 처음의 명령이랑은
조금 다릅니다. 예를 들어 NOT EXISTS와 NOT IN은 좀 다르기 때문에 SQL Analysis mode에서는 이러한 정보들을 줍니다.
이 SQL Analysis mode는 다음의 정보들을 발견합니다.
 NOT IN 과 NOT EXISTS와 같은 SQL 구조 사용 비교
 Index를 타지 않는 SQL 문의 사용
 Cartesian product와 같은 디자인 실수
Poorly Written
Statement
Restructured SQL
Statement
SQL Construct
Typical mismatch
& indexes
SQL Tuning
Advisor
45
Design mistake
Oracle Database 10g 주요 기능 (DBMS)
2. Database Diagnostic
라. 서버 성능 관리의 장점
종합적인 advisor 프레임워크 구성
분석에서 해결까지 집약된 드릴다운 기능
Automatic
Database
Diagnostic
Monitor
(ADDM)
SQL Tuning
PGA
Memory
SGA
Access
Space
Shared Pool
Segment Advisor
Undo
Common
data source
46
Buffer Cache
AWR
Seamless
integration
Oracle Database 10g 주요 기능 (DBMS)
3. Performance & Scalability
가. 확장 및 성능 개요
개요
다중 버전 읽기 일관성(multi-version read consistency) 기능을 소개한 오라클 데이타베이스 6부터, 새로운 릴리즈를 발표할 때마다 데
이타베이스의 성능과 확장성을 향상하는 혁신적인 기능들을 지원해왔습니다.
데이타베이스 성능의 촛점은 다음 세 영역으로 분류될 수 있습니다.
 다중 동시 사용자 지원
 복잡한 트랜잭션 지원
 초대형 데이타베이스 지원
성능 진단과 데이타베이스 튜닝에 많은 시간과 노력을 허비하지 않으면서, 이 세 영역을 동시에 만족해야 합니다. 오라클 데이타베이스
는 최소비용으로 최상의 성능을 제공합니다.
47
Oracle Database 10g 주요 기능 (DBMS)
3. Performance & Scalability
나. 자가 튜닝 데이타베이스 (Self-Tuning Database)
개요
오라클 데이타베이스 10g는 성능 모니터링을 단순화하고, 성능상의 문제점을 자동 감지, 치유할 수 있는 기능을 제공함으로써, 진정한
자가 튜닝 데이타베이스라 할 수 있습니다.
자동 업무부하 저장소 (Automatic Workload Repository, AWR)
AWR은 데이타베이스 운영과 관련된 성능 데이터와 통계정보를 담고 있는 영구 저장소입니다. 오라클 데이타베이스는 미리 지정한 인터
벌에 맞춰, 주요 통계정보와 업무부하 정보에 대해 스냅샷(snapshot)을 받아 이것을 AWR에 저장합니다. 이러한 통계정보는 오라클 데
이타베이스 10g의 진단 기능에 필요한 데이타이며, proactive, reactive 모니터링 모두에 필요한 정보입니다.
자동 데이타베이스 진단 모니터 (Automatic Database Diagnostic Monitor, ADDM)
ADDM은 AWR에 캡쳐된 데이터를 proactive하게 분석할 수 있는 데이타베이스의 자가 진단(self-diagnosis) 엔진입니다. ADDM의 목표
는 ‘DB time’을 많이 소비하는 시스템의 요소를 파악해서, 권고안을 제시하거나, 10g의 새로운 SQL Access Advisor와 같은 조언 컴포
넌트를 통해 이 시간을 줄이도록 함에 있습니다. ADDM은 단지 현 증상에만 국한하는 것이 아니라, 문제의 근본 원인을 밝혀 내기 위해
드릴다운(drill down)해서 전반적인 영향에 대해 리포트를 합니다. 또한 ADDM은 자신의 권고안을 따랐을 때의 기대되는 잇점을 제시하
기도 하며, 시스템상에서 성능 저하 현상이 없는 요소를 밝혀내서 해당 요소에 대해서는 더 이상 튜닝을 할 필요가 없도록 해줍니다.
SQL Access Advisor
SQL Access Advisor는 주어진 업무부하에 대한 스키마 디자인을 자동으로 분석해서, 인덱스와 materialized view에 대한 생성, 유지, 삭
제에 대해 권고안을 생성합니다. SQL Access Advisor는 인덱스와 materialized view를 생성함에 따른 커리(query) 성능의 향상 뿐 아
니라, insert/update/delete와 같은 DML 작업시 미치게 되는 영향도 함께 고려해서 권고를 하게 됩니다.
48
Oracle Database 10g 주요 기능 (DBMS)
3. Performance & Scalability
나. 자가 튜닝 데이타베이스 (Self-Tuning Database)
자동 SQL 튜닝 (Automatic SQL Tuning)
오라클 데이타베이스 10g는 SQL 문장의 튜닝을 완벽하게 자동화합니다.
자동 SQL 튜닝은 자동 튜닝 옵티마이저(automatic tuning optimizer)를 기반으로 합니다. 자동 튜닝 모드에서 오라클 커리 옵티마이저는
튜닝 프로세스에 필요한 조사와 검증을 위해 좀 더 많은 시간을 사용하는데, 이 시간은 일반적인 운영 모드에서는 사용하지 않는 동적
샘플링(dynamic sampling)이나 부분 수행(partial execution)과 같은 기술을 적용하기 위한 시간입니다. 이러한 기술은 옵티마이저가
예측한 cost, selectivity, cardinality 등을 검증하는데 도움을 주며, 그 결과로 튜닝이 잘된 SQL 문장을 만들어 낼 수 있는 가능성을 높
여주게 됩니다.
자동 SQL 옵티마이저는 통계정보 분석, SQL 프로파일링(profiling), 접근 경로(access path) 분석, SQL 문장 재구성 분석 등과 같은 작
업을 수행하며, 그 결과는 SQL Tuning Advisor내의 튜닝 충고(advice)의 형태로 살펴볼 수 있습니다. 충고는 새로운 인덱스 생성, SQL
문장의 재작성, SQL 프로파일(profile)의 구현 등과 같은 권고안으로 구성되며, 이러한 충고를 적절히 받아들이는 과정을 통해 해당
SQL 문장의 튜닝 작업을 마치게 되는 것입니다.
자가 튜닝 SGA (Self-tuning SGA)
SGA(System Global Area)는 모든 사용자들이 공유하는 메모리 영역으로, buffer pool, shared pool, large pool 등의 컴포넌트로 구분되
어집니다. 이러한 각각의 캐쉬에 대해 충고(advisory) 메카니즘을 적용한다 하더라도, 캐쉬 크기를 적절히 튜닝한다는 것은 어려운 작업
입니다. 너무 작게 잡으면 메모리 할당이 실패할 수도 있고, 너무 크게 잡으면 메모리 낭비의 요소가 될 수 있습니다.
오라클 데이타베이스 10g는 자가 튜닝 SGA 기법을 제공하는데, 이를 이용할 때 DBA는 단지 SGA의 총크기만 정의하면 됩니다. SGA의
풀(pool) 각각의 크기는 데이타베이스 스스로 결정하게 되고, 업무 부하에 맞춰서 동적으로 그 크기를 조절합니다.
오라클 데이타베이스 9i에서 소개된 PGA_AGGREGATE_TARGET 파라미터와 함께 사용한다면, 오라클 데이타베이스가 업무부하에 따라
메모리 소비를 자동으로, 동적으로 조절하게 되며, 최적의 메모리 사용을 보장하게 되는 것입니다.
49
Oracle Database 10g 주요 기능 (DBMS)
3. Performance & Scalability
나. 자가 튜닝 데이타베이스 (Self-Tuning Database)
자동 튜닝 체크포인트(Self-tuning checkpoints)
checkpoint는 메모리 상의 변경된 데이타와 데이타파일 간의 동기화 수단으로, 주기적으로 메모리 상의 변경된 데이타를 데이타파일에
쓰게됩니다. 이 작업을 수행하면 오라클 데이타베이스는 사용가능한 충분한 양의 메모리를 확보하게 되므로, 여유 메모리(free memory)
를 찾는 성능은 향상됩니다.
오라클 데이타베이스 10g 이전에는 관리자가 checkpoint와 관련된 FAST_START_MTTR_TARGET 파라미터를 정의함으로써 예상 인스
턴스 장애 복구 시간(mean time to recovery, MTTR)을 정의할 수 있었으며, MTTR advisory를 통해 FAST_START_MTTR_TARGET 값
에 따라 물리적 쓰기(physical write) 비율이 어떻게 변하는지를 예측할 수 있었습니다. 오라클 데이타베이스 10g의 자가 튜닝 체크포인
트 기법을 이용하면 I/O 사용율이 낮은 시기에 메모리 상의 변경된 데이타를 데이타파일에 씀으로써, 데이타베이스는 평상시 성능에 미
치는 영향을 최소화하면서 빠른 복구 시간을 보장할 수 있습니다. 따라서 관리자가 체크포인트와 관련된 어떠한 파라미터도 설정하지
않더라도, 혹은 큰 값으로 설정했더라도 적당한 인스턴스 장애 복구 시간을 보장할 수 있습니다.
50
Oracle Database 10g 주요 기능 (DBMS)
3. Performance & Scalability
다. 다중 동시 사용자 지원
개요
데이타베이스 서버의 동시 사용자가 점점 늘어나는 추세이며, 때로는 예측불가능할 정도로 폭주하기도 합니다. 데이타베이스 서버는 다
중 동시 사용자를 지원할 수 있는 메커니즘을 제공해야하며, 이와 동시에 배치성이건 리얼타임성이건, 질의나 변경 등 모든 유형에 대해
예측가능하고 만족할만한 성능을 제공해야 합니다.
오라클 데이타베이스는 대량 동시 트랜잭션에 효율적인 아키텍쳐를 제공하며, 그 주요 기술적 특징은 non-escalating row-level locking
과 multi-version read consistency로, 많은 사용자가 애플리케이션에 접속하더라도, 오라클 데이타베이스는 일관된 성능을 제공할 수
있습니다. 공유 자원에 대한 내부 경합을 줄임으로써 뛰어난 확장성을 보장하고, 자원 활용을 최적화할 수 있는 것입니다.
Non-Escalating Row-Level Locking
Row-level lock은 가장 세분화된 lock 관리이며, 따라서 최상의 데이터 동시성을 제공합니다. 테이블의 어느 한 row를 변경하는 어떠한
사용자나 오퍼레이션은 단지 그 row에 대해서만 lock을 잡을 뿐이기 때문에, 다른 사용자나 오퍼레이션이 해당 row 이외의 어떠한 row
에 대해서도 동시에 변경 작업을 수행할 수 있는 것입니다.
오라클 데이타베이스는 동시성 모델의 기본으로 lock escalation이 없는 row-level locking을 사용하기 때문에, lock escalation에 의한
deadlock 상황은 절대로 없습니다.
51
Oracle Database 10g 주요 기능 (DBMS)
3. Performance & Scalability
다. 다중 동시 사용자 지원
Multi-version Read Consistency
오라클 데이타베이스의 multi-version read consistency는 항상 일관되고 정확한 읽기 결과를 제공합니다. 어느 트랜잭션이 데이터를 변
경하면 원래의 데이터 값은 데이타베이스의 undo 레코드에 기록이 되며, 아래 그림과 같이 오라클 데이타베이스는 이 값들을 이용해 테
이블 데이터에 대한 읽기 일관성을 보장하는 뷰를 만들어낼 수 있는 것입니다.
Select …… (SCN 100)
Undo segment
SCN 99
SCN 98
SCN 101
Undo segment에 저장된
이전 이미지 이용
SCN 99
SCN 97
SCN 96
SCN 103
SCN 100이전의
Commit 데이터를 참조
SCN 98
따라서 오라클 데이타베이스는 동시 조회, 변경 작업을 할 수 있는 환경을 완벽히 제공합니다. 오라클 데이타베이스에서는 writer가 절대
로 reader를 막지 않고, reader가 writer를 막지 않습니다. 이러한 non-blocking multi-version read consistency를 통해 동시 변경 작
업의 성능 저하 없이 언제나 사용자들에게 일관된 읽기 결과를 제공합니다.
52
Oracle Database 10g 주요 기능 (DBMS)
3. Performance & Scalability
라. 복잡한 트랜잭션 지원
개요
오라클 데이타베이스는 다양한 질의(query) 처리 기술을 제공하고 있습니다.
 인덱스
 Index-Organized Table
 비용기반 질의 최적화(cost-based query optimization)
 Summary management
또한 오라클은 SQL을 절차형 언어로 확장시킨 PL/SQL을 제공하는데, 이는 SQL의 사용편이성, 유연성에 절차형 기능을 결합시킨 것으
로 데이타베이스에 저장될 수 있습니다. 이를 통해 성능의 향상과 메모리 사용의 최적화를 이룰 수 있습니다.
인덱스
인덱스는 데이터 액세스를 위한 빠른 경로를 제공하기 위해 생성된 데이타베이스 스트럭쳐입니다. 인덱스를 사용하면 디스크 I/O 오퍼레
이션을 현저히 줄일 수 있으며, 따라서 데이터 추출의 성능을 향상시킬 수 있습니다. 오라클 데이타베이스는 아래와 같이 많은 유형의
인덱스를 지원합니다.
 B-Tree Index
 B-Tree Cluster Index
 Reverse Key Index
 Bitmap Index
 Bitmap Join Index
 Function-based Index
 Domain Index
53
Oracle Database 10g 주요 기능 (DBMS)
3. Performance & Scalability
라. 복잡한 트랜잭션 지원
인덱스
 Bitmap Index
비트맵 인덱스는 데이터 웨어하우스 애플리케이션에 획기적인 성능 향상을 제공합니다. 데이터 웨어하우스에서 사용되는 질의
문은 대량의 데이터에 대해서 여러가지 다양한 조건을 만족하거나 여러가지 조건들 중 몇 가지를 만족하는 데이터를 찾도록 하
는 광범위한 질의문들이고 또 데이터 웨어하우스 내의 데이터에 대한 수정은 거의 일어나지 않습니다. 비트맵 인덱스는 이러한
질의문에 대해 최대한의 질의 성능을 보장합니다.
File 3
Block 10
Table
CREATE BITMAP INDEX color_bidx on SALES (color);
Block 11
Index
Block 12
key
<Blue,
<Green,
<Red,
<Yellow,
start
RowID
end
RowID
10.0.3,
10.0.3,
10.0.3,
10.0.3,
12.8.3,
12.8.3,
12.8.3,
12.8.3,
bitmap
1000100100010010100>
0001010000100100000>
0100000011000001001>
0010001000001000010>
"판매된 제품들 중에서 색상이 Blue인 데이터는 전부 몇 건인가?"와 같은 질의문이 들어온다면 데이터베이스 서버는 Blue의 비
트맵에서 "1"값은 전부 몇 개인가를 계산하게 됩니다. 좀 더 복잡한 질의문 "판매된 제품들 중에서 색상이 Blue이거나 Green인
데이터의 판매 금액 합계는 전부 얼마인가?"는 Blue와 Green의 비트맵을 OR 연산한 후 그 결과 비트맵에서 "1"에 해당하는
Row를 모두 찾아서 필요한 결과를 계산합니다. 이처럼 비트맵 인덱스는 데이터 웨어하우스에서 많이 사용되는 대용량 데이터
에 대한 광범위한 질의문에 대해 간단한 비트맵 연산을 통한 최대한의 질의 성능을 보장합니다.
54
Oracle Database 10g 주요 기능 (DBMS)
3. Performance & Scalability
라. 복잡한 트랜잭션 지원
인덱스
 Bitmap Join Index
Bitmap Join Index는 두개 이상의 테이블의 조인 결과에 대해 Bitmap Index를 생성하는 것을 말합니다. Bitmap Join Index는 조
인되어야 하는 데이터의 양을 미리 제한하여 디스크 공간을 효율적으로 사용할 수 있습니다. Bitmap Join Index는 Materialized
View에 비해 디스크 공간을 훨씬 효율적으로 사용할 수 있습니다. Materialized View는 조인된 결과의 모든 데이터를 가져야 하
기 때문입니다.
아래 그림에서 보는 바와 같이 East 지역에 속하는 Customer의 모든 Sales 합계를 구하는 질의를 수행할 경우 Oracle9i는 위에
서 생성한 Bitmap Join Index와 SALES 테이블 만을 이용하여 질의에 대한 답을 구하게 됩니다. 즉, 이러한 질의의 경우 SALES
테이블과 CUSTOMER 테이블을 조인하지 않고도 질의에 대한 답을 구할 수 있으므로 훨씬 빠른 응답 시간을 기대할 수 있습니
다.
55
Oracle Database 10g 주요 기능 (DBMS)
3. Performance & Scalability
라. 복잡한 트랜잭션 지원
Index-Organized Table
Index-organized table은 인덱싱 정보와 데이터가 함께 저장되어 있기 때문에, primary key에 대한 exact match/range scan과 같은 질
의의 경우 빠른 액세스를 제공합니다. Key 컬럼이 테이블과 primary key 인덱스 각각의 세그먼트에 중복되어 저장되지 않기 때문에 공
간의 절약을 이룰 수 있으며, 데이터를 추출하기 위한 액세스 횟수가 줄어듦으로 성능의 향상을 이룰 수 있는 것입니다.
Index-organized table은 파티셔닝(partitioning), 병렬 질의(parallel query) 등 테이블의 모든 기능을 완벽히 지원합니다. 오라클 데이타
베이스 10g에서는 index-organized table에 사용할 수 있는 파티셔닝의 옵션을 리스트 파티셔닝(list partitioning)까지 확대했습니다.
56
Oracle Database 10g 주요 기능 (DBMS)
3. Performance & Scalability
라. 복잡한 트랜잭션 지원
비용기반 질의 최적화(Cost-based Query Optimization)
질의 최적화는 관계형 데이타베이스의 성능, 특히나 복잡한 SQL 문장의 수행에 있어서 아주 중요한 요소이며, 오라클 데이타베이스는 비
용기반 최적화 기법을 사용합니다. 비용기반 최적화 기법에서는 주어진 질의에 대해 다양한 실행 계획(execution plan)이 만들어지고,
이 각각의 계획에 대해 비용이 추정됩니다. 이 결과를 바탕으로 질의 최적화는 추정된 비용이 최소인 것을 최상의 계획으로 선택하게 됩
니다.
애플리케이션이 매우 복잡한 SQL 코드를 생성할 지도 모르기 때문에, 질의 옵티마이저는 좋은 성능을 보장하기 위해 현명하고 견고해야
만 합니다. 오라클 데이타베이스의 비용기반 옵티마이저는 비용 모델의 정확성과 완벽성, 그리고 특정 질의의 대상이 되는 데이터를 액
세스하기 위한 가장 효율적인 방법을 결정하는데 사용되는 기술과 방법에 의해 훌륭한 실행 계획을 만들어냅니다.
 SQL 변환(transformation)
Scan, join, aggregation 등을 위해 액세스해야 할 데이터의 양을 줄임으로써 질의 성능을 향상시키기 위해, view merging,
predicate pushing 등과 같은 기법으로 주어진 SQL 문장을 스스로 변환시켜서, 결과는 같지만, 효율적으로 처리될 수 있도록
하는 기능입니다. 또한 오라클 데이타베이스는 옵티마이저의 추정된 비용을 근거로, materialized view rewrite, star
transformation 등과 같은 기법을 이용해 비용기반 질의 변환을 적용할 수도 있습니다.
 Cost estimate
실행 계획의 비용을 최대한 정확히 추정하기 위해서 오라클 데이타베이스는 오브젝트 레벨 통계정보와 시스템 통계정보 등을 활
용한 비용 모델을 사용합니다. 오라클 데이타베이스 10g의 기본 비용 모델은 “CPU+IO”로, 질의를 수행하는 동안 발생할 IO 오
퍼레이션의 예상 수와 유형뿐 아니라 데이타베이스의 CPU 사이클 수도 고려하게 됩니다.
통계정보와 성능 정보를 모으는 작업은 효율적이고 자동화될 필요가 있습니다. 오라클 데이타베이스 10g에서는 통계정보가 없
거나 오래된 오브젝트들을 자동으로 분석하고, 데이터를 자동으로 샘플링해서 통계정보를 추출할 수 있는 기능이 제공되며, 결
과적으로 SQL 수행의 성능을 향상시킬 수 있습니다.
오라클 데이타베이스는 두가지 옵티마이저 모드를 제공하는데, 첫번째는 질의 결과의 최초 n row를 뽑아내는 시간을 최소화하
기 위한 모드이고, 두번째는 모든 row를 뽑아내는 시간을 최소화하기 위한 모드입니다.
57
Oracle Database 10g 주요 기능 (DBMS)
3. Performance & Scalability
라. 복잡한 트랜잭션 지원
Summary Management
 Materialized View
데이터 웨어하우스에서 성능 향상을 위한 기법 중의 하나는 Summary를 만드는 것입니다. Summary는 질의 수행 시간을 향상
시키기 위하여 복잡한 조인이나 aggregation 연산을 미리 수행한 후 그 결과를 데이터베이스의 테이블에 저장하는 aggregate
view의 일종입니다. 예를 들면, 지역별 및 제품별 매출의 합을 미리 계산하여 테이블로 저장할 수 있습니다. Oracle에서
Summary를 생성할 때는 Materialized View 스키마 객체를 사용합니다. Materialized View는 질의 성능 향상과 데이터 복제 등
의 기능을 제공합니다.
마스터 테이블의 데이터에 변경이 일어나면 materialized view도 반드시 refresh가 되어야 합니다. Complete refresh는 마스터
테이블로부터 새로이 materialized view를 생성하는 것이기 때문에 시간이 오래 걸립니다. 그래서 많은 데이터 웨어하우스 환
경에서는 빠르고 점진적인(fast, incremental) refresh를 요구합니다. 오라클 데이타베이스 10g에서는 마스터 테이블이 list
partitioning인 경우에도 partition-aware fast refresh가 가능합니다.
 Query Rewrite
Query Rewrite는 테이블과 view에 대한 사용자의 질의를 materialized view를 사용하도록 변환을 시켜서, 성능 향상을 꾀할 수
있는 질의 최적화기법입니다. 오라클 데이타베이스 10g에서 query rewrite는 하나 이상의 materialized view를 사용할 수 있으
며, 결과적으로 보다 많은 질의가 query rewrite 기법을 사용할 수 있어서, 전반적인 질의 응답 시간이 현저히 줄어들게 됩니다.
 Summary Advisor
분석된 Workload 및 통계 정보를 통해 '요약 정보'의 생성 및 삭제 그리고 관리에 대한 자세한 정보를 추출할 수 있으며, 새로운
Materialized view 생성, 삭제, space 요구량 등에 대해 조언을 할 수 있습니다.
58
Oracle Database 10g 주요 기능 (DBMS)
3. Performance & Scalability
라. 복잡한 트랜잭션 지원
Optimized PL/SQL
PL/SQL stored procedure를 사용하면 성능 향상과 메모리 사용의 최적화를 이룰 수 있습니다.
애플리케이션과 데이타베이스 간의 네트워크 트래픽의 감소
프로시져의 컴파일된 형태가 데이타베이스에 존재하기 때문에, 실행시 컴파일이 필요하지 않음
다중 사용자가 메모리 상의 프로시져 한 카피를 공유할 수 있음
오라클 데이타베이스 10g에서 PL/SQL 컴파일러는 재작성됐으며, 계산 중심의 PL/SQL 프로그램에 대한 효율적인 프레임워크를 제공합
니다. 아래 그림과 같이 성능 향상, 실행 코드 크기의 감소, 동적 스택 크기의 감소를 나타내고 있습니다.
그리고 9i에서 소개된 것으로, PL/SQL 모듈을 native code로 컴파일함으로써 성능의 이점을 볼 수 있는 PL/SQL Native Compilation의
경우 setup과 운영이 훨씬 간소화됐습니다.
59
Oracle Database 10g 주요 기능 (DBMS)
3. Performance & Scalability
마. 초대형 데이타베이스 지원
개요
오라클 데이타베이스를 이용해 초대형 데이터를 처리하는 경우는 일반적입니다. 데이타베이스 크기는 더 이상 오라클 데이타베이스의
이슈가 되지 못하고, 오라클 데이타베이스 10g는 최대 8 exabyte(8 million terabyte)의 데이터를 처리할 수 있습니다.
오라클 데이타베이스는 이러한 다량의 데이터에 대한 생성, 전개, 관리, 사용을 위한 강력한 메커니즘을 제공하며, 동시에 데이타베이스
오퍼레이션의 모든 유형에 대한 성능 향상을 지원합니다.
병렬 실행 (Parallel Execution) 지원
병렬 처리는 하나의 작업을 여러 개의 작업으로 배분하여 여러 프로세서와 I/O 자원을 동시에 골고루 사용하게 하는 기능입니다. 오라클
데이타베이스의 병렬 SQL 실행 기능은 질의 및 갱신 작업을 여러 개 의 개별적인 작업으로 동적 재분할하고 작업량을 여러 개의 프로세
서에 고르게 분산시켜 작업 성능을 최대화합니다.
60
Oracle Database 10g 주요 기능 (DBMS)
3. Performance & Scalability
마. 초대형 데이타베이스 지원
병렬 실행 (Parallel Execution) 지원
오라클 데이타베이스는 하나의 시스템 상의 여러 프로세스들을 활용하는 병렬 처리와 Real Application Clusters(RAC) 상의 여러 노드를
활용하는 병렬 처리를 지원합니다.
오라클 데이타베이스는 아래와 같이 모든 유형의 오퍼레이션에 대해 병렬 실행을 지원합니다.
관리 오퍼레이션 : 데이타 로딩(loading), 테이블과 인덱스의 생성, 임시 테이블(temporary table) 생성, 파티션(partition) 운영,
백업과 복구, 복제(replication)
사용자 오퍼레이션 : 질의, SELECT 문장의 서브커리(sub-query), INSERT, UPDATE, DELETE, OLAP 분석
지속적이고 최적인 상태로 시스템을 사용하면서 최상의 성능을 유지하기 위해 오라클 데이타베이스는 산업계 선두의 성능 뿐 아니라 시
스템 상황에 맞춰 동적으로 대응할 수 있는 병렬 실행 아키텍쳐를 제공합니다.
모든 오라클 데이타베이스 인스턴스는 병렬 실행 서버 풀(pool)을 제공합니다. 가용한 병렬 실행 서버의 총 수는 데이타베이스 시스템에
의해 동적으로, 자동적으로 조정이 됩니다. 동시에 수행되는 병렬 오퍼레이션의 수가 갑자기 증가하면, 오라클 데이타베이스는 풀 상의
병렬 실행 서버의 수를 자동으로 변화시킵니다.
병렬 오퍼레이션에 사용되는 병렬 실행 서버의 수를 병렬 정도(degree of parallelism, DOP)라 합니다. 시스템의 과부하를 방지하기 위해
질의 실행 시 DOP가 결정되는데, 가용한 하드웨어 자원, 시스템의 실제 업무부하, 대상 오브젝트의 병렬 속성(parallel property), 질의
요청의 업무상 중요도(priority) 등을 기반으로 합니다. 오라클 데이타베이스는 매 오퍼레이션에 대해 위 요소들을 고려해서 DOP를 자
동적으로, 동적으로 조정합니다. 그 결과 시스템의 자원을 최적으로 활용할 수 있는 것입니다.
61
Oracle Database 10g 주요 기능 (DBMS)
3. Performance & Scalability
마. 초대형 데이타베이스 지원
데이터 파티셔닝(Partitioning)
데이타 파티셔닝은 large Table과 index를 분할하여 저장 하는 방법으로, 큰 데이터를 작은 조각(partition)으로 나눔으로써 관리의 용이
및 질의 성능의 향상을 이룰 수 있습니다.
테이블 파티션 기법은 다음과 같습니다.
Range Partitioning – 파티셔닝 컬럼 값의 범위에 따라 파티셔닝을 하는 기법으로, 연대기적인 데이터와 데이타웨어하우스 환
경의 ‘rolling window’ 오퍼레이션에 적합
Hash Partitioning – 파티셔닝 컬럼에 hash function을 적용해 데이터를 여러 파티션에 흩뜨리는 기법으로, 데이터의 균일하게
분포하는데 효과적
List Partitioning – 파티셔닝 컬럼의 구체적인 값들에 대해 파티셔닝을 명확하게 콘트롤할 수 있는 기법
Composite (Range + Hash 혹은 List + Hash)
Partition
Partition
Name
Key Range
SALES 01 Table
62
01-JAN-01
to
31-MAR-01
Q1
01-APR-01
TO
30-JUN-01
Q2
01-JUL-01
TO
30-SEPT-01
Q3
01-OCT-01
TO
31-DEC-01
Q4
Oracle Database 10g 주요 기능 (DBMS)
3. Performance & Scalability
마. 초대형 데이타베이스 지원
데이터 파티셔닝(Partitioning)
오라클 데이타베이스는 또한 아래와 같이 인덱스 파티셔닝의 세가지 유형을 제공합니다.
Local index – 대상이 되는 partitioned table과 같은 파티셔닝 기법을 사용한 인덱스
Global partitioned index – 대상이 되는 테이블(partitioned or non-partitioned)과 다른 파티셔닝 키를 사용해 파티셔닝한 인
덱스
Global non-partitioned index – non-partitioned table에 대한 인덱스와 기본적으로 동일하며, 이 인덱스 스트럭쳐는 파티션
되지 않음
오라클 데이타베이스는 partitioned/non-partitioned, table/index 모든 조합을 허용합니다. 즉, partitioned table에 대해
partitioned/non-partitioned index를 유지할 수 있고, non-partitioned table에 대해서도 partitioned/non-partitioned index를 유지할
수 있습니다.
 Rolling window operation
새로운 데이터를 로딩하고, 오래된 데이터는 제거(purge)함으로써, 데이터 웨어하우스는 주기적으로 최신의 정보를 유지할 수
있습니다. 이 작업에 해당되지 않는 파티션들엔 아무 영향이 없으며 결과적으로 자원의 활용을 최소화 하고, 사용자의 가용성
은 높아집니다.
63
Oracle Database 10g 주요 기능 (DBMS)
3. Performance & Scalability
마. 초대형 데이타베이스 지원
데이터 파티셔닝(Partitioning)
 Partition Pruning
Partition Pruning은 질의 옵티마이저가 SQL 문에서 FROM절과 WHERE절을 분석하여 질의 처리 시 불필요한 Partition을 접근하
지 않도록 하고, 필요한 데이터가 포함된 Partition만을 접근할 수 있게 해 줍니다. Partition Pruning 기법은 디스크로부터 읽
어오는 데이터의 양을 효과적으로 줄이고 질의 처리 성능을 향상시키며 자원을 효율적으로 사용할 수 있게 됩니다.
64
Oracle Database 10g 주요 기능 (DBMS)
3. Performance & Scalability
마. 초대형 데이타베이스 지원
데이터 파티셔닝(Partitioning)
 Partition-Wise Join
Multi-table 조인에 있어서 성능을 최대한 증진시키기 위한 오라클에서 제공하는 기법입니다. 조인 키에 의해 파티션된 테이블간
에 조인을 할때 테이블 전체가 아닌 각 파티션 간의 조인이 발생합니다. 이 기능은 대량이 아닌 소량의 조인을 하게 함으로써
응답 속도를 빠르게 하고 CPU 나 메모리의 자원의 사용을 최소화 합니다. 이 기능은 병렬 처리에서 더욱 더 큰 이점을 줄 수 있
습니다.
65
Oracle Database 10g 주요 기능 (DBMS)
3. Performance & Scalability
마. 초대형 데이타베이스 지원
데이터 파티셔닝(Partitioning)
 Global Index
오라클 데이타베이스 10g에서는 table, partitioned table, index-organized table에 대해서 hash-partitioned global index를 생
성할 수 있으며, 동시 insert 작업이 많은 애플리케이션에 적용하면 성능 향상을 이룰 수 있습니다.
R
A
N
G
E
1000, 1001, 1002, 1003, …
…
1000, 1001, 1002, 1003, …
…
H
A
S
H
 Large number of partitions
파티셔닝을 많이 사용하고 데이터 웨어하우스의 크기가 계속 증가되면서, 수만개 파티션을 가진 데이타베이스 스트럭쳐의 생성
이 필요해집니다. 오라클 데이타베이스 10g에서는 partitioned 오브젝트에 대한 확장성을 현저히 향상시켰으며, partitioned 오
브젝트를 다루는 데에 있어서 성능의 영향을 최소화할 수 있도록 메모리를 사용합니다. 예를 들어 18,432 파티션을 가지고 있
는 테이블에 대한 DROP TABLE 오퍼레이션을 수행할 때 이전에 비해 56% 정도 향상됨을 볼 수 있습니다.
66
Oracle Database 10g 주요 기능 (DBMS)
3. Performance & Scalability
마. 초대형 데이타베이스 지원
초고속 데이터 이동
오라클 데이타베이스 10g는 데이터에 대한 extract, load, transform의 새로운 기능을 제공함으로써, 대형 데이터 웨어하우스나 데이터
마트를 효율적으로 구축할 수 있습니다.
 Oracle Transportable Tablespace
Transportable Tablespace는 다른 데이타베이스 간에 tablespace를 가장 빠른 방법으로 전송할 수 있는 메커니즘을 제공하며,
다음과 같은 기능을 가지고 있습니다.
Tablespace내의 실 데이터를 unload/reload 작업 없이 옮기고 공유할 수 있음
단순한 plug/unplug의 개념이기 때문에 빠르며, tablespace의 크기에 상관없이 거의 동일한 성능을 보장함
Tablespace를 읽기모드로 마운트하면, 두 데이타베이스가 동시에 정보를 공유하고, 독립적으로 액세스할 수 있음
상이한 플랫폼 사이에서도 지원이 됨 - Byte order가 다른 플랫폼 사이에서도 지원이 됨
Tablespace의 이름을 변경할 수 있는 기능 제공 - 옮기는 대상 데이타베이스에 이미 같은 이름의 테이블스페이스가 존재할 때
유용
 Oracle Data Pump
Transportable Tablespace와 마찬가지로 다량의 정보를 빠르게 옮길 수 있는 인프라스트럭쳐를 제공하며, 기존의
export/import보다 더욱 빠른 성능을 지원합니다.
Direct path나 external table과 같이 데이타 액세스 메소드가 자동적으로 선택됨
worker process의 수를 DBA가 지정할 수 있으며, external table을 데이타 액세스 메소드로 선택된 경우 자동으로 PQ
process를 병렬로 사용할 수 있음
Job의 진행은 마스터 테이블에 기록이 되며, 비정상적으로 종료된 job을 재기동시킬 수 있음
현재 진행되는 data pump job에 영향을 주지 않은채로 그 job에 attach시켜 다른 job을 실행시키거나, detach시킬 수 있음
dump 파일의 크기 예측과 진행 정도의 모니터링 가능
EXCLUDE, INCLUDE, 그리고 CONTENT parameter를 사용하여 대상 오브젝트를 세분화(fine-grained object selection)할 수
있음
expdp/impdp 명령을 제공하고(interactive mode 가능), Enterprise Manager를 사용할 수 있음
network mode가 지원이 되어, dump file의 생성없이 바로 원격지로부터의 unload와 로컬의 load를 수행할 수 있음
67
Oracle Database 10g 주요 기능 (DBMS)
3. Performance & Scalability
바. 플랫폼 관련 성능 향상
Microsoft Windows-based system
64-bit Windows의 출현은 32-bit 플랫폼이 가졌던 한계, 즉 파일 크기나 메모리 어드레싱(addressing)의 제약사항을 해소시킵니다. 오
라클 데이타베이스 10g는 64-bit Windows에 가용하며, Intel Itanium 2 프로세서에 기반한 하드웨어 아키텍쳐의 고성능 이점을 최대한
활용합니다.
또한 오라클 데이타베이스 10g는 fiber를 사용함으로써 Microsoft Windows 플랫폼상에서 트랜잭션 처리 애플리케이션의 성능과 확장성
이 향상되었습니다. User thread라 부르기도 하는 fiber는 super-lightweight 프로세스로, OS 스케쥴러와 관련된 스케쥴링과 컨텍스트
스위치(context switch)를 제거하거나, 감소시킬 수 있습니다.
High-speed Infiniband Network Support
Oracle Net High-Speed Interconnect Support는 오라클 데이타베이스 10g의 신기능으로, Infiniband 아키텍쳐와 고속의 네트워크를 지
원하기 위해 디자인되었습니다.
인터넷 애플리케이션은 노드간 오퍼레이션의 동기화, 데이터 공유를 위해 빠르고 신뢰할 만한 정보의 교환을 필요로 하지만, 오늘날 광
범위하게 사용되는 LAN과 인터텟 프로토콜(TCP/IP)은 이러한 성능을 충분히 만족하지 못하고 있습니다. High speed, high density,
serial interconnect의 Infiniband는 이러한 제약사항을 극복하고, 데이터 센터의 지속적인 요구수준을 만족하기 위해 디자인 되었습니
다. 이 기능은 성능을 향상시키고, CPU utilization을 감소시킵니다.
Infiniband를 사용하면 애플리케이션은 메시지 작업을 고속의 네트워크 하드웨어에 맡기고, 여분의 CPU를 다른 작업에 활용할 수 있는
것입니다.
68
Oracle Database 10g 주요 기능 (DBMS)
4. Server Manageability
가. 개요
Oracle Database 10g는 자가관리 기능이 크게 향상되어 DBA의 반복적인 작업을 간소화 해주고, 최적의 시스템 성능을
보장할 수 있는 다양한 정보를 제공합니다.
Application
and SQL
Management
Storage
Management
Monitor
Fix
Backup and
Recovery
Management
69
Alert
Automatic
Management
System
Resource
Management
Advise
Space
Management
Common
Infrastructure
Oracle Database 10g 주요 기능 (DBMS)
4. Server Manageability
가. 개요
Oracle Database 10g는 아래와 같은 지능형
기반구조를 갖습니다.
자동적
Server
Alerts
Automated
Tasks
능동적
Advisory
Framework
Automatic
Workload
Repository
70
효율적
Oracle Database 10g의 지능형 기반구조 아래에서 자가관
리를 위한 주요 신기능은 아래와 같습니다.
 Automatic Workload Repository(AWR)
AWR은 오라클 데이터베이스가 문제를 감지하고 스스
로 해결할 수 있도록 각종 정보를 수집하고 유지/관리하
는 서비스를 제공해 줍니다. 즉, 데이터베이스의 데이터
웨어하우스라고 할 수 있습니다.
 Automatic Database Diagnostic Monitor(ADDM)
데이터베이스 내의 자동화된 진단 감시 엔진입니다.
 Automatic Tuning Optimizer(ATO)와 SQL Tuning Advisor(STA)
애플리케이션 튜닝에 대한 SQL 프로화일 기능을 갖습
니다.
 Automatic Storage Management(ASM)
스토리지를 관리를 자동화해 주는 서비스입니다. 디스
크 추가/삭제 작업 시 자동적으로 데이터를 재 분배 해
주며, striping 효과를 데이터파일 단위로 지정할 수 있
는 고성능 클러스터 파일시스템 입니다.
Oracle Database 10g 주요 기능 (DBMS)
4. Server Manageability
나. 공간 관리(space management)
오라클은 공간관리를 쉽게 하기위해 아래와 같은 기능을 제공합니다
 Automatic Undo Management
 Oracle-Managed Files
 Free Space Management
 Multiple Block Sizes
 Space Advisors
Automatic Undo Management
 Oracle 서버는 커밋되지 않은 트랜잭션을 롤백시키기 위해, 데이터베이스의 복구 과정을 위해, 그리고 동시 사용자 환경에 필요한 읽기
일관성의 보장을 위해 롤백 정보 또는 Undo 정보를 관리합니다. 이러한 Undo 정보의 관리는 전통적으로 롤백 세그먼트에 의하여 이루
어져 왔습니다. Oracle10g는 자동화된 Undo 관리 기능을 제공함으로써 보다 향상된 Undo 관리를 가능하게 합니다.
 Oracle Database 10g는 데이터베이스 자체가 'undo' 세그먼트를 관리합니다. 즉, DBA는 이 세그먼트에 대한 크기산정과 튜닝을 수행
할 필요가 없습니다. 단지, undo 테이블스페이스만을 생성하여 할당하면 데이터베이스는 undo 경합현상, 일관성 문제해결 그리고 공
간 활용도를 극대화 합니다.
 이 기능을 사용하면, UNDO_RETENTION 파라메터를 설정하여 커밋된 undo 정보를 데이터베이스에 일정기간동안 보존할 수 있습니다.
위 값을 적절하게 설정함으로써 시간이 오래 걸리는 Query가 성공적으로 종료되게끔 조치할 수 있습니다. 이러한 작업시, V$UNDOSTA
뷰를 통해 모니터링 할 수 있습니다.
Oracle-Managed Files
 오라클 데이터베이스는 궁극적으로 운영체제 상의 파일에 데이터를 저장합니다. 따라서 다수의 데이터베이스 작업은 파일과 관련되며,
그 경우 SQL 명령 등에 파일에 관한 명세를 주어야 합니다
71
Oracle Database 10g 주요 기능 (DBMS)
4. Server Manageability
나. 공간 관리(space management)
Oracle-Managed Files
 Oracle은 파일을 생성하고 삭제하는데 관한 표준 파일 시스템 인터페이스를 사용하는 OMF(Oracle Managed File) 기능을 새로 제공합
니다. 이에 의해 데이터베이스 관리자가 Oracle 데이터베이스를 구성하는 물리적인 파일들을 직접적으로 다룰 필요를 제거해 주어 데이
터베이스 관리 작업을 한결 간단하게 합니다. 이제 데이터베이스 관리자가 스페이스 계획 및 관리 작업을 함에 있어서 파일을 생성하고
삭제하는 등의 일상적인 작업은 OMF를 사용하는 경우 자동화됩니다. OMF로 얻을 수 있는 추가적인 장점들은 다음과 같습니다.
포터블 애플리케이션의 개발이 쉽습니다. 애플리케이션을 구성하는 SQL 스크립트 내에 파일 스펙을 명시할 필요가 없기 때문
입니다.
테스트 및 개발용 데이터베이스의 생성 및 관리를 용이하게 합니다. 데이터베이스를 구성하는 운영체제 파일은 그것들이 더 이
상 필요 없을 때 Oracle 서버에 의해 자동으로 삭제되기 때문입니다.
실수로 잘못된 파일 스펙을 명시함으로써 생길 수 있는 데이터베이스 붕괴 가능성이 줄어듭니다.
더 이상 사용되지 않는 파일들이 자동으로 삭제되므로 디스크 공간 낭비가 줄어듭니다.
Free space management
 오라클은 Bitmap 정보를 가지고, 테이블내의 가용공간을 관리할 수 있습니다. 뿐만 아니라, 기존의 딕셔너리에 기초한 공간관리도 가능
합니다. 이러한 Bitmap 정보는 공간관리와 관련되어 테이블을 튜닝할 필요성을 제거하고 보다 나은 성능을 제공합니다.
 또한, 데이터파일의 크기가 자동적으로 증가될 수 있습니다.
Multiple Block size
 Oracle 데이터베이스의 논리적 구조 중 최소의 단위는 데이터베이스 블록입니다. 데이터베이스 블록의 크기는 운영체제 블록 크기의 정
수배로 정의됩니다. Oracle 서버의 모든 I/O는 데이터베이스 블록 단위로 이루어 짐을 감안할 때 블록의 크기는 시스템의 성능에 중요
한 요소라 할 수 있습니다.
 Oracle은 하나의 데이터베이스에 복수의 블록 크기를 허용합니다. 즉, SYSTEM 테이블스페이스의 블록 크기와 기타 다른 테이블스페이
스에 대한 기본 블록 크기로 사용되는 표준 블록 크기와 5개까지의 비표준 블록 크기를 지원합니다
72
Oracle Database 10g 주요 기능 (DBMS)
4. Server Manageability
나. 공간 관리(space management)
Multiple Block size
 이 기능은 아래와 같은 장점을 제공합니다
서로 다른 성격을 갖는 데이터베이스 오브젝트를 적절한 블록 크기를 갖는 테이블 스페이스에 위치시킴으로써 I/O 성능을 극대
화할 수 있습니다. 예를 들어 OLTP 성 데이터의 I/O 보다는 DSS 성 데이터의 I/O가 보다 큰 단위로 이루어져야 성능이 높아질
수 있는데 Oracle의 복수 블록 크기 지원은 이러한 성능 향상을 가능하게 합니다.
Oracle 서버는 메타데이터에 대한 Import/Export 및 데이터 파일의 복사를 이용한 가볍고 간편한 데이터 이동 방법인 테이블
스페이스 전송기법을 제공하고 있습니다. 이러한 테이블 스페이스의 전송은 주로 데이터 웨어하우스의 구축에 필요한 기법입
니다. 그런데 OLTP 데이터베이스와 데이터 웨어하우스 데이터베이스는 블록의 크기가 다른 것이 보통이므로, 데이터베이스에
하나의 블록 사이즈만을 사용해야 한다면 그 실효가 낮아집니다. 복수의 블록 사이즈 지원에 의해 이러한 테이블 스페이스 전
송 기법의 활성화를 꾀할 수 있습니다.
Automatic Segment-space management
 데이터베이스의 테이블 등에 대해 새로운 데이타를 삽입하거나 기존의 데이타를 (더욱 큰 크기로) 갱신하고자 할 때에는 우선 해당 세
그먼트 내에서 데이타가 더 저장될 수 있는 여유를 가진 블락을 찾아야 합니다. 전통적으로 이러한 세그먼트 내의 공간 사용 현황에 대
해 Oracle 서버는 내부적으로 free list라는 구조를 통해 관리해 왔습니다. Oracle은 free list 대신 비트맵을 이용하여 세그먼트 내에서의
공간 사용을 관리하는 기법을 사용합니다.
오라클은 공간관리를 용이하게 하도록 지원하는 아래와 같은 공간권고자 기능을 제공합니다.
 Segment Advisors, Undo Advisors
Segment shrinking
 Oracle10g 이전 버젼에서는 세그먼트 HWM이하에 할당된 공간은 오직 세그먼트를 이관하거나 재 정의할 때 반납되었습니다.
 Oracle10g에서는 세그먼트의 빈 공간을 shrink 할 수 있습니다. 세그먼트가 shrink 될 때, 그것의 데이터는 집약되고 HWM 정보도 변경
됩니다. 사용되지 않는 공간은 세그먼트를 포함하고 있는 테이블스페이스에 반납되어 집니다.
73
Oracle Database 10g 주요 기능 (DBMS)
4. Server Manageability
나. 공간 관리(space management)
Segment shrinking
Data
Data
Unused
Space
Unused
Space
HWM
ALTER TABLE
최적화(Shrink) 명령 수행
SHRINK SPACE [COMPACT];
장점
 더욱 빠른 데이타 접근
최적화된
세그멘트
 스페이스 활용성 증가
 효과적인 스페이스 관리
HWM
74
Oracle Database 10g 주요 기능 (DBMS)
4. Server Manageability
나. 공간 관리(space management)
Segment Advisors
 이는 디스크 공간점유율, 즉 객체크기 증가 경향/불필요한 Row 분열현상에 대한 권고안을 작성합니다.
 앞서 설명한 shrinking 대상이 되는 객체에 대한 권고안을 작성해 주는 것입니다.
 동적인 데이터베이스 작업결과로 객체안에 사용되지 않는 디스크 공간이 있을수 있으며, 이 공간을 필요로 하는 다른 객체들이 존재할
수 있습니다. 이러한 정보와 객체크기 증가경향에 대한 정보를 확인할 수 있음으로써, DBA는 자원사용 예측을 할 수 있고 공간관리에
대한 에러를 미연에 방지할 수 있습니다.
Undo Advisors
 이는 트랜잭션 관리를 용이하게 합니다(특히, Automatic Undo 관리).
 Automatic Undo 관리 모드에서는 UNDO 테이블스페이스 크기를 지정해야 하고 UNDO Retention 값을 설정해야 합니다.
 Undo Advisor는 주어진 UNDO 테이블스페이스에 적합한 UNDO Retention 값을 권고해 줍니다. 반대로, UNDO Retention 값에 최적화
된 UNDO 테이블스페이스 크기를 권고해 줍니다.
 Undo Advisor는 최근에 생성된 UNDO 정보에 기초합니다. 아래와 같은 정보를 포함하고 있습니다.
현재의 UNDO Retention 값
현재의 UNDO 테이블스페이스 크기
가장큰 Query 시간
최적화된 UNDO Retention 크기
현 UNDO Retention에 필요한 UNDO 테이블스페이스 크기
75
Oracle Database 10g 주요 기능 (DBMS)
4. Server Manageability
나. 공간 관리(space management)
Resumable space allocation
 긴 수행 시간을 필요로 하는 대규모의 데이터베이스 연산은 종종 오랜 시간 실행되던 도중 공간 부족, 공간 한계치 도달, 그리고 쿼타 위
반 등의 에러를 만날 수 있습니다. 이런 종류의 에러는 결코 치명적인 것이 아니며 얼마든지 정정할 수 있는 성질의 것입니다. 이 경우
무조건 해당 작업을 롤백 시키고, 사용자에게는 에러를 리턴하는 방식은 유연하지 못합니다.
 Oracle은 재개 가능한 스페이스 할당 기능을 제공합니다. 즉 공간 관련 에러가 발생한 작업을 잠시 정지시키고 그러한 에러를 정정할 수
있는 기회를 제공함으로써 상기한 문제를 해결합니다.
76
Oracle Database 10g 주요 기능 (DBMS)
4. Server Manageability
다. 메모리 관리(memory management)
오라클은 공유메모리를 동적으로 변경하는 것을 허용하는 동적메모리 관리 기법을 제공합니다. 또한, 프로세스 마다 할당
되는 개별메모리에 대한 자동관리 기능도 제공합니다. 결과적으로 메모리 관련 파라메터를 튜닝하는 시간을 절약할 수 있
습니다.
Dynamic SGA
 Oracle 서버 내의 모든 실행 쓰레드에 의해 공유되는 SGA는 데이터베이스 버퍼 캐시, 공유 풀 등의 몇가지 컴포넌트로 구성되어 있으
며, 각각의 크기를 어떻게 조절하느냐 하는 것은 데이터베이스 튜닝의 중요한 과제 중의 하나입니다.
 이러한 각각의 컴포넌트들은 전통적으로 정적으로 할당되어져 왔습니다. 그 크기는 init.ora 파라미터 파일에 지정된 값에 근거하며, 일
단 할당된 이후에는 늘이거나 줄이는 튜닝 작업을 위해서는 데이터베이스 관리자가 우선 데이터베이스를 셧다운하여 파라미터 파일을
수정한 후 다시 인스턴스를 시작시켜야 했습니다.
 Oracle의 동적 SGA는 데이터베이스를 내리지 않고도, 즉 인스턴스가 수행 중일 때 SGA의 구성을 변화시키는 방법을 제공합니다. 따라
서 시스템의 워크로드의 변화에 발맞추어 버퍼 캐시와 공유 풀 등의 SGA 컴포넌트들의 크기를 지정된 전체 SGA의 크기 내에서 변화시
킴으로써 시스템의 가용성 손상이 없는 빠른 튜닝이 가능합니다.
 나아가 Oracle은 버퍼 캐시의 크기에 변화를 주었을 때에 수반하는 데이터베이스의 성능 변화를 예측해볼 수 있도록 하는 버퍼 캐시
Advisory 기능을 제공함으로써 데이터베이스 관리자의 튜닝 작업에 중대한 단서를 제공합니다.
오라클은 데이터베이스가 최적성능을 발휘할 수 있게끔 아래와 같은 3가지 권고자 기능을 제공합니다
 Shared Pool Advisor
 Buffer Cache Advisor
 PGA Advisor
77
Oracle Database 10g 주요 기능 (DBMS)
4. Server Manageability
다. 메모리 관리(memory management)
Shared Pool Advisor
 Shared Pool Advisor는 library cache의 메모리 사용율을 추적하여 최적화된 shared pool 크기를 결정합니다.
 Library cache의 가용한 메모리양은 오라클 인스턴스의 'parse' 비율에 많은 영향을 끼칩니다.
 Shared Pool Advisor의 통계정보는 libarary cache 메모리에 대한 정보를 제공하여, DBA가 shared pool에 있는 객체들의 가용 유무에
영향을 끼칠 수 있는, shared pool 크기의 변화를 예측할 수 있게끔 도와줍니다.
Buffer Cache Advisor
 Buffer Cache Advisor는 buffer cache의 최적 크기를 결정합니다.
 새로운 인스턴스를 구성할 때, buffer cache의 정확한 크기를 아는 것은 어려운 일 입니다.
 DBA는 cache 크기를 설정한 후 각종 통계정보를 활용하여 cache 크기의 증감을 고려합니다.
 이 통계정보는 buffer cache hit ratio나 V$DB_CACHE_ADVICE 뷰를 사용하여 획득하게 됩니다.
PGA Advisor
 이는 개별 오라클 서버프로세스에 할당되는 PGA 메모리를 튜닝합니다.
 자동 PGA 메모리 관리모드에서는 PGA 메모리를 동적으로 조정함으로써 PGA_AGGREGATE_TARGET 파라메터의 상위값을 유지합니
다. 이와 동시에, 오라클은 최적의 PGA 메모리를 사용하는 데이터베이스 영역의 수를 최대화 함으로써 메모리를 과다하게 소모하는
SQL 연산의 성능을 극대화 합니다.
 데이터베이스 영역의 대부분은 1단계 연산으로 처리되지만, PGA_AGGREGATE_TARGET 파라메터 값이 작은 경우에는 2단계 연산을
필요로 합니다.
 PGA Advisor를 통해 PGA_AGGREGATE_TARGET의 값을 최적화 할 수 있습니다.
78
Oracle Database 10g 주요 기능 (DBMS)
4. Server Manageability
다. 메모리 관리(memory management)
오라클은 자동적으로 메모리 관리를 수행하여 어떠한 환경에서도 좋은 성능을 보장합니다. 아래에서 이러한 자동 메모리
관리 기법에 대해 살펴 보도록 하겠습니다
Automatic Shared Memory management
 오라클 데이터베이스에서 사용되는 중요한 공유메모리의 관리를 자동화 해주는 기능입니다. 즉, 해당 파라메터의 지정이 필요 없게 되
었습니다. 게다가, 가용한 메모리를 효율적으로 사용할 수 있게 합니다.
 예를 들어, OLTP 작업이 낮에 발생하고 대용량 병렬 일괄처리 작업이 밤에 수행된다고 할 때, DBA들은 이 요구사항에 맞춰 해당 메모
리 파라메터를 고려해야 했습니다.
 Automatic Shared Memory Management은 OLTP 작업 시, Buffer cache에 대부분의 메모리를 할당하여 좋은 I/O 성능을 보장하고, 병
렬일괄처리 작업 시에는 이 메모리가 LARGE Pool 영역으로 이전되어 병렬처리가 효율적으로 처리되게끔 조치합니다.
 Automatic Shared Memory Management은 SGA 구성을 간편하게 합니다. 과거에는, Buffer cache, shared pool, java pool 그리고
large pool에 대한 메모리 값을 수동으로 지정해야만 했습니다. 그러나, 이러한 값을 효율적으로 지정하는 것은 상당히 어려운 일입니다.
메모리를 적게 할당한 경우 좋지 않은 성능이 발생할 수 있고 메모리 부족현상을 초래할 수 있습니다. 반대로, 크게 할당한 메모리는 가
용 메모리를 낭비하는 결과를 낳습니다.
 Automatic Shared Memory Management은 SGA 구성을 간편하게 합니다. 과거에는, Buffer cache, shared pool, java pool 그리고
large pool에 대한 메모리 값을 수동으로 지정해야만 했습니다. 그러나, 이러한 값을 효율적으로 지정하는 것은 상당히 어려운 일입니다.
메모리를 적게 할당한 경우 좋지 않은 성능이 발생할 수 있고 메모리 부족현상을 초래할 수 있습니다. 반대로, 크게 할당한 메모리는 가
용 메모리를 낭비하는 결과를 낳습니다.
 이 기능은 전체 SGA 구성요소에서 사용될 총 메모리양을 지정할 수 있게 합니다. 오라클은 주기적으로 위 메모리를 재 분배합니다.
 새로운 SGA_TARGET 파마메터는 SGA 내의 모든 메모리양을 나타냅니다. 이는 자동적으로 크기가 변경 가능한 요소, 수동으로 변경할
수 있는 요소 그리고 데이터베이스 기동시 내부적으로 할당되는 요소를 포함하는 것입니다.
79
Oracle Database 10g 주요 기능 (DBMS)
4. Server Manageability
다. 메모리 관리(memory management)
Automatic Shared Memory management
Buffer cache
Buffer cache
DB_CACHE_SIZE
SHARED_POOL_SIZE
LARGE_POOL_SIZE
JAVA_POOL_SIZE
Large pool
Large pool
Shared pool
Shared pool
Java pool
Java pool
Online Users
Batch jobs
Total SGA size
SGA_TARGET
 위 화면의 우측 그림에서 볼 수 있는 바와 같이 위 기능은 SGA_TARGET 파라메터로 지정합니다.
 SGA_TARGET 값이 ‘0’ 이 아닌 값으로 지정하면 아래 파라메터들은 자동적으로 또한 동적으로 지정되는 것입니다.
Database buffer cache (Default pool)
Shared pool
Large pool
Java pool
80
Oracle Database 10g 주요 기능 (DBMS)
4. Server Manageability
다. 메모리 관리(memory management)
Automatic Shared Memory management
 그러나, 아래 파라메터들은 위 기능이 활성화 되어도 자동 튜닝작업에 포함되지 않습니다(수동 지정 필요)
Log buffer
Other buffer caches (KEEP/RECYCLE, other block sizes)
Streams pool (new in Oracle Database 10g)
Fixed SGA and other internal allocations
 SGA_TARGET이 ‘0’ 으로 지정되면, Automatic Shared Memory Management 기능이 비 활성화 됩니다.
81
Oracle Database 10g 주요 기능 (DBMS)
4. Server Manageability
라. 성능 진단 관리
ADDM(Automatic Database Diagnostic Monitor)은 오라클 데이터베이스 시스템을 진단하고 튜닝하는데 소요되는 시간을
획기적으로 줄일 수 있는 방법을 제공합니다.
ADDM은 자원을 과도하게 사용하는 것으로 보이는 작업과 항목들을 집중 모니터링 함으로써 데이터베이스의 문제를 진
단하고 인스턴스를 분석하는 역할을 담당하는 서버 모듈입니다. 대부분의 시스템에서의 성능문제는 자원의 효율적 활용
을 저해하는 병목현상으로 발생되는 것이 사실입니다.
ADDM은 자동적으로 그러한 병목현상을 감지할 수 있습니다. 또한, 다른 오라클 관리기법과 함께 ADDM은 문제를 해결할
수 있는 권고안을 제시해 주거나 문제의 원인을 찾아내기 위한 Drill down 기법을 제공합니다. 이와 반대로 튜닝이 시스템
에 이점을 가져다 주지 못하는 부분에 대한 정보도 제공합니다.
DBA, OEM에서 지정할 수 있는 것처럼 ADDM은 MMON 프로세스와 상호 통신하여 데이터베이스를 추적하고 경고정보를
생성해 낼 수 있습니다.
82
Oracle Database 10g 주요 기능 (DBMS)
4. Server Manageability
마. 리소스 관리자(Resource Manager)
개요
 Oracle 서버는 Database Resource Manager를 이용하여 데이터베이스 자원 관리 기능을 제어합니다. 원래 운영체제가 시스템의 자원
에 대한 기본적인 관리를 수행하지만, 그러한 운영체제의 관리가 데이터베이스의 관점에서 볼 때에는 비효율적일 수 있습니다.
 Database Resource Manager의 주 목적은 바로 그러한 비효율적인 운영체제 시스템 자원 관리로 인해 발생하는 문제를 제거하고
Oracle 서버가 자원 관리를 직접 제어할 수 있도록 하는 것입니다.
Resource Manager는 OS가 처리할 수 없는 많은 자원할당 문제를 해결합니다
 과도한 overhead. 이는 서버프로세스의 수가 많을 때 오라클 서버 프로세스간의 OS context switching 결과로 발생합니다.
 비효율적인 scheduling. OS는 오라클 데이터베이스가 latch를 잡고 있을 때, descheduling 작업을 수행합니다. 이는 비효율적인 작업
입니다.
 부적당한 자원할당. OS는 모든 활성 프로세스들간에 균등하게 자원을 분배하기 때문에 다른 작업에 우선적으로 자원을 할당할 수 없습
니다.
 데이터베이스에 특화된 리소스 관리능력 부재
Resource Manager를 가지고 DBA는 아래와 같은 작업을 할 수 있습니다
 사용자수와 시스템의 로드에 관계없이 특정 사용자에게 자원을 할당할 수 있습니다.
 다른 사용자와 Application에게 CPU 자원에 대한 사용율을 할당함으로써 가용한 자원을 분산할 수 있습니다.
 특정 사용자의 병렬처리 프로세스들의 수를 제한할 수 있습니다.
 활성화 세션풀을 생성합니다. 이 풀은 사용자 그룹내에서 동시에 활성화 할 수 있는 사용자 세션들로 구성됩니다. 풀의 최대 세션수를
초과하는 다른 세션들은 큐에서 대기하게 됩니다.
 사용자를 특정 그룹에서 다른 그룹으로 변경할 수 있습니다.
 특정 사용자 그룹의 멤버가 지정된 시간보다 오래 수행하는 세션을 생성하면, 그 세션은 자동적으로 다른 자원요구사항을 가지는 그룹
으로 변경됩니다.
83
Oracle Database 10g 주요 기능 (DBMS)
4. Server Manageability
바. Application Development
오라클은 Application 개발관리를 용이하게 도와주는 아래 기능을 제공합니다
 SQLAccess Advisor
 SQL Tuning Advisor
SQLAccess Advisor
 SQLAccess Advisor는 수행되는 SQL 문장의 성능문제를 해결하는데 필요한 정보를 제공합니다.
 이는 Query 응답시간을 줄이기 위한 Materialized 뷰/Materialized 뷰 로그/인덱스 등을 권고하게 됩니다.
 또한, 아래와 같은 사용자 정의 제약조건을 수용할 수 있습니다.
스토리지 크기 제약
Refresh 시간 제약
스토리지 크기와 Refresh 시간 제약의 조합
전체 또는 부분적인 workload 지정
 SLQAccess Advisor는 SQL를 처리함에 있어 필요한 중요요소와 상호통신합니다. 이는 MView Rewrite 엔진 그리고 Optimizer를 포함
합니다. SLQAccess Advisor는 현재 튜닝목적에 기반한 방법론을 적용하게 됩니다. 하나의 SQL 문장에 대해서는 현재 문장에 영향을
끼치는 권고안을 작성하게 되고, 전체 업무로드에 대해서는 이 업무에 영향을 끼칠 수 있는 사항을 고려한 후 권고안을 작성해 줍니다.
 SQLAccess Advisor는 객체들의 물리적 구조관계를 이해할 필요성을 제거해 줍니다. 어떤 경우, 잘 작성된 SQL문 이라도 관계되는 인
덱스가 없기 때문에 좋지않은 실행계획을 따를 수 있습니다. 또한, 어떤경우는 Mview/Mview 로그가 존재하여 성능을 향상시킬 수 있습
니다. Advisor는 SQL문을 검사하여 성능향상을 위한 구성요소를 결정하고 더 나은 세부 권고안을 제공해 줍니다.
 많은 경우, 잘못 작성된 SQL문장의 성능은 다양한 구조적 변화를 적용하여 해결할 수 있습니다. 예를 들어, 인덱스 구조, MView 또는
MView 로그. 그러나, 어떠한 구조를 적용해야 되는가를 결정하는 작업자체가 쉬운 일이 아닙니다. 그리고, 권고된 방법이 어떠한 경우
에 적합한가를 판단하는 것도 어려운 일입니다. SQLAccess Advisor는 튜닝전략에 최적화된 구체화된 방법론을 제공해 주는 것입니다.
84
Oracle Database 10g 주요 기능 (DBMS)
4. Server Manageability
바. Application Development
SQL Tuning Advisor
 SQL Tuning Advisor는 SQL 문장의 실행계획을 향상시킬 수 있는 권고안을 제시해 줍니다. 단, 시스템이 SQL 문장에 의해 참조되는 객
체에 대한 통계정보를 가지고 있다라는 사전조건을 만족해야 합니다.
 Advisor는 더 나은 실행계획을 얻기 위해 SQL 문장이 어떻게 작성되었는가를 먼저 분석합니다. 제약조건과 같은 요소 그리고 인덱스와
같은 다른 물리적 구조요소를 검사하게 됩니다. 각 요소를 확인하여, Advisor는 현재의 실행계획 보다 더 적은 비용이 소요되는 실행계
획을 작성하게 되는 것입니다.
 또한, 사용자가 SQL문에 적용할 수 있는 HINT를 적용해 봄으로써 구조를 변경시키지 않는 실행계획도 생성할 수 있습니다.
 Advisor는 시스템 통계정보를 갖고 실제 실행시의 동작을 검증하고 비교할 수 있습니다. SQL 문장이 실행되는 동안 시스템정보를 검사
하여 더 나은 권고안을 작성하게 됩니다.
 ADDM(Automatic Database Diagnostic Monitor) 역시 실행단계의 환경정보를 감지합니다. 그러나, 그것은 분석기간 동안 특정 SQL
문장이 상대적으로 큰 문제를 발생시키지 않는 다면 SQL 문장에 대한 권고안을 작성하지는 않습니다. SQL Tuning Advisor는 모든
SQL에 대해서 모든 가능한 상황에 대한 정보를 제공해 줍니다.
Automatic Tuning Optimizer
Statistics
Analysis
SQL
Profiling
Access Path
Analysis
SQL Structure
Analysis
85
SQL Tuning
Advisor
SQL Tuning
Recommendations
Gather Missing or
Stale Statistics
Create a SQL Profile
Add Missing Indexes
Modify SQL Constructs
DBA
Oracle Database 10g 주요 기능 (DBMS)
4. Server Manageability
사. Storage Management
Automatic Storage Management(ASM) 개요
데이터베이스 구성 시 기본이 되는 디스크를 효율적으로 관리하기 위해 Oracle10g에서 새로 선보이는 데이터베이스 서비
스입니다.
ASM은 하나의 SMP 장비 뿐만 아니라, RAC을 구성하는 모든 노드들에 대해서도 지원이 가능합니다.
ASM이 관리하는 모든 디스크에 대해 load balancing 작업을 자동적으로 처리해 줌으로써, 특정 디스크에 load가 집중되
는 hot spot 현상을 최소화 할 수 있으며, 이로 인해 성능을 극대화 할 수 있습니다. 또한, 데이터가 디스크에 균등한 크기
로 저장/관리되어 fragmentation 현상이 발생하지 않습니다. 그리고, ASM이 관리하는 영역에서 새로운 디스크가 추가되
거나 삭제될 때마다, 기존 데이터들에 대해 재구성 작업이 자동적으로 일어납니다.
ASM은 특정 데이터에 대한 복사본을 자기 자신의 디스크에 유지할 수 있기 때문에 Software 미러링 효과를 볼 수 있습니
다. 이처럼 ASM은 데이터에 대한 안정성, 그리고 성능을 어떻게 유지할 것인가에 대해 상당히 유연하게 달리 지정할 수
있습니다.
ASM은 기존 데이터베이스 구성과 독립적으로 관리될 수 있습니다. 즉, 기존 데이터베이스가 데이터 저장소로 파일시스템
을 사용하고 있어도, 아니면 RAW Device를 사용하고 있어도 이와는 별도로 새로운 데이터파일을 ASM에 저장/관리할 수
있는 것입니다. 기존 데이터 파일들은 ASM 관리 영역으로 이관될 수도 있습니다.
86
Oracle Database 10g 주요 기능 (DBMS)
4. Server Manageability
사. Storage Management
ASM 특징
관리 복잡성이 제거됩니다(스토리지 관리가 단순해 집니다)
 매일 처리해야만 하는 스토리지 관리항목이 줄어들거나 제거됩니다
 모든 Application load에 대해 자동적인 I/O tuning이 수행됩니다.
 생성되는 데이터파일에 대해 의미 있는 이름이 자동적으로 부여됩니다.
 관리대상이 혁신적으로 줄어듭니다(파일시스템과 LVM 관리범위가 ASM Diskgroup으로 통합 관리됨)
 디스크 구성 변경이 쉽습니다(구성이 변경될 때, 자동적으로 데이터 재 분배가 일어남)
 실수로 파일을 삭제할 가능성이 배제됩니다(파일시스템 상에 데이터파일이 있는 것이 아니기 때문)
스토리지 제품 구입비용 절약
 Cluster volume manager와 파일시스템 기능이 데이터베이스에 포함되어 있습니다.
 저렴한 JBOD 형태의 디스크부터 고가의 SAN 디스크 array 까지 지원합니다.
성능/확장성/안정성 증대
 모든 파일에 대해서 RAW disk 수준의 I/O 성능을 보장합니다.
 다른 디스크 Array에 걸쳐 저장되어 있는 데이터파일 들에 대해 striping을 적용할 수 있습니다.
 Software mirroring이 지원됩니다.
RAC(Real Application Clusters) 지원
 여타 Cluster volume manager와 Cluster 파일시스템이 필요 없습니다.
87
Oracle Database 10g 주요 기능 (DBMS)
4. Server Manageability
사. Storage Management
ASM Architecture
Operational Stack
 Logical volume / 파일시스템 / 그리고 오라클 데이터파일에 대한 개념이 ASM에 의해 제거 되었습니다.
 이러한 관리영역 제거는 장애요소가 그 만큼 줄어든 것이며, 관리비용을 획기적으로 줄일 수 있다는 것을 뜻합니다.
ASM
Before ASM
Tables
Tables
Tablespace
Files
88
0010 0010 0010 0010 0010
0010 0010 0010 0010 0010
Tablespace
File Names
File System
File System
Logical Vol
Logical Vol
Disks
Disk Group
ASM
Oracle Database 10g 주요 기능 (DBMS)
4. Server Manageability
사. Storage Management
ASM 응용 구조
 ASM은 데이터베이스 커널의 한 부분으로
존재합니다. 데이터베이스 인스턴스 처럼
물리적으로 메모리를 차지하는 데몬들의
집합체입니다. 이를 ASM 인스턴스라 합니
다.
 ASM 인스턴스는 데이터베이스를 mount
하지 않고, 관계되는 데이터베이스 인스턴
스에서 사용 가능한 데이터 파일에 대한
Meta data를 관리하는 역할을 담당합니다.
 일반적으로 서버에 하나의 ASM 인스턴스
를 유지합니다.
 ASM Disk group은 논리적인 단위로써 관
리되는 디스크 집합체이며, ASM에서 고려
되는 최상의 데이터 구조입니다.
 ASM은 RAC/Non-RAC 환경 모두를 지원
합니다.
 ASM Disk group은 하나 이상의 데이터베
이스 데이터를 저장/관리할 수 있습니다.
 ASM 인스턴스도 고 가용성 목적으로
Clustering 할 수 있습니다.
89
ASM InstanceASM InstanceASM Instance
RAC or
Non–RAC
Databases
Oracle
Instance
Oracle
Instance
Oracle
Instance
ASM Instance
Oracle
Instance
Oracle
Instance
Clustered
Servers
Clustered
Pool of Storage
Disk Group
Disk Group
Oracle Database 10g 주요 기능 (DBMS)
4. Server Manageability
사. Storage Management
ASM 용어 정의
Disk Group
 ASM Disk group은 논리적인 단위로써 관리되는 디스크 집합체이며, ASM에서 고려되는 최상의 데이터 구조입니다. 개별 Disk group은
자신의 파일 Directory와 Disk Directory 그리고 다른 Meta data를 포함하고 있습니다.
 디스크의 크기에 비례하는 숫자의 Extent가 개별 Disk에 할당 됨으로써, Application에 의해 발생되는 I/O load는 하나의 Disk group에
속해있는 모든 Disk에 골고루 분산됩니다. 이러한 기능으로 Disk group의 디스크 공간이 없는 상태는, 바로 모든 Disk가 데이터로 꽉 차
있다는 것을 의미합니다.
 현재, ASM Disk group은 동시에 63개의 Disk group을 mount 할 수 있습니다.
Failure Group
 Failure group은 스토리지 리소스를 공유하는 Disk group의 일부분입니다. 여기서 말하는 '리소스'는 장애 발생 시 함께 영향을 받게 되
는 Disk들이 서로 공유하고 있는 리소스를 말합니다. 예를 들어, 어느 Disk들은 SCSI 컨트롤러 1번에 연결되어 있고, 나머지 Disk들은
SCSI 컨트롤러 2에 연결되어 있다면, 전자의 Disk들은 Failure group 1이 되는 것이고, 나머지 Disk 들은 Failure group 2에 속하게 되
는 것입니다. 즉, 운명을 같이하는 Disk 들의 집합체가 Failure group을 형성하는 것입니다. 결과적으로, 하나의 Disk group은 여러 개
의 Failure group으로 구성될 수 있습니다.
ASM Disk
 하나의 Disk group은 ASM Disk의 집합체로 구성되는 것입니다. 즉, Disk group에 스토리지가 추가 되거나 삭제될 때 ASM Disk 단위로
처리됩니다. 또한, 데이터베이스 인스턴스에서 Direct I/O가 가능한 물리적인 disk이어야만 합니다.
 ASM은 동시에 10,000개의 disk를 지원할 수 있습니다.
90
Oracle Database 10g 주요 기능 (DBMS)
4. Server Manageability
사. Storage Management
ASM Files
 ASM File은 ASM Disk group에 저장되는 Oracle 데이터파일입니다. 파일이 생성될 때, Mirroring을 어떻게 할 것인지, Striping은 어떻
게 할 것인가에 대한 정보가 함께 적용됩니다.
 ASM File은 OS에 의해 확인될 수 없으며, RMAN이나 다른 Oracle 지원 툴에 의해 확인 가능합니다. 생성/삭제/읽기/쓰기/크기 변경이
가능하고, 하나의 ASM File은 하나의 Disk group에 분산 저장됩니다. Disk group을 이루는 개별 파일들이 모든 disk에 분산 저장되기
때문에 하나의 disk에 대한 백업은 유용하지 않습니다. 때문에, ASM File에 대한 백업은 RMAN을 통해서 만이 가능합니다. 그러나
PL/SQL 인터페이스를 통해서 ASM File의 내용을 읽어 내는 것은 가능합니다.
Disk Group
91
Controller 1
Controller 2
Failure Group 1
Failure Group 2
Disk Group
Oracle Database 10g 주요 기능 (DBMS)
4. Server Manageability
사. Storage Management
ASM 주요 기능
ASM Rebalancing
 Disk가 추가/삭제 또는 크기조정이 일어날 때, Disk group은 모든 Storage에 대한 load를 균등히 하기 위해 rebalancing 작업을 수행합
니다. Disk group에 포함되는 Disk의 크기를 기준으로 해당 작업을 수행하게 됩니다.
 이 작업은 Storage의 구성정보가 변경될 때 자동적으로 수행되며, DBA에 의해 수동으로 발생될 수 있습니다.
Disk Group
92
Disk Group
Oracle Database 10g 주요 기능 (DBMS)
4. Server Manageability
사. Storage Management
ASM Mirroring
 데이터베이스 수준의 software Mirroring을 제공합니다.
 아래와 같은 3가지 방법을 제공합니다.
External : Hardware mirroring을 사용하고자 할 때
Normal(2-way) : 특정 ASM Disk group이 적어도 2개 이상의 Failure Group을 갖게 되는 구성
High(3-way) : 특정 ASM Disk group이 적어도 3개 이상의 Failure Group을 갖게 되는 구성
 ASM Disk의 EXTENT에 대한 복사본이 다른 Failure Group에 저장/유지 됩니다. 이러한 이유로 기존 Hardware Mirroring에서 사용되었
던 Hot Spare 디스크는 필요치 않으며, 복사본 EXTENT를 유지할 수 있는 디스크 추가용량이 있으면 되는 것입니다.
93
Oracle Database 10g 주요 기능 (DBMS)
4. Server Manageability
사. Storage Management
ASM Striping
 ASM File 성질 부여 시 striping 기능을 지정할 수 있습니다.
 Coarse (1MB) 또는 Fine-grained (8x128k) striping을 지정하게 됩니다(우측 하단 참조)
 컨트롤 파일 / Redolog 파일과 같이 전송되는 데이터 양이 적고, 빠른 디스크 Seek time을 요구하는 I/O operation은 Fine-grained
striping을 적용하는 것이 효율적입니다.
 일반적으로 각 데이터파일에 대한 Striping/Mirroring 방법은 아래와 같이 지정됩니다(좌측).
Name
Stripe
Redundancy
Archivelog
Coarse
Normal
Autobackup
Coarse
Normal
Controlfile
Fine
Normal
Datafile
Coarse
Normal
Flashback
Fine
Normal
Onlinelog
Fine
Normal
ParameterFile
Coarse
Normal
Tempfile
Coarse
Normal
Coarse striping
Fine-grained striping
94
Oracle Database 10g 주요 기능 (DBMS)
4. Server Manageability
사. Storage Management
SYSAUX Tablespace
 SYSAUX 테이블스페이스 시스템 테이블스페이스에 대한 보조 테이블스페이스입니다. 대부분의 데이터베이스 항목들이 그것에 대한 데
이터를 저장하기 위해 SYSAUX 테이블스페이스를 사용합니다. 그러므로, SYSAUX 테이블스페이스는 선택사항이 아니며 항상 데이터
베이스 생성이나 업그레이드시에 생성됩니다.
 SYSTEM 테이블스페이스와 동일한 특성을 갖습니다. 또한, SYSTEM 테이블스페이스에 대한 I/O를 줄일 수 있습니다.
 관리되어져야 할 테이블스페이스 수를 줄이게 됩니다.
 SYSAUX 테이블스페이스는 DROP/RENAME 할 수 없으며, Transport 할 수도 없습니다.
ONLINE
PERMANENT
READ WRITE
EXTENT MANAGEMENT LOCAL
SEGMENT SPACE MANAGEMENT AUTO
SYSTEM
95
SYSAUX
TOOLS
DRSYS
SYSTEM
CWMLITE
ODM
.
..
SYSAUX
Oracle Database 10g 주요 기능 (DBMS)
4. Server Manageability
사. Storage Management
SYSAUX Tablespace를 사용하는 데이터베이스 항목
Occupant
96
Original Tablespace
Text, Ultra Search
DRSYS
Intermedia, Spatial
SYSTEM
Scheduler
New in Oracle Database 10g
OLAP
CWMLITE
XML DB
XDB_RESINFO
Workspace Manager
SYSTEM
Data Mining
ODM
Server Manageability Components
New in Oracle Database 10g
Recovery Catalog
TOOLS
EM repository
OEM_REPOSITORY
Analytical Workspace Object Table
SYSTEM
LogMiner, Log Standby, Streams
SYSTEM
Statspack
User specified
Oracle Database 10g 주요 기능 (DBMS)
4. Server Manageability
사. Storage Management
Tablespace rename
 ALTER TABLESPACE 명령어로 테이블스페이스의 이름을 변경할 수 있습니다.
 DBA는 permanent/temporary 테이블스페이스의 이름을 변경할 수 있습니다.
 SYSTEM/SYSAUX 테이블스페이스의 이름은 변경할 수 없습니다.
 변경하기 위한 테이블스페이스는 ONLINE 상태여야 합니다.
 READ ONLY 테이블스페이스의 데이터파일 헤더는 변하지 않습니다.
Default permanent tablespace
 데이터베이스 사용자는 영구적인 데이터를 저장하기 위한 permanent 테이블스페이스를 가지게 됩니다. 그리고, 임시 데이터는
temporary 테이블스페이스를 사용합니다. DBA가 permanent 테이블스페이스 지정없이 사용자를 생성하게 되면 SYSTEM 테이블스페
이스가 자동적으로 permanent 테이블스페이스가 됩니다. 이것은 좋지 않은 영향을 끼칠 수 있습니다.
 Oracle Database 10g는 DBA가 SYSTEM이 아닌 다른 테이블스페이스를 기본 permanent 테이블스페이스를 지정할 수 있습니다. 그리
고 이 테이블스페이스는 특정 permanent 테이블스페이스가 지정되지 않은 상태로 사용자가 생성될 때 자동적으로 활용됩니다.
 하지만 이 기능은 SYSTEM 사용자(SYS,SYSTEM,OUTLN)에게는 적용되지 않습니다.
System Users
SYS
OUTLN
SYSTEM
97
SYSTEM
HR
Non-system Users
…
SH
OE
Default
Oracle Database 10g 주요 기능 (DBMS)
4. Server Manageability
사. Storage Management
Default temporary tablespace
 Oracle은 보통의 테이블스페이스와 별도로 임시 테이블스페이스를 생성하여 임시 세그먼트만을 따로 저장하도록 권유합니다. 이러한
임시 테이블스페이스는 전통적으로 각 사용자별로 할당이 되었습니다. 그리고 명시적인 임시 테이블스페이스를 지정 받지 못한 사용자
의 경우에는 SYSTEM 테이블 스페이스를 이용하도록 하였습니다.
 Oracle은 전체 데이터베이스에 대하여 전역적인 기본 임시 테이블스페이스를 생성하고 명시적으로 임시 테이블스페이스를 지정 받지
못한 사용자가 그 기본 임시 테이블스페이스를 사용하도록 합니다.
Tablespace Monitoring
 Oracle Database 10g에서는 테이블스페이스의 디스크 공간활용도가 아래와 같은 방법으로 데이터베이스에 의해 관리되어 집니다.
 데이터베이스 경고(alert) 기능을 통해 DBA는 테이블스페이스의 공간이 부족하거나 특정 세그먼트가 공간부족 현상을 보이는 상황을
알 수 있습니다. 이때, DBA는 디스크 공간을 추가하여 공간부족 에러를 방지할 수 있는 것입니다.
 수집된 정보는 AWR(Automatic Workload Repository)이라는 저장소에 저장되어 지고 디스크 증가경향 분석이나 데이터베이스 용량 산
정시 재 활용될 수 있습니다.
Redo Logfile Size Advisor
 Advisor는 해당 통계정보와 현 FAST_START_MTTR_TARGET 값에 기초하여 최적화된 가장 작은 크기를 가질 수 있는 redolog 파일을
결정합니다. 이처럼 오직 FAST_START_MTTR_TARGET 값이 설정되어 있는 상황에서 사용 가능합니다.
 Advisor가 권고하는 크기로 redolog 파일의 크기를 조정할 수 있는 것입니다.
 Redolog 파일 크기가 FAST_START_MTTR_TARGET 값에 의해 발생되는 checkpoint 보다 더욱 빈번한 checkpoint를 발생하지 않는
상황이 최적화된 것입니다.
98
Oracle Database 10g 주요 기능 (DBMS)
4. Server Manageability
아. Scheduler
특정 작업의 스케쥴링 관리에 대한 간편한 관리기법을 제공합니다.
이는 DBMS_SCHEDULER 패키지 내에 있는 수많은 함수와 프로시져에 의해 가능합니다. 이러한 함수와 프로시져들을
scheduler라고 부릅니다.
Scheduler는 스케쥴링 작업과 모든 백그라운드 작업의 관리를 간소화 합니다.
Scheduler는 시스템 자원의 사용을 극대화 하면서 효율적인 방법으로 정해진 시간에 완료되는 것을 보장합니다.
이러한 Scheduler의 행위에 대한 자세한 정보도 함께 제공됩니다. 이처럼 자원활용도에 대한 정보는 추후 시스템 용량산
정 시 중요한 기초자료로 활용될 수 있습니다.
Scheduler는 PL/SQL stored procedures / anonymous blocks / C functions / Java stored procedures 그리고 OS 스크립트
등과 같은 다양한 작업들을 지원합니다.또한, 분산 데이터베이스에 대한 스케쥴링 작업도 가능합니다.
99
Oracle Database 10g 주요 기능 (DBMS)
4. Server Manageability
자. 기타
Automatic Optimizer Statistics Collection
 오라클 CBO가 효율적인 실행계획을 산출하기 위해서는, 객체에 대한 통계정보가 정확해야 합니다. 과거에는 이러한 통계정보 생성은
전적으로 DBA의 작업이었습니다. 또한, 통계정보 재생성이 필요한가에 대한 판단을 위해 객체에 대한 변경사항을 추적해야 했습니다.
 객체가 정확한 통계정보를 갖고 있지 않다면, 비 효율적인 SQL 실행계획이 산출될 수 있습니다.
 Oracle9i에서는 객체 모니터링 기능이 활성화 되어 있다는 가정아래, DBMS_STATS를 활용한 하나의 명령어로 통계정보를 생성해 낼
수 있습니다.
dbms_stats.gather_schema_stats(schema_name,options=>'GATHER AUTO');
 이 명령은 히스토그램을 포함한 Optimizer 통계정보를 생성합니다. 그러나, DBA는 객체 모니터링 기능을 활성화 해야 합니다.
 Oracle10g에서, Automatic Optimizer Statistics Collection은 이러한 작업을 자동화합니다. 이 기능은 잘못된 통계정보로 SQL 문장이
비 효율적으로 수행되는 것을 막고 CBO에게 최적화된 정보를 건네주어 SQL 수행 성능을 좋게 합니다.
Automatic UNDO_RETENTION 튜닝
 기본적으로 오라클은 가장 길게 소요되는 Query와 UNDO 생성 비율에 대한 데이터베이스 통계정보를 수집하여 UNDO Retention 값을
튜닝합니다.
 DBA는 UNDO_RETENTION 파라메터를 지정하여 자동화 튜닝기법에 영향을 줄 수 있습니다. 이 파라메터의 기본값은 900초입니다.
UNDO_RETENTION 파마메터를 지정하지 않거나 '0'으로 지정하면 오라클은 최소값으로써 900초를 기준으로 설정하고 자동으로 현재
의 UNDO 테이블스페이스에 대한 UNDO Retention 값을 튜닝합니다. '0'이 아닌 값으로 설정하면 오라클은 이 값을 최소값으로 판단하
여 자동튜닝 작업을 수행합니다.
100
Oracle Database 10g 주요 기능 (DBMS)
5. Security
가. 보안 개요
오라클은 지난 25여년 동안 끊임없이 향상된 보안 기술을 제공해 오고 있습니다.
Identity Management
On going Security Evaluations
Fine Grained Auditing
Oracle9iAS JAAS
Oracle9iAS Single Sign-On
Common Criteria (EAL4)
Advanced Security FIPS 140
Oracle Label Security (2000)
Virtual Private Database (1998)
Enterprise User Security
Oracle Internet Directory
Database Encryption API
Kerberos framework
Support for PKI
Radius Authentication
Network Encryption
Oracle Advanced Security introduced
First Orange Book B1 evaluation (1993)
Trusted Oracle7 Multilevel Secure Database (1992)
Stored procedures and database roles (1992)
Paranoid Customer
Commercial
1979
101
Oracle Database 10g 주요 기능 (DBMS)
5. Security
가. 보안 개요
오라클 데이타베이스 10g는 Oracle Advanced Security, Oracle Label Security와 같은 옵션과 오라클 애플리케이션 서버
(Oracle Application Server)와 함께 보안 솔루션을 마련하기 위해 아래와 같은 주요 영역을 다루고 있습니다.
 아이덴티티 관리(Identity Management)
사용자와 접근 제어 관리의 중앙집중화뿐 아니라 보안 정책 관리를 제공한다.
 뛰어난 접근 제어와 감사
인터넷 혹은 인트라넷의 호스팅 환경에서 웹기반 혹은 클라이언트/서버 애플리케이션에 대해 상세화된 접근 제어와 감사 기능
을 제공한다.
 데이터 보호
데이타베이스와의 안전한 통신, 데이타베이스 내의 데이터에 대한 보호 기능을 제공한다.
주요 기능은 다음과 같습니다.
 아이덴티티 관리(Identity Management)
 뛰어난 접근 제어
 향상된 감사 기능
 데이터 암호화/복호화
102
Oracle Database 10g 주요 기능 (DBMS)
5. Security
나. 아이덴티티 관리(Identity Management)
아이덴티티 관리 인프라스트럭쳐(Identity Management Infrastructure)는 사용자 관리를 단순화하기 위해 중앙 저장소를
가지고 있습니다. 이렇게 사용자가 관리되면, 암호 관리를 포함한 보안 정책은 애플리케이션에 접근하는 모든 사용자에
대해 일관되게 적용될 수 있습니다. IT 관리자는 이러한 디렉토리 사용자(directory users)로 하여금 데이타베이스 내의 정
보에 접근하는데 필요한 다양한 인증 단계를 전개할 수 있게 됩니다. 오라클 데이타베이스 10g를 통해 전사적 사용자
(enterprise user)에 대해 중앙 관리를 할 수 있는 방법은 다음과 같습니다.
 암호 기반(Password based) 인증
 인증서 기반(Certificate based) 인증
표준 기반 PKI(Public Key Infrastructure) 제공. PKI 인증이 Oracle Wallet이나 스카트카드(Smart Card)에 저장될 수 있음
 커버로스 인증서(Kerberos credential) 사용을 통한 데스크탑 사인온(sign-on)을 통한 인증
103
Oracle Database 10g 주요 기능 (DBMS)
5. Security
나. 아이덴티티 관리(Identity Management)
오라클의 아이덴티티 관리를 위한 보안 아키텍쳐는 다음과 같습니다.
JAAS Roles,
Component access
Controls, Java2
Permissions,…
Enterprise Roles
VPD
Label Security…
E-Biz Responsibility
OracleAS
Oracle RDBMS
Oracle
E-Business Suite
File privileges,
Secure Mail,
Interpersonal Rights
granting
Oracle
Collaboration Suite
오라클 아이덴티티 관리(Oracle Identity Management)
이러한 아이덴티티 관리(Identity Management)를 위해 다음과 같은 기능을 제공합니다.
 디렉토리(Oracle Internet Directory, OID) – 아이덴티티 정보(identity information)에 대한 LDAP 표준 저장소
 디렉토리 통합 - ADS, iPlanet 등과 같은 다른 디렉토리와의 통합
 프로비져닝(Provisioning) 통합 – 오라클 환경에서 자동화된 사용자 프로비져닝(provisioning)
 셀프서비스 관리 – 기업내 아이덴티티 정보(identity information)를 스스로 관리할 수 있는 툴
 싱글 사인온(Single Sign-On) – 웹애플리케이션에 대한 싱글 사인온(Single sign-on)
 인증 기관(Certificate Authority) – 보안 메일과 네트웍 연결의 보안을 위한 X.509v3 호환 인증서 발급, 관리
104
Oracle Database 10g 주요 기능 (DBMS)
5. Security
다. 뛰어난 접근 제어
행단위 접근 제어 방법으로는 다음 두가지가 있습니다.
 Virtual Private Database(VPD)
실제적으로는 사용자가 모르는 사이에 Where 절이 수정되어 행별 접근 제어 기능을 제공합니다.
 Oracle Label Security
각 행별로 별도의 라벨(Label)을 지정해서 권한이 있는 사용자만이 해당 행에 접근할 수 있습니다.
- Oracle Label Security
- Virtual Private Database(VPD)
프로젝트
영업대표
고객
Select * from Orders
지역
부서
라벨
AX703
서울
엔지니어링
공개
B789C
경기
법률
2급비밀
JFS845
서울
인사
1급비밀
Select * from Orders
10g에서는 컬럼 수준의 VPD 기능이 추가되어 SQL 문장이 관련 컬럼을 참조할 경우에만 커리를 자동재작성(query
rewrite)하게 할 수 있으며, VPD 정책을 적용할 때 기존의 동적인 방법만이 아니라 호스팅 환경과 같이 모든 커리에 대해
동일한 정책을 부여할 수 있는 정적인 방법을 사용할 수 있고 이 경우 SGA에 캐쉬를 할 수 있습니다. Oracle Label
Security에서는 데이터의 라벨(Label)과 사용자 권한 정보를 Oracle Internet Directory(OID)에 저장할 수 있는 기능이 추가
되었습니다.
105
Oracle Database 10g 주요 기능 (DBMS)
5. Security
라. 향상된 감사 기능
10g에서 제공하는 감사(auditing)는 다음 네가지로 나눌 수 있습니다.
 필수 감사 : 시스템의 startup/shutdown 등에 대한 감사. 파라미터 설정 등에 영향을 받지 않음.
 표준 감사 : AUDIT_TRAIL 파라미터를 설정해서 auditing을 활성화 시킨 후, 테이블, 뷰, 권한 등에 대한 감사를 가감할 수 있음.
 상세 감사 : 데이터 내용에 따라서 감사여부가 결정됨.
 SYS 사용자에 대한 감사 : OS상에서 DBA의 명령(operation)에 대한 감사.
상세 감사(fine-grained auditing, FGA)는 9i부터 소개된 기능으로, 장점은 보안에 관련된 정보만 기록하고, 덜 중요한 정보
는 무시해버림으로써, 정보의 양은 줄이되 정보의 질은 우수하게 조절할 수 있다는 점입니다.
9i에서 FGA는 SELECT 문장을 지원했었지만, 10g에서는 UPDATE, INSERT, DELETE 문장까지도 지원합니다. FGA를
event handler와 연결시키면, 관리자에게 통지를 할 수 있어서, 신속한 대응이 가능해집니다.
106
Oracle Database 10g 주요 기능 (DBMS)
5. Security
마. 데이터 암호화/복호화
전자상거래가 지속해서 성장하는 인터넷환경에서 애플리케이션 사용자는 자신의 암호가 데이타베이스 내에서 암호화되
어 저장되기를 바라게 됩니다. 대부분의 데이타베이스 보안은 오라클이 제공하는 인증(Authentication)과 접근제어
(Access control) 기능으로 조정될 수 있습니다. 그러나, DBA는 모든 권한을 갖고 있기 때문에, 일반적으로 데이타베이스
내에 존재하는 데이터는 데이타베이스 관리자의 접근에 대해 안전하지 못합니다.
DBA에게 조차도 중요 데이터의 노출을 막고자 하는 애플리케이션을 위해, Oracle은 문자열 등의 데이터를 암호화/복호화
할 수 있는 툴킷을 제공하고 있다. 이 package는 산업표준인 DES(Data Encryption Standard)/3DES 등의 알고리즘을 준
수하고 있습니다.
네트워크를 통해 데이터를 주고받는 경우, 제 3자가 그 데이터를 빼내서 도용할 수 없어야 할 것입니다. Oracle Advanced
Security를 이용하면 네트워크를 통해 주고받는 데이터에 대해 Advanced Encryption Standard(AES)를 적용함으로써 이
러한 위험성을 방지할 수 있습니다.
 Oracle Advanced Security 은 수열 암호 체크섬(sequenced crptographic checksums)을 이용하여 네트워크 트래픽과 데이터 무결성
을 암호화함으로써 데이터 은폐(data privacy)를 보장합니다. Oracle Advanced Security 은 사용자가 필요에 따라 선택할 수 있는 몇몇
산업 표준 암호화 및 체크섬 알고리즘을 제공합니다. RSA의 RC4 알고리즘과 데이터 암호화 표준(Data Encryption Standard: DES) 암
호화 알고리즘은 전송 중 데이터 판독을 방지합니다. MD5 체크섬 알고리즘은 데이터가 네트워크를 통해 전송될 때 데이터의 변경 또는
도난이 없도록 보장하기 위해 해싱(hashing)과 시퀀싱(sequencing)을 통해 데이터 무결성을 제공합니다.
107
Oracle Database 10g 주요 기능 (DBMS)
6. Backup & Recovery
가. 백업 개요
백업은 데이터베이스 데이터에 대한 복사본입니다. 예기치 않은 데이터파일 손실이나 사용자 실수에 의한 데이터 손상 시
백업을 통해 안전하게 데이터를 유지할 수 있습니다.
백업은 물리적 백업과 논리적 백업으로 구분되어 집니다. 물리적 백업은 물리적 데이터파일에 대한 복사작업을 통해 산출
된 결과물이고 논리적 백업은 오라클 Utility(exp/imp etc)를 사용하여 테이블이나 프로시져 등과 같은 논리적인 데이터를
뽑아내는 작업입니다. 이러한 논리적 백업은 일반적으로 물리적 백업의 보완수단으로 사용됩니다.
백업은 사용자정의 명령어로 수행될 수 있고, 오라클에서 강력히 권장하는 툴인 RMAN(Recovery Manager)를 통해서 처
리할 수 있습니다.
108
Oracle Database 10g 주요 기능 (DBMS)
6. Backup & Recovery
나. Consistent / Inconsistent 백업
Consistent Backup
 백업 대상이 되는 파일들이 동일한 SCN을 가지는 백업 방법입니다.
 오라클 Checkpoint 수행 시 모든 데이터파일과 컨트롤 파일은 동일한 SCN을 가지게 됩니다. 즉, 위 백업은 백업시점에 모든 데이터가
일관성을 유지하고 있다는 것을 뜻합니다.
 그러한 이유로, 위 방법에 의해 백업된 데이터 파일들은 복구 작업을 요구하지 않습니다.
 데이터베이스가 shutdown 되어 있고, NORMAL/IMMEDIATE/TRANSACTIONAL 옵션으로 데이터베이스를 내린 상황에서만 위 방법의
백업을 수행할 수 있습니다.
iNconsistent Backup
 백업 대상이 되는 파일들이 동일한 SCN을 가지지 못하는 백업 방법입니다.
 즉, 몇몇 데이터들에 대한 변화가 데이터파일에 적용되지 못한 상태로 백업된 형태입니다.
 오라클 복구 작업은 이러한 파일들을 대상으로 가용한 Archivedlog 파일과 Redolog 파일을 적용함으로써 Consistent 한 상태로 전환할
수 있는 것입니다.
 잠시라도 데이터베이스를 내릴 수 없는 시스템은 이러한 방법 밖에 사용할 수 없습니다. 이와 같이, 데이터베이스가 떠 있는 상태에서
수행하는 백업을 ONLINE 백업이라고 합니다. ONLINE 백업은 데이터베이스가 ARCHIVELOG 모드일 때만 가능합니다.
109
Oracle Database 10g 주요 기능 (DBMS)
6. Backup & Recovery
다. 전체/부분 백업
전체 백업
 전체 백업은 컨트롤파일을 포함하여 데이터베이스 내에 있는 모든 데이터파일을 백업하는 개념입니다.
 이는 ARCHIVELOG / NOARCHIVELOG 모드에서 수행될 수 있는 방법입니다.
 전체 백업은 Consistent 또는 Inconsistent 상태로 유지될 수 있습니다. Inconsistent 상태가 발생하면, 추후 redolog 파일을 적용해야
하는 복구작업이 필요합니다.
110
Oracle Database 10g 주요 기능 (DBMS)
6. Backup & Recovery
다. 전체/부분 백업
테이블스페이스 백업
 이는 테이블스페이스를 구성하고 있는 데이터파일들에 대한 백업 작업입니다.
 이는 데이터베이스가 ARCHIVELOG 모드일 때에만 수행 가능합니다. 왜냐하면, 다른 테이블스페이스와 일관성을 맞추기 위해 redolog
파일의 내용을 적용해야 하기 때문입니다.
데이터파일 백업
 하나의 데이터파일에 대한 백업을 말합니다.
 일반적으로 ARCHIVELOG 모드일 때에만 수행합니다.
111
Oracle Database 10g 주요 기능 (DBMS)
6. Backup & Recovery
라. 복구 개요
물리적인 데이터파일 백업을 restore 한다는 것은 데이터파일을 재구성하고 데이터베이스에서 가용한 상태로 전환할 수
있는 작업을 말합니다. 복구작업은 위에서 restore된 데이터파일을 대상으로 redolog/archived redolog 파일을 적용하고
백업 후 데이터베이스에 가해진 변경사항을 적용하는 작업입니다.
데이터파일이 restore 된 후, DBA는 미디어 복구 작업을 수행합니다. 즉, 필요한 redo 정보를 적용해야 합니다. 데이터베
이스 변경사항은 먼저 redolog 파일에 그 변경사항을 기록하고 추후 데이터파일에 그 내용을 기록합니다. 이런 작업때문
에, 미디어 복구는 redo 정보 중에서 선택적으로 필요한 정보를 뽑아내어 적용하게 됩니다.
사용자 실수나 논리적인 데이터 손실이 발생한 경우에는 오라클 ‘Flashback Recovery’ 기능을 이용하여 손쉽게 데이터를
복구할 수 있습니다.
미디어 복구와는 달리, 인스턴스 복구와 Crash 복구는 자동적으로 오라클에 의해 수행됩니다. 이 두가지 복구방법은 인스
턴스 장애가 발생하기 바로 전단계로 데이터베이스를 유지시키는 방법입니다. Crash 복구는 하나의 인스턴스환경이나
RAC의 모든 인스턴스에 장애가 발생했을 때 사용되는 방법이고, 인스턴스 복구는 RAC 환경에서 하나의 인스턴스에 장
애가 발생한 경우 사용되는 방법입니다.
112
Oracle Database 10g 주요 기능 (DBMS)
6. Backup & Recovery
마. 미디어 복구
Complete Recovery
 Online redolog 파일과 Archived redolog 파일에 포함된 모든 redo 변경사항을 적용하는 방법입니다.
 일반적으로 데이터파일이나 컨트롤파일에 장애가 발생했을 때 사용됩니다.
 전체 데이터베이스, 테이블스페이스 또는 데이터파일 단위로 수행할 수 있습니다.
InComplete Recovery
 데이터베이스의 현재 시점이 아닌 시점까지 복구하는 방법입니다. 다시 말해서, 최근의 백업작업 후에 발생한 모든 redo 변경사항을 적
용하지 않는 방법입니다.
 이는 복구하기 원하는 시점이전에 수행된 백업을 restore 하고, 복구작업이 완료되었을 때 'RESETLOGS' 옵션으로 데이터베이스를 기
동하게 됩니다.
 데이터베이스의 현 시점까지 복구하는 것이 아니기 때문에, DBA는 어디까지 복구할 것인가를 아래와 같은 방법으로 지정해야만 합니
다.
Time-based recovery : 지정된 시간 시점까지 복구
Cancel-based recovery : CANCEL 명령이 내려질 때까지 복구
Change-based recovery : 지정된 SCN 까지 복구
Log sequence recovery : 지정된 Log Sequence 번호까지 복구(RMAN에서만 사용 가능)
113
Oracle Database 10g 주요 기능 (DBMS)
6. Backup & Recovery
바. Datafile / Block 미디어 복구
Datafile Recovery
 손상된 데이터파일 또는 컨트롤파일를 대상으로 수행되는 복구 방법입니다. 또한, OFFLINE NORMAL 옵션없이 offline 상태로 빠진 테
이블스페이스의 변경사항을 복구하기 위해서도 사용됩니다.
Block Media Recovery
 모든 데이터베이스 파일들이 가용한 경우, 특정 데이터 블록을 복구하기 위한 방법입니다.
 데이터 장애가 몇 블록에서 발생한 경우 데이터파일 복구보다 더욱 효율적입니다. 이 방법은 RMAN에 의해서 수행될 수 있습니다.
114
Oracle Database 10g 주요 기능 (DBMS)
6. Backup & Recovery
사. Flashback Recovery
개요
 논리적 데이터 손실이나 사용자 실수에 의한 데이터 유실상황을 해결하기 위해, flashback 복구를 사용합니다.
 Oracle9i 까지 flashback query를 지원했고, Oracle Database 10g 부터 flashback table / flashback database 기능을 제공합니다.
Flashback Recovery area
 이는 오라클이 백업 및 복구파일에 대한 중앙집중 관리를 위해 제공하는 디렉토리/파일시스템 또는 ASM Disk group입니다.
 오라클은 이 영역에 Archived redolog를 생성합니다.
 RMAN은 이 영역에 자신의 백업본을 저장할 수 있습니다. 그리고, 미디어 복구가 필요할 때 데이터파일을 restore 하는 중간 저장소로
사용합니다. 태입에 대한 디스크 캐시로써도 사용됩니다.
 오라클 복구 항목들은 데이터베이스가 Flash recovery 영역에 있는 파일들을 사용해서 복구 가능한지를 확인하기 위해 이 영역과 상호
통신 합니다.
 아래와 같은 파일들을 저장할 수 있습니다.
Current control file
Online logs
Archived logs
Flashback logs
Control file autobackups
Control file copies
Datafile copies
Backup pieces
115
Oracle Database 10g 주요 기능 (DBMS)
6. Backup & Recovery
사. Flashback Recovery
Flashback Database
 Oracle Database 10g 이전까지는 transactional point-in-time 복구를 위해서 backup 데이터파일과 redolog 파일을 이용하여 원하는
시간까지 복구를 수행했습니다. 그러나 이 방법은 backup 데이터파일이 오래되고, archived redolog가 많이 쌓여 있을 때는 많은 시간
이 소요됩니다. Oracle Database 10g부터는 flashback database를 이용하여 좀 더 빠른 복구가 가능하게 되었습니다.
 Flashback database는 논리적 데이터 손실이나 사용자 실수에 따른 데이터 손상 시 유용합니다. Flashback Database의 장점은 기존
의 traditional point-in-time 복구에 비해 매우 빠른 복구가 가능하다는 것입니다. 이러한 빠른 성능을 낼 수 있는 이유는 flashback
database가 데이터베이스의 크기에 비례해서 복구 시간이 늘어나는 것이 아니라, 변경된 데이터의 양에 비례해서 복구 시간이 소요된
다는 점이다.
 Flashback recovery 영역이 정의되어 있고 Flashback 기능이 활성화 되어 있다면, 데이터베이스를 예전 시점으로 돌리기 위해 RMAN
이나 SQL 명령을 사용할 수 있습니다.
 Flashback database는 순수한 미디어 복구가 아닙니다. 왜냐 하면, 이는 물리적인 파일들을 restore 하는 작업을 포함하지 않기 때문입
니다. 그러나, 때때로 RESTORE/RECOVER 명령어를 사용하여 더욱 빠른 성능을 보일 수 있습니다.
 오라클은 데이터베이스에 대한 변경사항을 적용하기 위해 과거 블록 이미지를 사용합니다. 일반적인 데이터베이스 동작중에, 오라클은
Flashback database 로그에 이러한 이미지를 주기적으로 기록합니다. 이 로그는 순차적으로 기록되고 archiving 되지는 않습니다. 오
라클은 블록이 변경될 때마다 그에 대한 과거 이미지를 기록하지는 않습니다. 오라클은 15 또는 30분 주기로 오직 한번만 개별 블록을
기록할 수 있습니다. 또한, Flash recovery 영역에 있는 flashback 로그를 생성하고 삭제하고 그리고 크기를 변경할 수 있습니다.
 DBA는 오직 flashback 로그에 대한 저장영역을 충분히 유지하고 성능을 모니터링하는 역할만을 수행하면 됩니다.
 Flashback database가 활성화 될 때, 새로운 RVWR 백그라운드 프로세스가 기동됩니다. 이 프로세스는 Flashback buffer에 있는
Flashback database 데이터를 Flashback database 로그에 순차적으로 기록하는 역할을 담당합니다.
116
Oracle Database 10g 주요 기능 (DBMS)
6. Backup & Recovery
사. Flashback Recovery
Flashback Database architecture
SGA
16Mb
Flashback
Buffer
Not every
change!
Buffer Cache
Apply
direction
Log block
before
images
periodically
117
LGWR
Write
direction
Redo
Logs
RVWR
Back out changes
1 to database
without restore
…
Redo Log
Buffer
Every
change
Write
direction
Flashback
Logs
8Mb
Forward media
recovery
2
Apply
direction
…
Oracle Database 10g 주요 기능 (DBMS)
6. Backup & Recovery
사. Flashback Recovery
Flashback Drop
 과거 버젼에서는, 실수로 삭제된 테이블을 원 상태로 유지하기 위해서 데이터베이스에 대한 복구작업이 필요 했었습니다. 이 작업은 많
은 시간을 필요로 하고 결과적으로 다른 트랜잭션이 동작하지 못하는 상황을 야기 시킵니다.
 Flashback drop 기능은 point-in-time 복구 없이 DROP TABLE 문장에 대한 상태를 과거 상태로 전환할 수 있는 기능을 제공합니다.
DROP TABLE employees;
Mistake was
made
118
FLASHBACK TABLE
employees
TO BEFORE DROP;
Oracle Database 10g 주요 기능 (DBMS)
6. Backup & Recovery
사. Flashback Recovery
Recycle Bin
 과거 버젼에서는 테이블이 Drop 되면, 즉시 그 테입블에 할당된 공간이 반납되었습니다. Oracle10g는 DBA가 테이블을 Drop 할 때, 할
당된 공간과 의존관계가 있는 객체들이 회수되지 않습니다(그러나, DBA_FREE_SPACE 뷰에서는 제거된 것으로 확인됩니다.). 대신에
Drop된 객체들은 임시적으로 Recycle Bin(휴지통)에 저장됩니다.
 Recycle Bin에 저장된 객체가 차지하고 있는 공간은 공간부족 현상이 발생되지 않는 한 계속 유지됩니다. 이러한 성질로 인하여, DBA
는 객체에 대한 복구 가능성을 최대로 유지할 수 있습니다.
 Drop 된 테이블이 Recycle Bin으로 이동될 때, 그것과 연관된 객체와 제약 조건들은 이름이 변경됩니다. 이후에 생성되는 테이블과의
이름지정이 충돌되는 것을 방지하기 위해 필요한 절차입니다.
 Recycyle Bin 자체는 데이터 딕셔너리입니다. 사용자는 DBA_RECYCLEBIN 뷰를 통해 Recycle Bin에 있는 내용을 query 할 수 있습니
다.
BIN$zbjrBdpw==$0
BIN$zbjra9wy==$0
EMPLOYEES
EMPLOYEES_PK
Recycle
bin
USER_OBJECTS
DBA_FREE_SPACE
EMPLOYEES
BIN$zbjrBdpw==$0
EMPLOYEES_PK
BIN$zbjra9wy==$0
DROP TABLE employees;
119
Oracle Database 10g 주요 기능 (DBMS)
6. Backup & Recovery
사. Flashback Recovery
Flashback Versions Query
 Flashback Versions Query 기능으로 사용자는 특정 시간이나 SCN에 맞는 데이터베이스의 정보를 query 할 수 있습니다. 즉, 시간 또
는 SCN을 query의 VERSIONS 절과 함께 지정하는 것이 가능합니다.
 이 기능으로 추출된 데이터들은 트랜잭션에 의해 변경된 데이터들의 과거/현재 정보를 표현합니다. 이는 오직 COMMIT된 데이터들만
을 표현해 줍니다.
 사용자는 데이터의 과거~현재 버젼에 맞는 정보를 추출해 낼 수 있는 것입니다. 이 기능을 활용함으로써 테이블 데이터에 대한 감사방
법을 정의할 수 있고, 데이터를 변경한 트랜잭션 정보를 확인할 수 있습니다. 이것으로 획득할 수 있는 Transaction Identifier 정보는
LogMiner 또는 Flashback Transaction Query 기능과 조합하여 트랜잭션에 대한 세부정보를 얻어낼 수 있습니다.
Tx0
Tx1
Employees
Tx2
Employees
Employees
Fox
t1
SELECT versions_xid, salary FROM employees
VERSIONS BETWEEN t1 and t2
WHERE last_name = 'Fox';
Tx0
120
Tx1
Tx2
t2
Oracle Database 10g 주요 기능 (DBMS)
6. Backup & Recovery
사. Flashback Recovery
Flashback Transaction Query
 Flashback Transaction Query는 트랜잭션 수준에 대한 데이터베이스 변경사항을 제공해 주는 진단툴입니다. 이것은 데이터베이스내의
문제를 진단, 트랜잭션을 감사하고 분석하는데 사용될 수 있습니다.
 특정 트랜잭션에 의해 변경된 사항을 복구하기 위해 필요한 SQL 문장정보를 추출하기 위해 DBA_TRANSACTION_QUERY 뷰를 사용합
니다. Flashback Transaction Query는 복구용 SQL 문장을 추출하는데 있어 LogMiner 보다 더욱 빠릅니다.
 Flashback Versions Query와 Flashback Transaction Query는 undo tablespace의 정보를 이용하기 때문에, flashback log와는 관련
이 없습니다.
DBA_TRANSACTION_QUERY
DBA
Erroneous
DML
Undo
SQL
USER
121
Oracle Database 10g 주요 기능 (DBMS)
6. Backup & Recovery
사. Flashback Recovery
Flashback Versions Query와 Flashback Transaction Query
 Flashback Versions Query와 Flashback Transaction Query는 서로 보완적인 기능을 제공합니다.
 Flashback Versions Query는 트랜잭션에 의해 변경된 데이터들의 과거~현재 정보를 제공합니다. DBA는 특정 데이터가 왜 그 값을 가
지게 되었는지를 알고 싶어할 수 있습니다. Flashback Versions Query에 의해 제공되는 Transaction Identifier를 가지고 Flashback
Transaction Query를 해 봄으로써 트랜잭션에 대한 세부정보를 얻어낼 수 있는 것입니다.
 이러한 기능조합으로 트랜잭션에 대한 감사기능을 지정할 수 있습니다.
Flashback Table
 Flashback Table은 DBA가 기존의 복구방법을 사용하지 않고 테이블을 복구할 수 있는 방법입니다. 이는 테이블에 대해 적용된 변경사
항 만을 Rolling back 함으로써 데이터베이스가 Online 상태에서도 즉시 적용할 수 있는 방법입니다. 또한 하나의 트랜잭션으로 처리됩
니다.
 DBA는 필요한 Flashback Time을 결정하기 위해 Flashback Versions Query와 Flashback Transaction Query를 사용하게 됩니다.
Erroneous
DMLs
122
USER
Flashback
Tables
Oracle Database 10g 주요 기능 (DBMS)
6. Backup & Recovery
사. Flashback Recovery
When To Use Flashback Technology
Object
Level
Database
Table
Tx
123
Scenario
Flashback Technology
Drop User
Flashback Database
Truncate Table
Flashback Database
Batch job: partial changes
Flashback Database
Drop Table
Flashback Drop
Update with wrong WHERE clause
Flashback Table
Comparing current data against the data at
some time in the past
Flashback Query
Batch Job runs twice, but not really sure of
the objects affected
Flashback Query
Oracle Database 10g 주요 기능 (DBMS)
6. Backup & Recovery
아. Recovery Manager
개요
 RMAN은 오라클 백업/복구를 종합적으로 관리하는 utility입니다(커널에 포함된 기능).
 이것은 데이터베이스 가용성을 증대 시키고 더 나은 성능을 보장하면서 백업 및 복구에 대한 작업 복잡성을 제거합니다.
 RMAN은 가장 효율적인 백업/Restore/복구작업을 결정할 수 있습니다. 즉, 자동적으로 데이터베이스와 통신하여 데이터베이스에 대한
변경사항을 인지하고 동적으로 이를 복구하기 위한 작업을 수행하게 됩니다.
 Oracle10g RMAN과 관련된 주요 기능은 아래와 같습니다.
Flash Recovery Area : 복구와 관련된 파일들을 조직화하고 관리합니다.
Optimized Incremental Backups : 오직 변경된 블록만을 백업합니다.
Incremental Updated Backups : 빠르고 효율적인 복구를 위해 데이터베이스 이미지 복사본과 Incremental 백업을 조합합니
다.
Enterprise Manager와 RMAN : 백업/복구 마법사 기능을 제공합니다.
Flash Recovery Area
 Flash Recovery Area는 모든 복구관련 파일들을 저장하고 있는 영역입니다.
 Init.ora 파라메터 지정으로 RMAN 백업 / Archived 로그 / Controlfile autobackup 그리고 데이터파일 복사본들이 특정 파일시스템 또
는 ASM Disk group에 기록됩니다.
DB_RECOVERY_FILE_DEST = /oracle/flash_recovery_area
 Flash Recovery Area에 충분한 공간을 할당하는 것은 더 간단하고 빠른 자동 복구작업을 보장합니다.
 Flash Recovery Area는 정의된 RMAN RETENTION POLICY에 기초하여 불필요한 백업 및 Archived 로그를 자동적으로 삭제합니다.
 RETENTION POLICY를 7일로 설정하면, RMAN은 7일 이전으로 돌아 가는데 필요한 파일들을 유지하게 됩니다.
124
Oracle Database 10g 주요 기능 (DBMS)
6. Backup & Recovery
아. Recovery Manager
Optimized Incremental Backups
 Incremental backup은 Oracle8.0이 출시된 이래로 RMAN의 내부기능 이었습니다. 이는 예전 백업을 기준으로 변경된 데이터만을 백업
하는 기능을 제공합니다.
 Oracle10g는 'Change Tracking File' 기능을 구현함으로써 더욱 빠른 Incremental backup을 수행할 수 있습니다.
 DBA가 블록에 대해 'Change Tracking' 기능을 활성화 하면, 오라클은 모든 데이터베이스 변경의 물리적인 위치정보를 추적합니다.
RMAN은 Incremental backup 중에 읽혀질 필요가 있는 블록을 결정하고 그 블록만을 직접 접근하기 위해 'Change Tracking File' 기능
을 사용합니다. 'Change Tracking' 기능이 비 활성화 상태이면 Incremental backup을 위해 전체 데이터파일이 검색되고, 변경된 블록
만이 백업됩니다.
ALTER DATABASE ENABLE BLOCK CHANGE TRACKING;
 이 기능으로 아래와 같은 장점을 얻어낼 수 있습니다.
일일 백업에 소요되는 시간을 절약합니다.
네트웍을 통해 백업을 수행할 때, Network bandwidth를 절약합니다.
NOLOGGING 옵션을 사용한 객체에 대해서도 복구가 가능합니다. Incremental backup은 변경된 블록 이미지를 잡아내기 때
문에 위와 같은 복구가 가능합니다.
백업파일 저장소를 절약합니다. 백업주기와 변경된 블록의 수에 따라 전체 데이터베이스 백업보다 작고 더 적은 공간을 소비합
니다.
Incrementally Updated Backups
 이것은 데이터파일에 대한 이미지 복사본과 RMAN의 Incremental backup을 조합하는 기능입니다. 즉, 파일이미지에 Incremental
backup에 의해 획득된 블록 변경사항을 추가하는 것입니다.
 RMAN의 'RECOVER' 명령에 의해 수행됩니다. 백그라운드로 실행되기 때문에 데이터베이스 인스턴스와의 통신은 요구되지 않습니다.
 데이터베이스 백업본을 줄이는 작업에 대해 더 이상 고민하지 않아도 됩니다. 오라클은 데이터베이스 이미지 복사본에 계속적으로
Incremental backup을 추가함으로써 전체 데이터베이스 백업을 수행하지 않아도 되는 것입니다.
125
Oracle Database 10g 주요 기능 (DBMS)
6. Backup & Recovery
아. Recovery Manager
Incrementally Updated Backups
 데이터베이스 백업본을 줄이는 작업에 대해 더 이상 고민하지 않아도 됩니다.
 오라클은 데이터베이스 이미지 복사본에 계속적으로 Incremental backup을 추가함으로써 전체 데이터베이스 백업을 수행하지 않아도
되는 것입니다.
 이 기능에 기초한 백업 전략은 미디어 복구에 소요되는 시간을 최소화할 수 있습니다.
 RMAN은 데이터베이스의 Incremental updated 된 이미지 복사본을 restore 하고 오직 마지막 백업 이후 생성된 Archived 로그만을 적
용합니다.
Enterprise Manager and RMAN
 EM10g는 데이터베이스 복구작업을 더욱 효율적으로 수행하기 위해 새로운 RMAN 기능들을 사용합니다.
126
Oracle Database 10g 주요 기능 (DBMS)
7. Information Integration
가. 정보 통합(Information Integration) 개요
회사의 업무 중요도가 변하면서, 기업은 스스로 조직을 조정하거나, 다른 회사를 인수하거나, 다운사이징을 하는 경우가
자주 발생합니다. 이 때 회사는 이러한 업무의 변화에 맞춰, 그들의 자원을 효율적이고 경제적으로 프로비져닝
(provisioning) 해야 하는 상황에 접하게 됩니다.
 동일한 데이타베이스 간, 혹은 이기종 데이타베이스 간의 데이터 교환
 애플리케이션들 간의 통신
 고객, 파트너, 공급자 간의 정보 교환
 데이타베이스 간의 데이터 복제
정보 통합은 원하는 장소, 원하는 시간에 필요한 데이터에 접근할 수 있도록 해줍니다. 오라클 데이타베이스 10g는 이러
한 정보 통합 솔루션을 제공하고, 이를 통해 다음과 같은 잇점을 얻을 수 있습니다.
 의사 결정의 향상
데이터가 어디에 존재하건 통합된 뷰를 제공
 운영상의 효율
데이터 소스의 수를 감소시키고, 통신과 상호 협조가 향상
오라클 데이타베이스 10g가 제공하는 정보 통합 솔루션
 콘솔리데이션(Consolidation)
통합에 필요한 모든 데이터를 하나의 데이타베이스로 옮겨서 운영
 페더레이션(Federation)
각각의 데이터는 별도의 위치에 존재하지만, 하나의 가상화된 데이타베이스에 있는 것과 같은 통합된 뷰를 제공
 공유(Sharing)
필요한 정보의 복제본이 여러 데이타베이스에 존재
127
Oracle Database 10g 주요 기능 (DBMS)
7. Information Integration
나. 콘솔리데이션(Consolidation)
개요
오라클 데이타베이스 10g는 오디오, 비디오, XML, 이메일, 메시지 등 다양한 데이터 타입을 지원하므로, 성격이 다른 여러 종류의 정보
를 콘솔리데이션할 수 있고, 윈도우로부터 리눅스, Tru64 등 거의 모든 플랫폼에서 사용할 수 있습니다.
콘솔리데이션이 정보 통합의 가장 단순한 형태지만, 실제로 적용하기는 어렵습니다. 이를 꺼려하는 부서가 있을 수 있고, 데이터를 콘솔
리데이션할 수 없는 레거시 시스템도 존재하기 때문입니다. 그래서 많은 회사들은 하나의 데이타베이스로 모든 데이터를 옮기지 않고,
데이타베이스의 수를 줄여가면서 통합을 이루고 있습니다. 하나로 줄이건, 소수로 줄이건, 이렇게 서버와 데이타베이스의 수를 줄임으
로써, 그만큼 관리 비용을 줄일 수 있고, 애플리케이션 배포도 더욱 빨리 이룰 수 있습니다. 또한 한 곳에 모아진 데이터를 조회하는 것
이 훨씬 빠르기 때문에, 데이타웨어하우스나 비즈니스 인텔리젼스 애플리케이션에 가장 이상적인 방법이 될 수 있습니다.
오라클 데이타베이스 10g는 아래와 같이 콘솔리데이션을 위한 다양한 기능을 제공합니다.
 오라클 Real Application Clusters (RAC)
 대용량(Massive) 데이타베이스 지원
 XML 데이타베이스
 Virtual Private Database (VPD)
 파티셔닝(Partitioning)
 LOB, BFILE
 로딩과 마이그레이션 툴
128
Oracle Database 10g 주요 기능 (DBMS)
7. Information Integration
나. 콘솔리데이션(Consolidation)
오라클 Real Application Clusters (RAC)
 RAC은 하나의 데이타베이스를 클러스터링된 다수의 모든 노드를 활용해 운영할 수 있게 해주며, 이 때 보다 저렴한 컴퓨터나 블레이드
(blade)들을 사용한다면, 하나의 값비싼 SMP에 못지 않는 성능을 유지하면서 총 소유비용은 오히려 줄일 수 있습니다.
 RAC을 구성하는 모든 노드는 디스크를 공유합니다.
 캐쉬를 공유하기 때문에, 노드를 추가할수록 선형적인 확장성을 제공합니다.
대용량(Massive) 데이타베이스 지원
 오라클 데이타베이스 10g는 하나의 데이타베이스가 최대 800만 테라바이트의 데이터를 저장할 수 있도록 함으로써, 콘솔리데이션된
데이타베이스의 크기의 제한은 없어졌다고 볼 수 있습니다.
 하나의 파일은 최대 128 테라바이트까지 지원되고, 이러한 Bigfile을 통해 데이타베이스의 총 파일 수를 줄일 수 있고, 결과적으로 데이
타파일의 관리를 간소화할 수 있습니다.
XML 데이타베이스
 오라클 XML DB는 고성능의 XML의 저장과 추출을 제공합니다.
 XML 데이터를 저장하고 관리하는 데 있어서 저장방법/컨텐트/프로그래밍 언어의 독립성을 보장하는 인프라를 제공합니다.
 Native XML 데이타타입, Xpath, 표준 API, WebDAV 관리 등의 기능을 제공합니다.
마이그레이션 툴
 콘솔리데이션 데이타베이스로 정보를 마이그레이션할 수 있는 여러 메커니즘을 제공합니다.
Transportable Tablespace – 테이블스페이스를 쉽고 빠른 방법으로 다른 데이타베이스에 이관, 복제할 수 있으며, 플랫폼이
다르더라도 아무 상관이 없습니다.
Data Pump – 오브젝트 단위까지 세분화해서 사용할 수 있습니다.
129
Oracle Database 10g 주요 기능 (DBMS)
7. Information Integration
나. 콘솔리데이션(Consolidation)
Virtual Private Database (VPD)
 데이터에 대한 행단위 접근 제어를 가능케 하는 일종의 보안 기법으로, 콘솔리데이션된 데이타베이스에 대해 여러 부서가 각기 자기만
의 데이타베이스를 가지고 있는 것과 같은 효과를 제공합니다.
파티셔닝
 대용량 테이블에 대한 성능, 가용성, 관리의 편이성을 제공하는 기법으로, 기존의 애플리케이션을 따로 재작성할 필요가 없습니다.
130
Oracle Database 10g 주요 기능 (DBMS)
7. Information Integration
다. 페더레이션(Federation)
개요
페더레이션은 정보를 원래의 위치에 그대로 존재하게 하고, 단
지 다양한 데이터 소스들이 하나의 가상 데이타베이스에 통합
이 된 것과 같은 효과를 보여줍니다. 오라클의 페더레이티드
(federated) 데이타베이스 솔루션은 오라클 뿐 아니라 오라클
이 아닌 데이터에 대해서도 액세스할 수 있고, 정형 데이터 뿐
아니라 비정형 데이터에 대해서도 액세스할 수 있습니다.
어떠한 정보라도 그 위치 그대로 두기 때문에 정보 통합의 가장
빠른 수단을 제공하게 되며, 정보가 변하면 바로 바로 그 결과
를 알 수 있습니다. 또한 레가시 애플리케이션이 사용하는 정
보와 같이 쉽게 콘솔리데이션될 수 없는 정보에 대한 지원이
가능하고, 자주 액세스되지 않는 정보를 통합하기 위한 적당
한 방법이 될 것입니다.
Excel
Oracle
Flat
Files
DB2
오라클 데이타베이스 10g는 다양한 데이터 소스를 지원하고,
이러한 데이터 소스에 액세스하는 다양한 방법을 지원합니다.
XML
131
Web
Services
Text
Oracle Database 10g 주요 기능 (DBMS)
7. Information Integration
다. 페더레이션(Federation)
분산 SQL을 이용한 데이터 액세스
오라클은 데이타베이스 링크(database link)를 통해 다른 데이타베이스(remote database)의 오브젝트에 액세스할 수 있으며, 분산 SQL
을 통해 오라클 데이타베이스 혹은 오라클이 아닌 데이타베이스와의 분산 데이타베이스 환경을 마치 하나의 오라클 데이타베이스인 것
처럼 사용할 수 있습니다. 오라클의 분산 SQL은 다음과 같은 이점을 제공합니다.
 위치 투명성(Location Transparency)
 SQL과 COMMIT의 투명성
표준 SQL을 사용하면 되고, 2-phase commit을 지원하므로 하나의 데이타베이스 환경인 것처럼 사용하면 됩니다.
 분산 질의의 최적화
분산 SQL을 수행할 때 사이트 간의 데이터 전송의 양을 최소화하는 옵티마이저(optimizer) 기술을 사용합니다.
Xquery를 이용한 데이터 액세스
오라클은 XML 데이터를 검색하고 다루는 표준인 Xquery를 개발하기 위해 W3C XML Query Working Group에 참여하고 있습니다.
Xquery는 XML 데이터를 액세스하기 위해 디자인되었기 때문에, 일반 SQL이 표현할 수 없는 element의 순서 인식 등의 기능을 제공하
므로, 애플리케이션의 복잡도를 줄일 수 있으며, 또한 관계형 데이터에 대한 액세스도 가능합니다.
132
Oracle Database 10g 주요 기능 (DBMS)
7. Information Integration
다. 페더레이션(Federation)
이기종(Heterogeneous) 데이터 액세스
이기종 데이터 액세스는 많은 회사가 직면하고 있는 문제점입니다. 대부분이 다른 종류의 데이타베이스를 운영하고 있으며, 각각의 시스
템은 자신의 데이터를 저장하고, 이를 액세스하는 애플리케이션은 별도로 존재합니다. 이렇게 애플리케이션이 호환되지 못하기 때문에
콘솔리데이션은 어려운 작업이고, 이기종 데이타베이스 시스템이 상호 운영될 수 있는 메커니즘이 있어야 할 것입니다.
오라클은 이를 위해 다양한 솔루션을 제공하고 있습니다.
 Generic Connectivity
ODBC나 OLEDB를 준수하는 오라클 이외의 시스템에 투명하게 액세스할 수 있는 ODBC나 OLEDB 드라이버를 사용하는 오라
클 데이타베이스의 일반적인 기능
게이트웨이 솔루션이 없는 MySQL, Foxpro, Access, dBase, Excel 등에 대한 액세스 가능
 Oracle Transparent Gateway
Generic Connectivity와는 달리 오라클 이외의 시스템에 최적화되어 개발된 솔루션
Sybase, DB2, Informix, MS SQL Server, Ingres, Teradata 등에 대한 액세스 가능
 Heterogeneous Transparency
Generic Connectivity, Oracle Transparent Gateway 모두 오라클 환경에서 오라클 이외의 시스템에 존재하는 데이터를 투명
하게 액세스할 수 있는 기능을 제공
위치 투명성(Location Transparency)을 오라클 이외의 시스템으로 확장
애플리케이션 개발 노력 감소와 이동성 제고
SQL, 데이터 딕셔너리(data dictionary), 데이터 타입의 자동 이식
133
Oracle Database 10g 주요 기능 (DBMS)
7. Information Integration
다. 페더레이션(Federation)
외부 파일 액세스
 Xquery나 SQL을 이용한 native XML 파일 조회
 다양한 파일 타입에 대해 필터를 이용한 변환을 통해 XML 형태로 조회 가능
 External Table
데이타베이스 밖에 존재하는 독립 파일(flat file)을 데이타베이스 내의 관계형 테이블인 것처럼 액세스 가능
표준 SQL을 통한 독립 파일 조회, 데이타베이스 내의 다른 테이블과의 조인 가능
데이터 액세스에 병렬 기능 사용 가능
독립 파일에 대한 DML 불가
Ultra Search를 이용한 정보의 위치 파악
 다양한 저장소에 대한 문서의 인덱싱
오라클 데이타베이스, 오라클 이외의 데이타베이스, IMAP 메일 서버, 웹서버에 의해 제공되는 HTML 문서, 디스크 상의 파일
등
 문서의 메타데이타나 컨텐트에 대한 검색 가능
 오라클 데이타베이스, ODBC 표준을 지원하는 다른 데이터 소스에 대한 크롤(crawl) 가능
134
Oracle Database 10g 주요 기능 (DBMS)
7. Information Integration
다. 페더레이션(Federation)
 웹서비스 consumer로서의 데이타베이스
Java Class, PL/SQL 프로시져, 트리거 등을 통한
외부 웹서비스에 대한 호출 가능
웹서비스를 SQL의 데이터 소스로 활용 가능
Web Service Client
Framework (SOAP)
135
Database Module
(Web Service Client)
 웹서비스 provider로서의 데이타베이스
웹서비스를 통한 데이타베이스 질의 가능
Enqueue/dequeue와 같은 메시지 오퍼레이션 수
행 가능
DML 웹서비스
PL/SQL 프로시져나 함수에 대한 호출 가능
SELECT city_name, temp, low_temp, high_temp
FROM TABLE (Temp_TF)
Table Function
데이타베이스 웹서비스(Web Service)
웹서비스
Provider
(예 : 기상서비스)
SOAP
Request/Response
Oracle Database 10g 주요 기능 (DBMS)
7. Information Integration
라. 공유(Sharing)
개요
여러 데이타베이스와 애플리케이션 간에 정보를 공유할 필요성이 점차 늘어나고 있습니다. 이러한 필요성이 발생하면 그때그때 이를 해
결하기 위해 특정한 정보 공유 기술을 사용해 왔습니다. 사용하기 간편하고 구축하기 쉽지만, 업무가 확장되고, 더 많은 요소들이 공유
를 필요로 하다 보니 한계에 다다르고 있습니다. 개발자들은 더 많은 툴을 구현해야 하고, 복잡도는 기하급수적으로 커지게 된 것입니다.
OLTP 데이터, 데이타베이스 이벤트, 애플리케이션 메시지 등, 데이터를 통합할 소스는 다양합니다. 그리고 이러한 정보는 이기종 복제
데이타베이스(heterogeneous replicated database), 메시지 큐잉 시스템(message queuing system), 데이타웨어하우스 스테이지 영
역(data warehouse staging area), operational data store, 다른 애플리케이션, 대기 데이타베이스(standby database) 등 다양한 곳으
로 라우팅될 필요가 있습니다.
오라클은 Oracle Streams, materialized view, transportable tablespace, data pump 등 정보 공유의 여러가지 기능을 제공하며, 데이터
를 가장 많이 액세스되는 곳에 위치시킴으로써, 응답 시간을 향상시키고, 원격 데이터 스토어(remote data store)에 대한 의존도를 제거
할 수 있습니다.
Updateable
Replicas
Data
Feeds
Data
Changes
Database
Events
Application
Messages
136
Automated
Capture
Rules based
Publish/
Subscribe
Propagation
In stream
Transformations
Directed and
Subset
Information
Streams
Intelligent, Unified,
Time Ordered
Information Stream
Data
Warehouses
and Data Marts
Standby
Databases
Messaging
Applications
Operational
Data Stores
Oracle Database 10g 주요 기능 (DBMS)
7. Information Integration
라. 공유(Sharing)
Oracle Streams
 개요
Oracle Streams는 데이타베이스 내에서 혹은 하나의 데이타베이스에서 다른 데이타베이스로 데이터, 트랜잭션, 이벤트 등의
propagation과 관리를 가능하게 해줍니다.
Oracle Streams는 아래 그림과 같이 단계를 가지고 있으며, 어떠한 정보가 stream에 들어가야 하는지, stream이 어떻게 흐르
는지(노드간의 라우팅은 어떻게 되어야 하는지), stream이 흐르는 동안 어떠한 이벤트가 일어나는지, stream이 어떻게 종료되
는지 등에 대해 조절할 수 있는 일련의 요소를 제공합니다.
Capture
Staging
Consumption
Oracle Streams의 아키텍쳐를 예를 들어 살펴보면 아래 그림과 같습니다.
update EMP set
location=‘서울’
where
empid=100;
EMP
update EMP set
location=‘서울’
where
empid=100;
Queue
----LCRs
Propagation
Capture
Redo Log
137
Queue
----LCRs
Apply
EMP
Oracle Database 10g 주요 기능 (DBMS)
7. Information Integration
라. 공유(Sharing)
Oracle Streams
 Capture
데이타베이스 내의 변경이나 애플리케이션이 발생한 메시지와 같은 이
벤트를 capture해서 staging area로 옮기는 단계로 각각 implicit
capture, explicit capture라 합니다.
Implicit capture를 log-based capture라고도 하는데, capture 프로세
스가 redo log를 마이닝해서 변경된 데이터를 추출해 Logical Change
Record(LCR) 포맷으로 변경하고 staging area에 놓게 되는 것입니다.
 Staging / Propagation
Staging area는 capture된 이벤트에 대한 저장, 관리 서비스를 제공하는
큐(queue)입니다.
이벤트는 동일한 데이타베이스나 다른 데이타베이스에 존재하는 또다른
staging area로 propagation될 수 있으며, 네트웍 라우팅의 간소화와 트
래픽의 감소를 위해 모든 데이타베이스와 애플리케이션에 바로 보낼 필
요 없이, 일단 일종의 허브 데이타베이스(실제로 apply는 하지 않는)로
propagation할 수 있습니다.
138
Oracle Database 10g 주요 기능 (DBMS)
7. Information Integration
라. 공유(Sharing)
Oracle Streams
 Apply / Consumption
Staging area에 있는 이벤트는 apply engine에 의해 소비(consumption)
되어, 데이타베이스나 애플리케이션에 적용됩니다.
Apply engine은 표준함수를 이용하는 것 이외에, 별도로 apply 함수를
정의할 수도 있습니다. 이 경우 데이터에 대한 변환(transformation) 작업
을 수행할 수 있습니다.
 이기종 시스템과의 정보 공유
Oracle Streams는 오픈 솔루션으로, 각각의 요소는 산업표준언어와 표준을 지원합니다.
오라클에서 오라클이 아닌 시스템으로의 capture/apply를 지원하며, apply시 transparent gateway나 generic connectivity를
사용합니다.
오라클이 아닌 데이터 소스에서 레코드의 변경 사항을 받을 수 있는 API를 포함하고 있습니다.
 Oracle Streams 활용처
Message Queuing
Data Replication
Event Management and Notification
Data Warehouse Loading
Data Protection
139
Oracle Database 10g 주요 기능 (DBMS)
7. Information Integration
라. 공유(Sharing)
Oracle Streams Advanced Queuing
Oracle Streams AQ는 staging area에 메시지 enqueue, subscribing staging area에 propagation, consumption 준비 공지, 메시지
dequeue 등 이벤트를 처리하기 위한 통합된 프레임워크를 제공하며, 다중 consumer queue, publish/subscribe, content-based
routing, internet propagation, transformation 등을 포함한 메시지 큐잉 시스템의 표준 기능을 지원합니다. 또한 오라클의 message
gateway 기능을 이용하면 오라클 데이타베이스 애플리케이션과 Websphere MQ(기존의 MQ Series), Tibco 등과 같은 다른 메시지 큐
잉 시스템을 연동할 수 있습니다.
전통적인 방식의 큐와는 달리 Oracle Streams staging area는 다양한 타입의 메시지를 저장할 수 있어서, 단일 staging area에 여러 타
입의 메시지를 enqueue할 수 있습니다.
아래 그림과 같이 통합 환경에서는 메시지가 오라클 데이타베이스 서버, 애플리케이션, 사용자 사이를 오가며, 인터넷을 통해 Oracle
Streams AQ에 접근할 때는 Simple Object Access Protocol(SOAP)을 사용하게 되는데, Internet Data Access Presentation(IDAP)은
이 SOAP request body에 대한 XML 메시지 스트럭쳐를 정의한 것입니다.
140
Oracle Database 10g 주요 기능 (DBMS)
7. Information Integration
라. 공유(Sharing)
Materialized View Replication / Advanced Replication
 개요
복제란 분산된 데이터베이스 시스템을 구성하는 다중 데이터베이스의 데이터베이스 객체를 복사하고 유지 관리하는 프로세스입
니다. 복제를 통해 사용자는 공유 데이터에 지역적으로 빠르게 액세스할 수 있고 대체 데이터 액세스 옵션이 존재하므로 응용
프로그램의 가용성을 보호할 수 있습니다.
오라클은 업계에서 가장 포괄적인 복제 기능을 제공합니다. 판매조직 자동화와 같은 대량 전개 애플리케이션에서부터, 다중 웹
사이트 또는 콜센타를 지원하는 서버들 간에 데이터 동기화가 필요한 애플리케이션에 이르기까지 오라클의 복제 기능은 이 모
든 것을 통합된 단일 환경에서 지원합니다.
대량 전개 애플리케이션의 경우, 엄청난 수의 소형 원격사이트, 중앙집중식 관리, 비접속 작업 그리고 정교한 부분복제 설정에
대한 지원을 제공하므로, 모바일 컴퓨팅 환경에 적업한 솔루션입니다. 또한 materialized view는 데이타웨어하우스 환경에서
합계나 평균값 등을 계산, 저장함으로써 성능 향상을 이룰 수 있습니다.
 다중 마스터 복제(multiple master replication, peer-topeer replication, n-way replication)
다중 마스터 복제 환경에서는 다중의 사이트가
동등한 자격으로 복제 그룹을 관리할 수 있으며,
각각의 사이트는 마스터 사이트가 됩니다. 응용
프로그램은 다중 마스터 구성에서 모든 사이트
의 어떠한 복제 테이블에 대해서도 갱신할 수 있
으며, 마스터 사이트의 오라클 데이터베이스 서
버는 모든 테이블 복사본의 데이터를 자동으로
모으고, 전역 트랜잭션의 일관성과 데이터의 무
결성을 보장합니다.
마스터
사이트
테이블
테이블
복제 그룹
마스터
사이트
마스터
사이트
테이블
테이블
복제 그룹
141
테이블
테이블
복제 그룹
Oracle Database 10g 주요 기능 (DBMS)
7. Information Integration
라. 공유(Sharing)
Materialized View Replication / Advanced Replication
 읽기 전용 materialized view 복제
응용 프로그램은 네트워크 가용성에 관계없이 네트워크 액세스를 방지하는 로컬 데이터 복사본으로부터 데이터를 질의할 수 있
습니다. 그러나 갱신이 필요한 응용 프로그램은 소스 사이트의 데이터에 액세스해야 합니다.
읽기 전용 materialized view의 장점은 다음과 같습니다.
복합 materialized view를 지원합니다. (materialized view는 하나 이상의 테이블에 준하며, 합계, 조인, 집합 연산 또는
CONNECT BY 절을 포함할 수 있습니다.)
로컬 액세스를 제공하여 응답 시간과 가용성을 향상시킵니다.
마스터 사이트의 업무 부하를 줄일 수 있습니다.
클라이언트 응용 프로그램
원격 갱신
로컬 질의
테이블 복사본
(읽기 전용)
테이블
(갱신 가능)
네트워크
데이터베이스
142
테이블 데이터 복제
마스터
데이터베이스
Oracle Database 10g 주요 기능 (DBMS)
7. Information Integration
라. 공유(Sharing)
Materialized View Replication / Advanced Replication
 갱신 가능 materialized view 복제
테이블의 행을 삽입, 갱신 및 삭제할 수 있는 갱신 가능 materialized view을 생성할 수 있으며, 갱신 가능 materialized view에서
생긴 변경 사항을 해당 materialized view의 원격 마스터 테이블에 전달하고, 필요한 경우 다른 모든 마스터 사이트에서 갱신
작업이 단계적으로 수행됩니다.
갱신 가능 materialized view의 장점은 다음과 같습니다.
마스터 사이트로부터 접속이 해제된 경우에도 사용자는 로컬 복제 데이터 집합을 질의하거나 갱신할 수 있습니다.
대상 마스터 테이블의 데이터 집합 중 선택된 부분만을 복제하여, 데이터 보안을 증가시킬 수 있습니다.
마스터
사이트
복제
Materialized
View 사이트
테이블
테이블
복제 그룹
Materialized
View 사이트
테이블
테이블
테이블
복제 그룹의 일부
143
테이블
복제 그룹의 전체 복사본
Oracle Database 10g 주요 기능 (DBMS)
7. Information Integration
라. 공유(Sharing)
Materialized View Replication / Advanced Replication
 복제 충돌
비동기 다중 마스터와 갱신 가능 materialized view 복제 환경에서는 다른 사이트로부터 생성된 두 개의 트랜잭션이 거의 동시에
동일한 행을 갱신할 때 발생할 수 있는 복제 충돌 가능성을 해결해야 합니다.
데이터 충돌이 발생하면 충돌이 사용자의 업무 규칙대로 해결되며 데이터가 모든 사이트에서 제대로 수렴된다는 것을 보장하는
기법이 필요합니다. 오라클의 기본적인 충돌 해결 방법으로 해결할 수 없는 상황에 처한다면 사용자만의 충돌 루틴을 구축하고
사용할 수 있습니다.
 하이브리드 구성(Hybrid Configuration)
Materialized view는 다중 마스터 복제와 혼용해서 구성할 수 있으며, Oracle Streams, Oracle Transparent Gateway와도 혼용
해서 구성할 수 있습니다.
144
Oracle Database 10g 주요 기능 (DBMS)
7. Information Integration
라. 공유(Sharing)
Oracle Transportable Tablespace
Transportable Tablespace는 다른 데이타베이스 간에 tablespace를 가장 빠른 방법으로 전송할 수 있는 메커니즘을 제공하며, 다음과
같은 기능을 가지고 있습니다.
 Tablespace내의 실 데이터를 unload/reload 작업 없이 옮기고 공유할 수 있음
 단순한 plug/unplug의 개념이기 때문에 빠르며, tablespace의 크기에 상관없이 거의 동일한 성능을 보장함
 Tablespace를 읽기모드로 마운트하면, 두 데이타베이스가 동시에 정보를 공유하고, 독립적으로 액세스할 수 있음
 상이한 플랫폼 사이에서도 지원이 됨
Byte order가 다른 플랫폼 사이에서도 지원이 됨
 Tablespace의 이름을 변경할 수 있는 기능 제공
옮기는 대상 데이타베이스에 이미 같은 이름의 테이블스페이스가 존재할 때 유용
File
1 File
2
145
OS copy
expdat.dmp
File
1 File
2
expdat.dmp
Oracle Database 10g 주요 기능 (DBMS)
7. Information Integration
라. 공유(Sharing)
Oracle Data Pump
Transportable Tablespace와 마찬가지로 다량의 정보를 빠르게 옮길 수 있는 인프라스트럭쳐를 제공하며, 기존의 export/import보다 더
욱 빠른 성능을 지원합니다.
주요 특징 및 장점은 아래와 같습니다.
 Direct path나 external table과 같이 데이타 액세스 메소드가 자동적으로 선택됨
 worker process의 수를 DBA가 지정할 수 있으며, external table을 데이타 액세스 메소드로 선택된 경우 자동으로 PQ process를 병렬
로 사용할 수 있음
 Job의 진행은 마스터 테이블에 기록이 되며, 비정상적으로 종료된 job을 재기동시킬 수 있음
 현재 진행되는 data pump job에 영향을 주지 않은채로 그 job에 attach시켜 다른 job을 실행시키거나, detach시킬 수 있음
 dump 파일의 크기 예측과 진행 정도의 모니터링 가능
 EXCLUDE, INCLUDE, 그리고 CONTENT parameter를 사용하여 대상 오브젝트를 세분화(fine-grained object selection)할 수 있음
 expdp/impdp 명령을 제공하고(interactive mode 가능), Enterprise Manager를 사용할 수 있음
 network mode가 지원이 되어, dump file의 생성없이 바로 원격지로부터의 unload와 로컬의 load를 수행할 수 있음
146
Oracle Database 10g 주요 기능 (DBMS)
8. Business Intelligence
가. 비즈니스 인텔리젼스
개요
• Oracle Database 10g는 데이타 웨어하우징과 비즈니스 인텔리전스 기능들을 향상시켜서 고객들이 그들의 데이타로부터 보다 많은
가치를 얻어내고, 또한 실제의 데이타 피드(feed)를 지원하도록 하여 결국에는 총 소유비용을 낮출 수 있었습니다. 또한 Oracle
Database 10g는 별개의 비즈니스 인텔리전스들을 단일의 통합 엔진으로 합병 및 통합하는 기능도 보다 향상을 시켰으며,
데이타베이스 크기 제한도 수백만 테라바이트로 증가를 시켰습니다. 비즈니스 인텔리전스 애플리케이션들은 리소스 할당의 관리를
위해 Real Application Clusters의 자동 서비스 프로비저닝을 사용하는 트랜잭션 애플리케이션들과 통합될 수 있는데, 여기에서 통합은
작업 데이타를 직접 분석할 수 있고, 비즈니스 요구가 변경될 때 서버들을 작업 로드로 재할당하여 리소스를 최대로 활용할 수 있다는
것을 의미합니다. 데이타의 가치는 향상된 OLAP 분석론, 데이타 마이닝 GUI 그리고 새로운 SQL 모델 기능 등을 사용하여 핵심
데이타를 다양하게 분석할 수 있는 능력과 함께 증가를 합니다. SQL 모델을 사용하면 질의 결과들은 상호-의존적 수식(formula)들이
정교하게 구축되는 다차원의 배열 집합처럼 취급이 되는데, 이 수식들은 데이타를 스프레드시트로 추출하거나 또는 복합 조인과
유니온을 수행할 필요 없이 예산과 예측 등과 같은 복합적인 넘버-크런칭(number-crunching) 애플리케이션들에서 사용할 수가
있습니다.
• 실제 웨어하우징은 비즈니스 인텔리전스를 작업 애플리케이션과 병합을 하거나 또는 통합된 ETL 프로세싱을 통해 로우 또는 제로 대기
시간의 소량 공급(low or zero latency trickle feeds) 을 산출해 내는 Oracle Streams 기반의 새로운 변경 데이타 캡처 기능들을 통해
사용할 수가 있습니다.
147
Oracle Database 10g 주요 기능 (DBMS)
8. Business Intelligence
가. 비즈니스 인텔리젼스
BI를 위한 Oracle 아키텍쳐의 특징
• Oracle Database 10g에서는 비즈니스 인텔리젼스 애플리케이션의 작성 비용 및 복잡성을 감소시켜 줍니다.
Oracle Database 10g
Data Warehousing
ETL
OLAP
Data Mining
148
•
•
•
•
•
•
Consistency
Collaboration
Accuracy
Scalability
Security
Ease of Development
Oracle Database 10g 주요 기능 (DBMS)
8. Business Intelligence
나. 대용량 데이터베이스 지원 - Bigfile Tablespace
Oracle Database 10g에서는 대량의 데이터를 저장할 수 있는 테이블 스페이스의 제한을 확장 하였습니다. 로컬 관리 테이
블스페이스를 사용할 경우 데이터베이스의 사이즈는 최대 엑사바이트(exabyte)를 지원합니다.
DBMS_ROWID.ROWID_BLOCK_NUMBER
Smallfile Tablespaces
149
Bigfile Tablespaces
OOOOOO FFF BBBBBB RRR
OOOOOO LLL LLLLLL RRR
Data object
Data block
number
number
Relative file
Row
number
number
Row
Data object
number
number
Encoded block
number
Oracle Database 10g 주요 기능 (DBMS)
8. Business Intelligence
나. 대용량 데이터베이스 지원 - Data Compress
대용량의 데이터를 보관하는 데 있어서 많은 데이터를 관리하는 것은 DBA로써 많은 어려움이 있습니다. 그래서 Oracle
Database 10g 에서는 데이터의 압축을 통해서 저장공간을 절약하고 데이터를 압축하여 질의 및 사용하는 데이터의 물리
적인 사이즈를 줄임으로서 빠른 성능을 보장할 수 있습니다.
“data_segment_compression” clause 로 Data segment 를 압축할 것인지 아닌지를 지정
 COMPRESS - enables data segment compression
 NOCOMPRESS - disables data segment compression. (default 값)
많은 Insert, 적은 update 일 경우 유용하게 이용될 수 있습니다.
Data segment compression 이용:
 For an entire table heap-organized table (in the physical_properties clause of relational_table or object_table)
 For a range partition (in the table_partition_description of the range_partitioning clause)
 For a list partition (in the table_partition_description of the list_partitioning clause)
 For the storage table of a nested table (in the nested_table_col_properties clause)
150
Oracle Database 10g 주요 기능 (DBMS)
8. Business Intelligence
나. 대용량 데이터베이스 지원 - Partitioning
Large Tables 과 Indexes를 분할하여 저장 하는 방법.
 큰 데이터를 작은 조각(partition)으로 나눔으로써 관리의 용이 및 질의 성능의 향상을 도모
Table과 Index당 64000개 까지 분할가능
Benefits
 효율적 디스크 I/O 분배 및 질의 성능 향상
 대용량 데이터베이스를 이용하는 곳에 적합
 기간별 데이터 추이에 대한 분석 시 유용
Partition
Key Range
SALES 01 Table
파티션 기법
 Range
 Hash
Partition
Name
01-JAN-01
to
31-MAR-01
Q1
01-APR-01
TO
30-JUN-01
Q2
01-JUL-01
TO
30-SEPT-01
Q3
01-OCT-01
TO
31-DEC-01
Q4
 List
 Composite (Range + Hash, List + Hash)
파티션별로 질의 및 DML 가능
 Data 요청 시 관련 partition과 접근
안정성 증가
 Disk failures시 해당 Partition만 영향
 Partition 단위의 backup/recovery
사용자는 한 테이블로 인식(사용의 편리성)
 사용자에게 테이블 접근의 투명성을 제공한다.
151
Oracle Database 10g 주요 기능 (DBMS)
8. Business Intelligence
나. 대용량 데이터베이스 지원 - Partitioning
손쉬운 관리
 개별적 Partition 관리 가능
 Partition 단위의 병렬 데이터 처리 기능
Loading and Export/Import
Index (re)builds
다양한 Partition 관리 방법 제공
 Imparted/Exported at Partition Level
 Load Partition Data
 Merge Partition
인접한 두개의 partitions 통합
parallel 실행 가능함
ALTER TABLE 판매 MERGE PARTITIONS 판매91,판
매92 INTO PARTITION 판매91_92;
 Move / Split / Rename / Drop / Add / Exchange Partitions
 Row Movements
Partition key 값을 수정할 수 있으며 필요할 경우 해당 row는 다른 partition으로 이동됨
Partition Key에 의해 레코드의 저장 위치 결정
Partition-wise joins
Partitioned LOBs / Index Organized Tables
152
ALTER TABLE 판매 ENABLE ROW MOVEMENT;
Oracle Database 10g 주요 기능 (DBMS)
8. Business Intelligence
나. 대용량 데이터베이스 지원 - Partitioning
성능향상을 위한 지능적 Partition 인식
 Partition Pruning
 Inter- and Intra-partition parallelism
 Load balancing across physical devices
 SQL 수행 시 관련 없는 Partition은 Query 대상에서 제외
Benefits
 효율적 디스크 I/O 분배 및 질의 성능 향상
 대용량 데이터베이스를 이용하는 곳에 적합
 기간별 데이터 추이에 대한 분석 시 유용
Winter Orders Table
select sum(order_amt)
from winter_orders
where order_date
between ‘00/01/15’
and
‘00/02/05’;
1월
Orders
Partition
153
2월
Orders
Partition
3월
Orders
Partition
Oracle Database 10g 주요 기능 (DBMS)
8. Business Intelligence
다. 신속한 정보 제공 주기의 향상 - 개요
Business Intelligence System를 구축하기 위해서는 ETL(Extraction, Transformation, Loader)작업이 진행되어야 gkq니다.
실제 대용량의 Business Intelligence 프로젝트에서 전 단계의 소요시간 중 60%이상이 ETL(Extraction, Transformation,
Loading) 단계에서 소요됩니다.
이 단계에서의 시간을 최소한으로 줄이고, 편리한 관리를 위해 Oracle에서는 다양한 방법과 제품을 제공합니다.
 External Table
 Change Data Capture
 Table Function
 Streams
 Parallel DDL & DML
 Symmetric Replication
 Transportable Tablespace
 Direct-path Load API
 새로운 DML 기능
 대량의 데이터를 Bulk Loading하는 SQL*Loader
 이기종데이터베이스 Loading을 위한 Gateway 등
154
Oracle Database 10g 주요 기능 (DBMS)
8. Business Intelligence
다. 신속한 정보 제공 주기의 향상 – Change Data Capture (CDC)
기존의 원천 시스템에서 가장 최근에 extraction한 이후의 변경된 데이터만 추출하는 작업을 CDC(Change Data Capture)
라고 합니다. 이는 Data Warehouse을 구축하는 데 매우 있어 전체 데이터를 구축하는 것 보다 적은 양의 데이터를 추출하
기 때문에 이러한 기능이 제공된다면 매우 효과적입니다. 그러나 많은 원천 시스템에서 이러한 기능은 매우 어렵거나 운
영중인 시스템에 부담이 되는 작업입니다. 이러한 CDC는 Data Extraction에 있어서 매우 중요한 기술입니다.
Oracle Change Data Capture는 Data Warehouse 프로젝트에 있어 매우 경쟁력 있는 솔루션이 될 수 있습니다. 모든 프로
젝트에서 변경된 데이타를 Capture하는 작업에 대한 부담을 데이터 베이스에서 처리함으로써 생산성을 향샹시킬 수 있습
니다.
Sync/Async Change Data Capture 지원
Source
tables
Internal Triggers
변경기록
Table
Source Table
155
변경된 내용을 View을
통하여 조회함.
Oracle Database 10g 주요 기능 (DBMS)
8. Business Intelligence
다. 신속한 정보 제공 주기의 향상 – Streams
Streams는 Oracle Database 9i R2에 소개 된 것으로, 다른 Information Sharing 기법과는 사뭇 다른 기법을 사용합니다.
이미 과거에 소개된 Logminer의 기능을 이용하여 Redo log file/Archive File을 읽어서 원하는 Table, 원하는 Schema, 혹은
전체 Database의 변경을 Capturing하여 Remote Database로 전달하여 적용합니다. 이러한 방식으로 원격지 Database간
의 정보 공유를 지원하며, 또한 Streams는 전달하는 과정에서 Source 변경사항 이외의 추가적인 변경이나, 추가적인 정보
를 Mapping하여 Target에 반영 할 수 있는 Transformation 기능도 지원합니다.
Oracle Database 10g에서는 Source Site에서 변경된 내용을 Capturing하여 Target으로 전달하는 Apply하는 방식에서
Source site에서 Capturing하는 부하를 줄이기 위해 Capture Process를 Target site에서 수행하는 “Down Streams Capture”
의 방식을 지원합니다.
156
Oracle Database 10g 주요 기능 (DBMS)
8. Business Intelligence
다. 신속한 정보 제공 주기의 향상 – Transportable Tablespace
Database 간의 일부 Data를 빠른 시간에 전송 기능을 제공합니다. 이 기능을 통하여 서로 다른 플랫폼간에 테이블 스페이
스 이전을 허용할 뿐만 아니라 읽기 전용(Read Only) 모드에서는 여러 플랫폼에서 공유할 수 있는 기능이 더욱 향상되었
습니다. 관련된 통계 정보 및 Index의 재생성이 필요 없습니다.
Datafile의 OS level copy + Tablespace Meta 데이터 export / import
OLTP -> DW, DM으로 초기 Data 공급 시 , ETT, Data Publishing, Archiving 등에 유용합니다.
DB
DB
info
157
Data 이동
=
OS level
Copy time
info
Oracle Database 10g 주요 기능 (DBMS)
8. Business Intelligence
다. 신속한 정보 제공 주기의 향상 – Data Pump
Oracle Database 10g는 데이터를 내부로 혹은 외부로 가져올 때 성능을 대폭 향상시키는 새로운 데이터 이동 기능을 내장
하였습니다. Oracle 10g Data Pump는 어떤 데이터베이스에서 다른 데이터베이스로의 데이터 및 메타 데이터의 신속한
이동을 가능하게 해주는 고속의 병렬 기반구조를 가지고 있습니다.
이 기술은 Oracle의 새로운 데이터 이동 유틸리티인 Data Pump Export 와 Data Pump Import의 기초가 되는데 기존의
Export와 Import에 대비하여 성능을 대폭 향상 시켰습니다. 특히 Data Pump Import의 경우는 일반적인 Import 명령어 보
다 15~20배 이상 빠릅니다. Data Pump는 전체 데이터베이스 혹은 데이터베이스 부분 집합을 내리거나 목표 플랫폼상에
재 적재하는 유연하고 신속한 방법입니다.
expdp
impdp
Enterprise
Manager
Other Clients:
Data Mining, etc
Data Pump
DBMS_DATAPUMP
Data/Metadata movement engine
Oracle_
Loader
Oracle_
DataPump
External Table API
158
Direct Path
API
Metadata
API:
DBMS_METADATA
Oracle Database 10g 주요 기능 (DBMS)
8. Business Intelligence
다. 신속한 정보 제공 주기의 향상 – Materialized View
Data Warehouse에서 성능 향상을 위한 기법 중의 하나는 Summary를 만드는 것입니다. Summary는 질의 수행 시간을
향상시키기 위하여 복잡한 조인이나 aggregation 연산을 미리 수행한 후 그 결과를 데이터베이스의 테이블에 저장하는
aggregate view의 일종입니다. 예를 들면, 지역별 및 제품별 매출의 합을 미리 계산하여 테이블로 저장할 수 있습니다.
Oracle에서 Summary를 생성할 때는 Materialized View 스키마 객체를 사용합니다. Materialized View는 질의 성능 향상
과 데이터 복제 등의 기능을 제공합니다 .
• Explain Materialized View
DBMS_MVIEW Package에 Oracle10g에 새롭게 추가된 EXPLAIN_MV Procedure는 다음의 정보를 사용자에게 알려줍니다.
- 해당 MV가 Fast Refresh가 가능한가?
- 해당 MV에 대해 Oracle에서 어떤 종류의 Query Rewrite를 제공하는가?
사용자는 DBMS_MVIEW.EXPLAIN_MV 함수를 호출하기만 하면 됩니다. 파라미터로는 기존의 MV 이름이나 MV를 생성하기 위한
SELECT 문을 줄 수 있습니다. 기존의 MV나 생성 가능한 MV는 분석된 후 MV_CAPABILITIES_TABLE에 저장되거나, ExplainMV
ArrayType 타입의 VARRAY인 MSG_ARRAY에 저장됩니다.
Explain Plan을 통해서 MV에 Access 나 Query Rewrite 에 의해서 사용되는 Plan을 확인 할 수 있습니다.
• Explain Query Rewrite
Oracle에서는 DBMS_MVIEW. EXPLAIN_REWRITE 라는 PL/SQL 프로시저를 제공합니다. 이 프로시저는 Query Rewrite발생하는지 혹
은 왜 발생하지 않는지 등의 정보를 제공합니다. 이 결과를 이용하여 Query Rewrite가 발생하도록 하기 위한 필요한 작업들을 수행할
수 있습니다. DBMS_MVIEW.EXPLAIN_REWRITE의 파라미터로 주어지는 질의가 실제로 수행되지는 않습니다.
프로시저의 결과는 REWRITE_TABLE, OUTPUT_ARRAY를 통해서 얻을 수 있습니다.
159
Oracle Database 10g 주요 기능 (DBMS)
8. Business Intelligence
다. 신속한 정보 제공 주기의 향상 – Summary Management
‘요약 정보’ 사용의 이점
Summary Advisor
 미리 연산 되어 (Join, Group by 등) 저장된 ‘요약정보’에 대
해 질의 수행함으로써 성능 향상
 분석된 Workload 및 통계 정보를 통해 ‘요약 정보’의 생성 및
삭제 그리고 관리에 대한 자세한 정보를 추출할 수 있습니다.
 ‘원본’ 테이블에 대한 질의가 자동으로 ‘요약정보’에 대한 질
의로 변경됩니다. (Query Rewrite) 따라서 사용자에게는 투명
함을 제공합니다.
 새로운 Materialized view 생성, 삭제, space 요구량 등에 대
한 조언
Disk 비용대비 성능향상 효과에 대해 최적화
Oracle Trace
사용자 질의
미리 연산된 결과1 미리 연산된 결과 2
지역별
주문 평균
‘요약 정보
‘주문’
테이블
‘주문’ 테이블 에 대한
질의가 요약정보에 대한
질의로 바뀜
제품별
주문 횟수
‘요약 정보’
Workload
Statistics
Data
Dictionary
Information
분기별
주문총합
‘요약정보’
Summary advisor
미리 연산된 결과 3
Summary
usage
160
Summary
recommendations
Space
requirements
Oracle Database 10g 주요 기능 (DBMS)
8. Business Intelligence
다. 신속한 정보 제공 주기의 향상 – Direct Path Load
빠른 데이터의 로드를 위하여 SQL*Loader의 Direct Path Load 기능을 강화 하였습니다. ROWID, XMLTYPE, ARRAY
데이터 타입등과 같은 다양한 데이터 타입에 대한 Direct Path Load 기능을 지원합니다.
Direct Path Load API
• 3rd Party 제품에 Direct-Path Loading기능을 부여해 주는 Program Interface Set으로 File대신 Stream으로 데이터를 변형해서 직접
Table로 Loading할 수 있게 해주므로 ETL단계에서의 복잡성을 줄이고, 훌륭한 성능과 편리성을 제공합니다.
161
Oracle Database 10g 주요 기능 (DBMS)
8. Business Intelligence
다. 신속한 정보 제공 주기의 향상 – Table function
Table Function은 Output을 로우의 집합으로 생성할 수 있는 정의 함수입니다. 즉, 다시 말하면 Table Function은
Collection type instance(nested table and VARRAY 데이터 타입)을 반환합니다. Oracle10g에서는 사용자가 Table
Function을 정의하는 것을 허용합니다. 이러한 Table Function은 From절에 TABLE 키워드를 사용하여 질의할 수 있습니다.
ETL 작업에 있어서 데이터 웨어하우스로 데이터를 로딩하기 전에 일련의 transformation 작업을 통해 원천 시스템으로부
터 데이터를 추출합니다. 이러한 절차적인 방법은 사용자가 정의한 transformation은 많은 부분이 PL/SQL형태로 데이터
베이스 있거나 아니면 다른 형태로 데이터 베이스 외부에 존재하게 됩니다. Oracle10g의 table function은 PL/SQL, C,
Java로 개발된transformation과 같이 Pipeline과 병렬 실행을 제공합니다. 이러한 기능은 다양한 transformation 과정에 있
어 중간의 staging 테이블이 필요없이 수행이 가능합니다. Table function은 내부 PL/SQL interface를 이용한 PL/SQL로 작
성하거나 Oracle Data Cartridge Interface를 이용한 C나 JAVA로 작성할 수 있습니다.
162
Oracle Database 10g 주요 기능 (DBMS)
8. Business Intelligence
다. 신속한 정보 제공 주기의 향상 – External Table
External table은 데이터가 데이터 베이스내에 존재하지 않고 read-only 테이블 이라는 점만 제외하고는 일반적인 SQL 테
이블과 유사합니다.
Oracle의 external table은 Data warehouse에서 외부 데이터 (flat file)를 변형(transformation)하기 위하여 데이터 베이스
내로 데이터를 로드하고 로드된 데이터를 가지고 변형 작업을 진행하였는데, 이러한 작업 과정 없이 마치 일반적인 테이
블인 것 처럼 사용할 수 있는 기능을 제공합니다.
일반적인 특징
 데이터가 데이터 베이스 외부에 Flat file로 저장되는 read-only 테이블
 SQL을 이용하여 데이터를 질의할 수 있다. 단 DML과 인덱스는 생성하거나 사용할 수 없습니다.
 external table의 데이터는 데이터 베이스에 표현됩니다
 DB 에 Meta data 만 생성하여 실 table처럼 query
 parallel process, join 도 가능.
SELECT * FROM employees_ext;
 테이블의 데이터를 외장 파일로 추출가능
External Table의 활용
 데이터 베이스내로 데이터의 로딩 없이 질의, 조인, 병렬 등을 수행하는 작업에 이용할 수 있습니다.
 Data Warehousing Application 에서 ETL을 위한 STAGING 을 필요하지 않게 됩니다.
 외부 source를 기존의 데이터 베이스의 오브젝트와 조인하거나 변형시킬 때 유용하게 사용할 수 있습니다.
 자주 사용되지 않고 매우 큰 외부 데이터일 때 유용하게 사용할 수 있습니다.
163
OS FILE
(FLAT FILE)
Oracle Database 10g 주요 기능 (DBMS)
8. Business Intelligence
다. 신속한 정보 제공 주기의 향상 – Merge
 테이블이나 단독 테이블 뷰에 조건적인 로우를 insert 하거나 update 하는 능력을 지원하기 위한 SQL 확장입니다. 하나의 SQL 문장으
로 해당 record 가 있으면 update, 없으면 insert를 할 수 있습니다. 단순한 Key값에 의한 작업의 구분 뿐만 아니라 Update에 대한 다양
한 조건을 사용할 수 있습니다. Delete 의 기능도 가능합니다.
 이전에는 Upsert를 표현하기 위해 DML문의 순서적으로 적용하거나 아니면 PL/SQL에서 각 row를 looping 작업을 하여야 했는데, 이
러한 접근 방식은 모두 성능과 활용도에 있어 매우 부하가 많습니다.
 데이터 웨어하우스에서 사용되는 일반적인 작업인 단순한 BULK LOADING할 때 사용될 수 있습니다.
164
Oracle Database 10g 주요 기능 (DBMS)
8. Business Intelligence
다. 신속한 정보 제공 주기의 향상 –Multi Table Insert
• 외부 원천 데이터를 서로 다른 오브젝트에 insert하기 위해 논리적인 속성을 기준으로 분리하는 작업은 매우 빈번히 발생합니다. 같은
원천 데이터를 서로 다른 목적 오브젝트에 분산하는 작업은 데이터 웨어하우스 환경에서는 자주 발생합니다. Multitable insert는 데이터
를 하나 혹은 여러 개의 테이블에 업무적인 변형 규칙에 종속되어 처리되는 일종의 변형작업을 위한 새로운 SQL문입니다. 이러한 입
력은 업무적인 규칙의 근간으로 하는 조건문이나 무조건문에서도 가능합니다.
• 따라서 이 기능을 사용하면 하나의 문장으로 빠른 시간에 처리 할 수 있으므로 해서 매우 생산성이 높아 지게 되었습니다. 즉, 병렬화와
빠른 성능을 위한 Direct-load 메커니즘을 사용할 수 있습니다.
INSERT ALL
INTO sales VALUES (product_id, customer_id, today, 3, promotion_id, quantity_per_day,
amount_per_day)
INTO costs VALUES (product_id, today, promotion_id, 3,product_cost, product_price)
SELECT TRUNC(s.sales_date) AS today, s.product_id, s.customer_id, s.promotion_id,
SUM(s.amount) AS amount_per_day,
SUM(s.quantity) quantity_per_day, p.prod_min_price*0.8 AS product_cost,
p.prod_list_price AS product_price
FROM sales_activity_direct s, products p
WHERE s.product_id = p.prod_id AND TRUNC(sales_date) = TRUNC(SYSDATE)
GROUP BY TRUNC(sales_date), s.product_id, s.customer_id, s.promotion_id,
p.prod_min_price*0.8, p.prod_list_price;
165
Oracle Database 10g 주요 기능 (DBMS)
8. Business Intelligence
다. 신속한 정보 제공 주기의 향상 – Bitmap Join Index
많은 양의 데이터에 대해 ad hoc 질의가 많은 환경에서 Bitmap 인덱스가 많이 사용되고 있습니다. Bitmap 인덱스는 ad
hoc 질의에 대한 응답 시간 단축, B*-Tree 인덱스에 비해 적은 양의 디스크 공간 사용, 시스템 성능 향상 등을 제공해 줍니
다. 하나의 테이블에 대한 Bitmap Index 뿐만 아니라 Bitmap Join Index도 지원합니다.
• Bitmap Join Index(BJI)는 두개 이상의 테이블의 조인 결과에 대해 Bitmap Index를 생성하는 것을 말합니다. Bitmap Join Index는 조
인되어야 하는 데이터의 양을 미리 제한하여 디스크 공간을 효율적으로 사용할 수 있습니다. Bitmap Join Index는 Materialized Join
View에 비해 디스크 공간을 훨씬 효율적으로 사용할 수 있습니다. 즉, Materialized View의 경우 조인된 결과의 모든 데이터를 가져야
하지만, Bitmap Join Index의 경우 해당 로우에 대한 Rowid 만을 가지고 또한 Rowid를 압축도 합니다.
166
Oracle Database 10g 주요 기능 (DBMS)
8. Business Intelligence
라. 분석 애플리케이션 지원 - SQL
Oracle Database 10g 에서는 분석 함수를 제공함으로써 질의 속도 향상, 개발자들의 생산성 향상, 최소한의 습득 노력, 표
준화된 문법의 장점이 있습니다.
INVERSE PERCENTILE FUNCTION
• CUME_DIST 함수를 이용하여 값들의 집합에서 값의 위치를 계산할 수 있었으나 역산 (특정한 백분위수의 값을 발견하는)은 어렵거나
효과적인 연산이 수행되지는 않습니다. 이러한 어려움을 극복하기 위하여 PERCENTILE_CONT와 PERCENTILE_DISC 같은 역 분포
함수를 제공합니다. PERCENTILE_CONT는 연속분포(Continuous Distribution)를 가정한 역 분포 함수이고, PERCENTILE_DISC는
이산분포(Discrete Distribution)를 가정한 역 분포 함수입니다.
WHAT-IF RANK AND DISTRIBUTION FUNCTION
• 가정(hypothetical) 순위와 분포함수는 What-if 분석의 위와 같은 형태로 지원됩니다. 가정의 값을 입력하여 이 값이 가지는 순위나
백분위수를 얻을 수 있습니다.
• RANK
이전 버전에서는 ORDER BY절에 의해 기술된 순서에 의해서 순위를 매기는 데 동일한 값은 동일 순위로 하고 동일 순위의 수
만큼을 추가해 다음 순위를 매기는 RANK함수를 제공하였습니다. Oracle10g부터는 특정한 값이 주어지면 이 값이 정해진
그룹의 순위 값을 결과값으로 주는 기능이 추가 되었습니다 .
• DENSE_RANK
특정한 값이 주어지면 이 값이 정해진 그룹의 연속된 순위값을 결과값으로 주는 기능이 추가 되었습니다 .
• PERCENT_RANK & CUME_DIST
특정한 값을 주어지면 이 값이 정해진 그룹의 연속된 순위값에 대한 백분위수값을 결과값으로 주는 기능이 추가 되었습니다.
PERCENTILE_RANK를 구하는 식은 rank에 의해 구해지는 값을 RN, 그룹핑되는 로우의 수를 N이라 하면 (RN – 1)/(N – 1)의
식에 값이 구해집니다. CUME_DIST를 구하는 식은 그룹핑되는 로우의 수를 N, Ascending rank에 의해 구해지는 값을
ARN이라 하면 ((N – ARN) + 1) /N의 식에 의해 값이 구해집니다.
167
Oracle Database 10g 주요 기능 (DBMS)
8. Business Intelligence
라. 분석 애플리케이션 지원 - SQL
FIRST/LAST AGGREGATE FUNCTION
• FIRST/LAST 함수의 기능은 유사합니다. 주어진 특정한 정렬에 대해 FIRST/LAST등과 같은 순위에 해당하는 집합에 속한 값들을
운용하는 총계와 분석 함수입니다. FIRST/LAST 함수는 정렬된 그룹내에 처음과 마지막 Row를 선택할 수 있게 합니다. A열로
정열하고 B열 값을 반환하게 합니다. 이는 Self-join이나 SubQuery를 피하게 하기 때문에 성능을 향상시킵니다 .
WIDTH_BUCKET FUNCTION
• Oracle8i에서의 NTILE 함수와 비슷합니다. NTILE 함수는 특정한 수식에 의해 bucket으로 분리하고 각 Row를 bucket에 할당합니다.
전체의 row가 14개라면 NTILE(4) 함수에 의해 14/4로 구분되어 각 bucket에 3개씩 담기고 나머지 두개의 row는 차례로 1,2 번째
Bucket에 담기게 됩니다. NTILE함수는 위와 같이 해당되는 Bucket의 수를 리턴하는 함수입니다. WIDTH_BUCKET함수를 이용하여
동폭 히스토그램(equiwidth histograms)을 생성할 수 있습니다. 동폭 히스토그램(equiwidth histograms)은 같은 간격을 가진
Bucket에 Data Set는 나누는 것입니다. Oracle10g에 추가된 WIDTH_BUCKET 함수는 NTILE함수에 비하여 Bucket을 좀더 다양하게
생성할 수 있는 기능이 추가되었습니다.
• WIDTH_BUCKET함수는 4개의 매개변수를 갖는데 첫번째 매개변수는 동폭 히스토그램을 구성할 식이나 변수, 두번째, 세번째 매개변
수는 첫번째 매개변수를 위한 범위 즉 히스토스램을 생성할 시작점과 끝점을 가리킵니다. 이 매개변수는 Numeric, date, datetime type
의 데이터타입만 사용할 수 있습니다. 마지막 네번째 매개변수는 Bucket의 수를 가리키고, 반드시 양수여야 합니다.
168
Oracle Database 10g 주요 기능 (DBMS)
8. Business Intelligence
라. 분석 애플리케이션 지원 - SQL
GROUPING SETS
• 사용자가 원하는 그룹집합을 GROUP BY절에 GROUPING SETS 수식을 사용함으로 정의할 수 있습니다. 이 기능은 전체적인 CUBE의
계산없이 다각적인 디멘젼에 대한 효과적인 분석을 가능하게 합니다. Grouping Sets의 주요특징은 다음과 같습니다.
GROUP BY 절에 사용자가 원하는 그룹핑을 기술할 수 있습니다.
단일 질의문에서 다수의 Groupings을 정의할 수 있습니다.
UNION ALL과 같이 단일 결과 set을 생성합니다.
분석함수로 ISO SQL: 1999 기준을 따르는 GROUP BY의 확장입니다.
기본 테이블에 오직 한번만 필요로 하고(테이블에 대해서 한번 access로 처리 가능함), 복잡한 UNION 문장을 사용할 필요가
없습니다. 또한, 원하는 Grouping Set을 계속 기술함으로 얻을 수 있습니다.이전 버전에서는 Union all과 같은 복수의 질의는
같은 data 를 여러 번 Scan하는 등 효과적이지 않은 접근이었습니다. Oracle10g의 Group by 절 확장은 Optimizer가 나은
plan 을 선택하게 하므로, SQL 엔진이 매우 효과적인 질의를 수행 가능케 합니다.
CONCATENATED GROUPINGS
• Concatenated Grouping은 유용한 Grouping 조합을 쉽게 생성할 수 있게 합니다. 각 Grouping set으로부터 grouping의 Crossproduct를 생성합니다. 이는 복수의 grouping sets, Cubes, Rollups을 나열에 의하여 쉽게 생성됩니다. 이를 사용함으로써 얻는
이점은 개발이 쉬워진다는 것과 OLAP 애플리케이션에서 사용되어 질 수 있습니다.
The WITH Clause
• 복잡한 질의에서 자주 반복되는 SELECT 문장(서브 쿼리)을 같은 질의 블록으로 설정하여 재사용할 수 있도록 하고 있습니다. 블록의
결과를 되돌려 주고 사용자의 임시 테이블 스페이스에 이를 저장한다. 이는 성능을 증진시킵니다. 같은 질의 블록을 자주 참조하는
질의문 , 조인과 총계를 구하는 질의문에 유용하게 사용할 수 있습니다.
• 사용상의 이점은 데이터 수집으로부터 업무 문의를 분리 할 수 있고 질의문을 쉽게 이해하며 질의문 에서 여러 번 반복적으로
사용되더라고 한번만 선언하면 됩니다. 성능측면에서 서브쿼리를 한번만 예시하면 됩니다.
169
Oracle Database 10g 주요 기능 (DBMS)
8. Business Intelligence
라. 분석 애플리케이션 지원 - SQL
SQL Model
• SQL Model 절은 질의의 결과로 부터 다차원 배열을 생성하고 이 배열에 새로운 값을 계산하는 수식(룰)을 적용할 수 기능을
제공합니다. SQL Model절은 SQL 계산에 대해 새로운 능력과 유연성을 가지게 합니다. 이러한 기능은 오라클 데이터베이스의 확장성,
관리성, 통합, 보안성의 강점을 더욱 더 부각 시킵니다.
• SQL 내에서 Spreadsheet와 같은 계산이 가능합니다.
Country
SELECT SUBSTR(country, 1, 20) country,
Product
Year
Sales
Italy
Bounce
1999
2474.78
Italy
Bounce
2000
4333.69
WHERE country IN ('Italy', 'Japan')
Italy
Bounce
2001
4846.3
MODEL
Italy
Bounce
2002
9179.99
PARTITION BY (country) DIMENSION BY (product, year)
..
..
MEASURES (sales sales)
Italy
Y Box
1999
15215.16
RULES
Italy
Y Box
2000
29322.89
(sales['Bounce', 2002] = sales['Bounce', 2001] +
sales['Bounce', 2000],
Italy
Y Box
2001
81207.55
Italy
Y Box
2002
81207.55
sales['Y Box', 2002] = sales['Y Box', 2001],
..
..
sales['All_Products', 2002] = sales['Bounce', 2002]
+ sales['Y Box', 2002])
Italy
All Products
2002
90387.54
..
..
Japan
Bounce
1999
2961.3
SUBSTR(product, 1, 15) product, year, sales
FROM sales_view
ORDER BY country, product, year;
170
Oracle Database 10g 주요 기능 (DBMS)
8. Business Intelligence
라. 분석 애플리케이션 지원 - OLAP
Oracle Database 10g OLAP 은 단일 플랫폼 환경에서 관계형 데이터와 다차원 데이터를 저장할 수 있는 통합 환경을 구축
할 수 있는 기반 환경을 제공합니다.
Oracle Database 10g 와 Oracle Database 10g OLAP 기술을 통합하여 더 진보된 분석 서비스를 제공합니다.
 Multidimensional Data Model의 복잡한 분석 질의를 지원합니다.
 Forecasting, Model, 시나리오 관리와 같은 Predictive 분석 기능을 지원합니다.
 분석 질의를 위한 빠른 조회 응답시간을 보장합니다.
 동시에 많은 분석 애플리케이션 사용자를 지원합니다.
 Partition Variables지원을 통한 Multi-terabyte 데이터 웨어하우스를 지원합니다.
 데이터가 Relational Table에 저장되어 있을 때, 고객은 SQL 기반 애플리케이션과 Oracle Database 10g OLAP 애플리케이션 모두를
사용할 수 있습니다.
 Oracle Database의 사용자 인증, 승인, 데이터 접근 방법으로 분석 애플리케이션과 데이터 웨어하우스를 위한 통합된 보안 모델을 제
공합니다.
 데이터 웨어하우스와 Multidimensional Modeling의 통합이 분석을 위한 데이터 웨어하우스의 처리를 더욱 능률적으로 해 줍니다.
 Oracle Database의 고 가용성 기능들을 이용하면 Oracle Database 10g OLAP에 의해 사용되는 데이터 웨어하우스를 24x7x365 의 가
용성으로 지원할 수 있습니다.
 Analytic Workspace에 대한 병렬 처리를 통하여 빠른 성능을 보장합니다. (Aggregate, SQL IMPORT)
 Multi-Writer 지원을 통한 운영의 다양성을 보장합니다.
171
Oracle Database 10g 주요 기능 (DBMS)
8. Business Intelligence
라. 분석 애플리케이션 지원 - OLAP
Oracle Database 10g OLAP은 분석 질의와 보고서 기능, 예측적인 분석 기능의 완벽한 집합입니다. Java OLAP API을 제
공합니다.
Relational Data Warehouses와 Multidimensional Data 모두 지원합니다.
 Oracle Database 10g OLAP과 Oracle Database는 데이터 웨어하우스에서 사용되는 장표를 매우 빠른 성능으로 조회하기 위해 고도로
조율되어 있습니다.
모든 Database 관리는 Oracle Enterprise Manager 를 사용하여 수행됩니다.
완벽한 BI Application의 Platform입니다.
Oracle JDeveloper
Oracle BI Beans
Oracle OLAP Services
Oracle Database 10g
172
빠른 애플리케이션 개발
준비된 분석 능력 제공
Java OLAP API
예측 분석 기능
확장성 높은 데이터 저장소
통합된 메타데이터
Summary 관리
SQL 분석 함수
Oracle Database 10g 주요 기능 (DBMS)
8. Business Intelligence
라. 분석 애플리케이션 지원 – Data Mining
Oracle Database 10g 에 내장된 데이터 마이닝 기능
 Oracle Database 10g Data Mining을 통해 기업은 회사 데이터베이스를 마이닝하여 새로운 사실을 파악하고 그 정보를 비즈니스 애플
리케이션과 통합하는 고급 비즈니스 인텔리전스 애플리케이션을 구축할 수 있습니다.
예측과 통찰을 통한 애플리케이션 개선
 Oracle Database 10g Data Mining을 통해 기업은 운영에 있어 새로운 비즈니스 인텔리전스의 추출과 통합을 체계화할 수 있습니다.
 예를 들어, 정보통신 기업들은 Oracle Database 10g Data Mining을 사용하여 고객들이 경쟁 업체로 이전하기 전에 이탈 가능성이 있
는 고객들을 식별하는 이탈 관리 애플리케이션을 구축할 수 있습니다. Oracle Database 10g Data Mining의 예측 기능은 고객의 행동
을 예상하고 사전에 관리할 수 있도록 함으로써 서로 이익이 되는 일대일 관계를 수립하는 데 매우 유용합니다.
 JDeveloper Components 기반의 Oracle Data Mining Client(DM4J)를 제공합니다.
API를 통해 액세스 가능
 애플리케이션 개발자들은 Java 및 PL/SQL 기반 API를 통해 Oracle Database 10g Data Mining의 기능에
액세스합니다.
 모든 데이터 마이닝 기능을 프로그램식으로 제어하므로 데이터 준비, 모델 구축,
모델 스코어링 작업 등을 자동화할 수 있습니다.
Scoring Engine 제공
Text Mining 기능 지원
173
Data Mining
Oracle Database 10g 주요 기능 (DBMS)
8. Business Intelligence
라. 분석 애플리케이션 지원 – Data Mining
모든 데이터 마이닝 기능이 Oracle Database 10g 에 포함됨
 대량의 데이터에서 의미 있는 비즈니스 정보를 추출하는 과정을 단순화시켜 주고, 데이터 마이닝 모델링과 스코어링을 위한 특수 용도
의 외부 분석 서버에 방대한 양의 데이터를 적재하는 작업도 필요로 하지 않습니다.
 따라서 데이터, 데이터 준비, 모델 구축, 모델 스코어링 작업 등 모든 과정이 해당 데이터베이스에서 처리하게 됩니다.
Oracle10g Database의 확장성과 성능
 Oracle Database 10g 의 확장성은 Oracle Database 10g Data Mining이 대량의 데이터를 분석하여 정교한 패턴과 관계를 탐지하여 의
미 있는 비즈니스 인텔리전스 정보를 보다 많이 추출할 수 있도록 해 줍니다.
 Oracle Database 10g Data Mining으로 새롭게 찾아낸 의미 있는 사실과 예측 정보들은 다른 질의, 분석 및 보고 도구와 애플리케이션
들이 이용할 수 있습니다.
 생명 정보공학을 위한 BLAST 질의, ANOVA analysis등과 같은 다양한 함수와 Double, Float등 새로운 데이터 타입을 지원합니다.
 따라서 기업들은 데이터 마이닝 결과에 의해 운용되는 애플리케이션을 구축할 수 있습니다.
 CRM, Call Center, ERP, Web Portals, Wireless Apps와 같은 애플리케이션에 통합될 수 있습니다.
데이터 마이닝을 통해 찾아낸 의미 있는 정보는 Oracle CRM/Oracle Marketing Online 캠페인 관리 애플리케이션의 경우
처럼 다른 애플리케이션에 통합될 수 있습니다.
174
Oracle Database 10g 주요 기능 (DBMS)
8. Business Intelligence
라. 분석 애플리케이션 지원 – Data Mining
지원하는 알고리즘
175
마이닝 알고리즘
Examples
Classification & Prediction
(연관 / 예측)
 Naïve Bayes
 Adaptive Bayes Networks
 Support Vector Machines
Association Rules
(분류 규칙)
 A Priori
Clustering(클러스터링)
 Hierarchical K-Means
 Orthogonal Partitioning Clustering
(O-Cluster)
Feature Extraction / Synthesis
Nonnegative Matrix Factorization
Sequence Similarity Searches
(순서 유사성 검색)
BLAST
Oracle Database 10g 주요 기능 (DBMS)
9. Application Development
가. Globalization
개요
 인터넷은 기업들에게 전세계 관객을 대상으로하는 애플리케이션을 개발할 기회를 제공합니다. 전세계를 대상으로한 애플리케이션
개발에 있어서의 어려운 점은 다국어, 시간대, 화폐 및 기타 지역관련 정보를 지원해야 한다는 것입니다. 전세계의 어느곳에 있든지
간에 모든 사용자가 애플리케이션이 자신들이 속한 지리적 위치에 맞게 개발되었기를 기대합니다. 전세계를 대상으로 하는
애플리케이션은 기업들이 자신들의 모든 지역별 설치를 하나의 중심적인 위치로 통합할 수 있게 해 줍니다. 따라서 관리 비용을 절감할
수 있습니다.
 Oracle 데이타베이스는 전세계 어디에서나 적용될 수 있습니다. Oracle 데이타베이스의 단 하나의 인스턴스도 전세계에 분포하고있는
사용자에 의해 액세스될 수 있습니다. 정보는 각 사용자에게 그 혹은 그녀가 있는 위치에 맞는 언어 및 형식으로 제공됩니다. Oracle
전세계의 모든 언어를 위한 문자 집합을 지정하는 유니코드 세계 표준에 대한 지원을 확대합니다. Oracle를 사용하여 애플리케이션은
하나의 데이타베이스에서도 모든 언어를 지원할 수 있습니다.
Multi language
via Unicode 3.2
UTF8 and UTF16
Multilingual,
Linguistic and
User Definable
Collation
Character
Set
Scanner
176
Locale
Builder
Unicode
datatype
Timezone
and DST
Support
Globalization
development
Kits(GDK)
Provide
Oracle Database 10g 주요 기능 (DBMS)
9. Application Development
가. Globalization – 개발 키트 지원
Globalization Development Kits
 Oracle 데이터베이스는 국제화 인터넷 애플리케이션을 신속한 개발을 하는 데 필요한 개발 키트를 제공합니다. 주요 구성 요소는 JAVA
API로 이루어져 있습니다. 또한 J2EE 에 있는 국제화 기능을 보완합니다. 미들티어 자바 애플리케이션과 서버간의 로케일 운영의
동기화를 지원합니다. 또한 PL/SQL 으로 작성된 애플리켕션을 위한 부가적인 국제화 기능을 제공하는 PL/SQL Package를 포함하고
있습니다. 다른 문자 집합의 속성, 테리토리, 언어와 언어 정렬 정의를 포함하는 데이터베이스의 국제화 지원 아키텍쳐를 제공합니다.
 GDK에는 샘플 코드, 광범위한 애플리케이션을 개발하는 동안에 발생되는 다양한 디자인, 개발, 배포 문제를 다루는 문서 등 Java와
PL/SQL을 위한 포괄적인 API를 포함하고 있습니다. 국제화 인터넷 애플리케이션 개발하는 데 있어서 다른 문자집합과 로케일 요소를
가지는 다른 운영 시스템 위에서 수행되는 다수의 클라이언트를 동시에 지원능력을 가지는 디자인과 샘플 코드가 제공됩니다.
 GDK를 통해서 국제 환경 지원에 사용할 수 있는 인터넷 애플리케이션 개발의 비용을 감소와 개발 과정을 단순화 라는 이점을 얻을 수
있습니다.
177
Oracle Database 10g 주요 기능 (DBMS)
9. Application Development
가. Globalization – 다국어 지원
UNICODE 지원
• Oracle 에서는 유니코드 지원을 크게 확장 시킴으로써 손쉽게 자신의 비즈니스 세계화에 필요한 올바르 유니코드 솔루션을 찾아낼 수
있도록 하였습니다. Oracle 는 단일 데이타베이스 인스턴스에 대한 다국어용 유니코드 애플리케이션 개발, 설치 및 호스팅을 위한 이상
적인 플랫폼을 제공합니다. 완벽한 유니코드 3.2 지원은 가장 널리 이용되는 유니코드 형태인 UTF-8 및 UTF-16에 대한 지원을 포함하
고 있습니다. 사용자는 자신들의 데이타베이스 문자 세트 전체를 단일 데이타베이스 상에서 동시에 여러 언어를 지원하도록 UTF8로 설
정하거나 마이그레이션함으로써 완벽하게 세계화된 애플리케이션을 개발할 수 있는 유연성을 확보하게 됩니다. 또는 새로운 유니코드
데이타 유형인 UTF-8 또는 UTF-16를 통해 기존 단일언어 데이타베이스에 대해 하나 이상의 언어를 단계적으로 지원하는 열을 정의
할 수 있습니다.
• Oracle 에 대한 모든 액세스 프로그래밍 인터페이스는 UTF-16 과 UTF-8 모두를 지원함으로써 이러한 유니코드 형태로 작성된 애플
리케이션에 대한 뛰어난 고유통합 기능을 제공합니다.기존 Oracle 데이타베이스를 UTF8과 같은 새로운 문자 세트로 마이그레이션하는
경우, Character Set Scanner는 신속하게 데이타 손실과 같은 잠재적 사안을 규명해낼 수 있기 때문에 데이타를 로드하기 전에 열을 확
장 시키는 등과 같은 사전 대처적인 조치를 취할 수 있도록 지원합니다.
• Oracle 는 중국어,일본어,한국어를 포함한 아시아 언어에 대한 새로운 사전 정의된 언어 분류 기능이 새롭게 추가되었습니다.만약
Oracle 가 제공하는 포괄적인 언어 분류 세트를 넘어서는 특별한 요구를 가지고 있다면,사용이 쉬운 새로운 툴인 Oracle Locale Builder
를 활용함으로써 고유의 언어 분류를 정의 또는 커스터마이즈할 수 있는 유연성을 가지고 있습니다.
• Oracle 는 57개 언어,88개 국가,약 200개 문자 세트를 포함한 폭넓은 지역정의 세트를 제공합니다. 이들 중 기존 지역 규정을 커스터마
이즈하거나 새로운 규정을 작성해야 할 경우 새로운 Oracle Locale Builder는 다양한 지역-특정 데이타를 쉽게 보고 정의할 수 있는 사
용하기 쉬운 그래피컬 사용자 인터페이스를 제공합니다.
178
Oracle Database 10g 주요 기능 (DBMS)
9. Application Development
가. Globalization - 국제화 개발 환경의 지원
국제화 애플리케이션 개발을 위한 새로운 데이터 타입의 지원
 Oracle 데이터베이스는 국제화 인터넷 애플리케이션 개발을 위한 새로운 Datatype을 지원합니다. 세계 각 지역에서 입력 되는 정보와
관련하여 현지 시간이 중요한 의미를 가질 경우 즉 데이터베이스 서버와 애플리케이션의 위치가 틀려 시스템의 시간을 기본값으로
입력할 경우 현지 시간과 맞지 않는 경우가 발생할 수 있습니다. 아니면 현지 시간에 맞추어 시간을 보려고 하는 요구사항에 댕으하기
위해서 데이터 베이스 단에서의 새로운 데이터 타입을 지원합니다.
• Datetime 데이터 형
 Timestamp, Timestamp with Time Zone, Timestamp with Local Time Zone 의 세가지 Datetime 타입이 있으며, 모두 년,
월, 날짜, 시간, 분, 소수점 아래 정보를 가지고 있는 초와 같은 시간 정보를 가지고 있습니다.
Datatype
Fields
TIMESTAMP
Year, Month, Day, Hour, Minute, Second with fractional seconds
TIMESTAMP WITH TIME ZONE
Year, Month, Day, Hour, Minute, Second with fractional seconds,
TimeZone_Hour and TimeZone_Minute or TimeZone_Region
TIMESTAMP WITH LOCAL TIME ZONE
Year, Month, Day, Hour, Minute, Second with fractional seconds
 Interval 데이터 형
Interval 데이터타입은 두 개의 datetime 값의 시간 차를 저장하기 위해 사용되는 타입입니다. 즉, 두 개의 datetime 값,
00/04/09와 01/04/09가 있다면 두 datetime의 차이는 1년이라고 할 수 있습니다. 이와 같은 값을 저장할 수 있는 것이 Interval
데이터타입 입니다.
179
Oracle Database 10g 주요 기능 (DBMS)
9. Application Development
나. XDB/XDK 지원
XML지원 - XDB 및 XDK
• 인터넷상에서 일어나는 모든 정보 교환의 표준으로써, XML의 역할이 점점 더 커지고 있습니다. 따라서 Database에서 XML을 읽고 쓸
수 있고, 또 기존 application에 XML 데이터를 통합할 수 있는 기능은 필수적이라 할 수 있습니다. Oracle10g 는 SQL을 통해
데이터베이스에 XML을 저장하고, XML과 같은 전통적인 데이터베이스 데이타를 렌더링하기 위한 많은 향상된 데이터베이스 기능을
갖추고 있습니다. 이들 기능들은 B2B 및 B2C e-business,패키지 애플리케이션,인터넷 컨텐트 관리 등과 같은 주요 영역을
지원하는데 필수적인 핵심 기능입니다.
• Oracle9i 의 2개의 주요 XML 지원 영역은 다음과 같습니다.
Native XMLType
내장된 XDK(XML Developer’s Kits)
XML Class
Generator
Relational Tables
XML Schema Processor
XML Parser
XSLT Processor
Native XML Storage
(XMLType)
XSQL Servlet
XML SQL
Utility
180
Character LOB’s
Oracle Database 10g 주요 기능 (DBMS)
9. Application Development
나. XDB/XDK 지원
The High Performance Platform for XML
XML DB
Server
XML
Stream
XMLType Persistence
XML Query Processing
XML Schema Validation
XSLT Processing
XML Messaging &
Queuing
XML Streams
181
Web
Cache
J2EE
Server
XML
Stream
XSLT Processing
XML Query Processing
XML Schema/DTD Validation
XML Caching w/ JAAS security
XML J2EE Components
XML Messaging & Queuing
XML Data Integration
Client
XML
Stream
XSLT Processing
XML Query Processing
XML Caching w/HTTP
security
XSLT Processing
XML Query Processing
XML Caching w/o
security
Oracle Database 10g 주요 기능 (DBMS)
9. Application Development
나. XDB/XDK 지원
XML 데이터베이스 지원 기능
• 컨텐트 관리 애플리케이션을 통해 대량의 복합 XML을 저장 및 복원해야 하는 개발자들을 위해 Oracle Database 10g 의 XML
데이타베이스 지원 기능은 성능 최적화를 위해 고유 XML 저장 성능을 제공합니다. 이를 실현하기 위해 XDB는 새로운 객체 데이터
유형인 XMLType과 XML 문서에 대한 “XPATH 네비게이션 방식” 액세스 및 검색 기능을 제공합니다. 기타 XDB 기능은 표준
네비게이션 방식 액세스 API로서의 JNDI 지원, 다중 컨텐트를 위한 표준 API 그리고 XDB에 대한 저작 및 버전 부여를 지원하는
WebDAV와 같은 컨텐트 관리 서비스를 포함하고 있습니다.
• Oracle Database 10g에서 다음과 같은 새로운 데이터 타입과 연산자 , 패키지가 추가 되었습니다.
Native XMLType 데이터타입
Native XML Generation and Aggregation
URI-Ref 데이터타입
XMLType 데이터타입
• XMLType은 XML 문서를 CLOB처럼 저장하며, XPATH 함수를 사용하여 쉽게 접근, 검색할 수 있습니다. 따라서, XMLType을 이용하여
XML 문서를 SQL문으로 보다 쉽게 다룰 수 있게 되었습니다.
182
Oracle Database 10g 주요 기능 (DBMS)
9. Application Development
나. XDB/XDK 지원
Native XML Generation and Aggregation
• DBMS_XMLGEN 패키지
SQL query문으로 직접 XML문서를 생성하고 그것을 CLOB의 형태로 얻을 수 있습니다.
• SYS_XMLGEN 함수
DBMS_XMLGEN과 거의 같은 기능을 하는데, 다른 점은 DBMS_XMLGEN이 전체 질의 레벨의 결과를 XML로 변환시키는 반면
SYS_XMLGEN은 특정 컬럼 또는 식(expression)에 대해서 XML로 만들 수 있습니다.
• SYS_XMLAGG 함수
입력 받은 모든 다큐먼트를 통합하여 XML문서를 만들 수 있습니다. 스칼라값, User-defined 타입 인스턴스, 또는 XMLType 인스턴스를
Argument로 받고, XMLGenFormatType object를 사용해서 결과에 대한 포맷을 지정해 줄 수 있습니다. ROLLUP, CUBE와 같은 OLAP
Aggregation 기능과 같이 사용될 수도 있으며, Rank 또는 Partition에 근거한 다큐먼드 생성과 같은 Windowing function과도 사용됩니
다.
183
Oracle Database 10g 주요 기능 (DBMS)
9. Application Development
나. XDB/XDK 지원
URI-Ref 데이터타입
• URI(Uniform Resource Identifier)-ref는 URL의 상위개념으로 HTML이나 XML을 포함함 모든 유형의 다큐먼트에 대한 주소를 표현할
수 있습니다. 일반적인 URL스펙인 URL Part와, 다큐먼트 내의 부분에 대해서 지정할 수 있는 Fragment Part 두 가지로 나누어 집니다.
• Oracle Database 에서 DBURI-ref 라는 개념은 URI-ref중 특히 데이터베이스 또는 한 세션 안의 로컬 오브젝트의 주소를 나타낼 수 있
습니다.
HTTPURI-ref: 글로벌 오브젝트에 대한 레퍼런스
DBURI-ref: 로컬 오브젝트에 대한 레퍼런스
 URI-ref 를 저장할 수 있는 Oracle9i의 새로운 데이터타입은 다음과 같다.
UriType: HttpUriType 또는 DBUriType 인스턴스를 저장
DBUriType:데이터베이스 안에 있는 로컬 데이터를 엑세스
HttpUriType: HTTP를 통해서 리모트 페이지를 엑세스
 VARCHAR2가 아닌 URIType을 사용함으로써, URL-aware Indexing Schema를 만들 수 있고 당연히 네비게이션과 질의가 더 쉽고 빨
라졌습니다.또한, URI-ref를 이용하여 XML 다큐먼트를 컬럼에 저장하면, XML 트리 구조에서 원하는 노드를 찾는 것처럼 쉽게
Database안에 저장된 XML문서에서 필요로 하는 부분을 찾을 수 있게 되었습니다.
 이러한 데이터타입으로 필요한 다큐먼트의 URL들을 저장하고, 그 주소에 따라 Database내의 문서를 읽어 올 수도 있고, 에플리케이션
에서 XSL stylesheet을 사용할 경우 CLOB으로 XSL stylesheet를 저장하고 DBURI reference를 써서 원하는 포맷으로도 쉽게 변환도
가능합니다.
184
Oracle Database 10g 주요 기능 (DBMS)
9. Application Development
나. XDB/XDK 지원
XML Developer’s Kit 기능 향상
• Oracle XML Developer’s Kit(XDK)란 XML관련 테크놀로지를 좀 더 쉽게 구현할 수 있도록 도와주는 개발 도구입니다. Oracle9i에서 몇
개의 Component가 더 추가되었고 기존의 Component도 그 기능이 향상되었습니다.
• Oracle Database 10g XDK의 특징을 간단히 말하자면 다음과 같습니다.
전개 구조(Deployment Architecture)의 유연성
다양한 언어와 플랫폼 지원
엔터프라이즈 레벨의 성능과 확장성
 Java XDK이 사전 로드되고 C XDK가 Oracle9i 와 링크됨에 따라, 개발자들은 Oracle9i 에서 XML 포맷된 데이타를 작성, 조작, 렌더링
및 저장하는 World Wide Web Consortium(W3C)기반 기능에 손쉽게 액세스할 수 있게 되었습니다. PL/SQL과 C++내에서도 사용할
수 있는 XDK는 XML/XSLT Parsers, XML Schema Processor, XML Class Generators, XML Transviewer Beans 및 XSQL Servlet를
지원함으로써 개발자들은 자신의 애플리케이션이 신속하게 XML을 지원할 수 있도록 하는 기본 설계 블록들을 제공할 수 있게 되었습
니다.
 기본적으로 DOM 3.0, SAX 2 .0, XML Schema 1.0을 지원하며 Oracle9i부터 새롭게 추가된 XDK Component는 다음과 같습니다.
XML Schema Processors
XDK Java Beans (DBAccess Class, DBViewer Bean)
185
Oracle Database 10g 주요 기능 (DBMS)
9. Application Development
다. JAVA 기능 및 성능 향상
WebRowSet
 JDBC에 새로 추가된 기능으로 티어와 컴포넌트 사이에 주고 받을 수 있는 패치된 로우의 집합으로 표현됩니다.
 Datasource를 사용하는 실행중인 커넥션은 티어와 컴포넌트 간의 표 데이터를 넘기는 것에 대한 유지가 필요 없읍니다.
SQLJ
 SQL DML에 Returning 절 지원합니다.
JDBC Thin Driver
 Oracle 9i에서는 JDBC OCI driver에서 Index-by Table을 지원했습니다. Oracle Database 10g에서는 JDBC Thin Driver에서
지원합니다. 연관 배열으로 알려진 Index-by Table은 각 요소배열의 위치에 대한 정보없이 각 개별의 요소배열을 빠르게 찾도록
지원합니다.
 InterMedia는 새로운 ORAData 인터페이스를 지원합니다.
186
Oracle Database 10g 주요 기능 (DBMS)
9. Application Development
다. JAVA 기능 및 성능 향상
JDBC Connection Cache
 Connection Cache 는 데이터베이스 세션에 대한 JDBC 커넥션의 집합으로 데이터베이스에 대한 커넥션을 얻기 위한 많은 수의
애플리케이션과 많은 수의 동시 커넥션 요구를 위한 데이터베이스의 커넥션을 제공합니다. 다수의 사용자/암호 인증과 재사용을 위한
취소 커넥션의 반환요구를 허용하고 정지된 커넥션의 리플레쉬와 재사용을 지원합니다. 속성을 기반으로 캐쉬로 부터 커넥션의 검색을
지원합니다.
엔터프라이즈 자바 엔진
 GUI의 표준 자바 API인 Abstract Window Toolkit (AWT)을 지원합니다. 인터넷 버전 프로토콜 버전 6를 지원합니다.
 Oracle database 10g에서는 JVM에 대한 관리부분이 많이 강화 되었습니다. 이러한 기능을 통해 Java VM에 대한 상태와 성능을
모니터링하고 애플리케이션의 저하와 많은 메모리 사용을 발견할 수 있으며 자동 튜닝을 위한 데이터와 데이터베이스 관리 업무를
제공합니다.
187
Oracle Database 10g 주요 기능 (DBMS)
9. Application Development
다. JAVA 기능 및 성능 향상
Database Web Services
 웹 서비스는 플랫폼, 언어, 데이터의 형식과 상관없이 웹을 통해 애플리케이션간의 상호작용을 가능하게 하는 기술입니다. XML, SOAP,
WSDL, UDDI를 포함한 주요 구성요소는 소프트웨어 산업 전반에 걸쳐 채택됩니다. 웹서비스 기술은 서비스를 개발하는 것과
미들티어 애플리케이션 서버에 배포하는 것으로 말할 수 있습니다. 이기종과 비접속 환경에서 웹서비스 이터페이스를 통해 데이터와
메타 데이터 뿐만 아니라 저장 절차 접근 수요가 많이 중가하고 있습니다. 데이터베이스 웹서비스 기술은 웹 서비스에 대해
데이터베이스 접근을 의미합니다.
 Oracle Database 10g 웹서비스는 XML에 의해 표현 되어질 수 있는 인터페이스나 바인딩의 소프트웨어 구성요소입니다. 웹 서비스는
인터넷에 걸쳐 정보의 프로그램 접근을 가능하게 합니다.웹 애플리케이션과는 달리 브라우저 없이 접근이 가능합니다. 데이터베이스
웹서비스는 웹 서비스를 데이터베이스내의 기능으로 사용 가능하게 합니다.
188
Oracle Database 10g 주요 기능 (DBMS)
9. Application Development
라. SQL 과 PL/SQL 기능 개선
SQL 과 PL/SQL 기능 개선
• SQL 및 PL/SQL은 Oracle Database 10g 에서 지속적으로 개선되어 오늘날의 개발 요구에 부응하고 있습니다. 네이티브 컴파일 뿐만
아니라 전반적인 PL/SQL 컴파일 또한 개선되었습니다.또한 여러 프로그래밍 언어에 대한 서버 측 디버깅 기능이 추가되어 IDE가
Java와 PL/SQL을 동일한 프레임워크에서 디버깅할 수 있도록 지원합니다.
• 객체 활용도를 높이기 위해 상속,유형 진화 및 동적 메쏘드 디스패치가 Oracle Database 10g 에서 모두 지원되어 애플리케이션 개발
시 객체 활용에 따르는 유지보수 비용을 크게 절감시킬 수 있습니다.
• ANSI 요구 조건들이 지원되며 여기에는 CASE 문,ANSI 호환 조인 및 예약 네임버전 부여 기능에 대한 지원이 포함되어 있습니다. 비
오라클 데이타베이스에서 Oracle Database 10g로의 마이그레이션을 돕기 위해 SQL 기능을 지원합니다.
ANSI/ISO SQL: 1999 Standard Support in Oracle 10g
• Oracle SQL은 ANSI/ISO SQL: 1999 표준을 지원하기 때문에, 기존의 코드를 수정하지 않고 응용 프로그램을 이전할 수 있습니다.
또한 데이터베이스 내에 ANSI/ISO 표준 기능들을 제공하며, 다른 데이터베이스 제품으로부터 사용자를 유도하는데 용이합니다.
• 가장 대표적인 것으로 Join, CASE 표현식 및 문장, 스칼라 서브질의와 명시적 DEFAULT에 대한 지원을 들 수 있습니다.
• SQL:1999 Join Compliance
최적화된 PL/SQL Compiler 지원
• Pl/SQL 실행 코드의 사이즈 20% ~ 30%감소
• 수행속도 2.5배 향상
189
Oracle Database 10g 주요 기능 (DBMS)
9. Application Development
라. SQL 과 PL/SQL 기능 개선
새로운 Data Type의 지원
 Native Floating-Point Data Types:
BINARY_FLOAT (single precision 32-bit)
BINARY_DOUBLE (double precision 64-bit)
 IEEE arithmetic : ANSI/IEEE Std 754-1985 [IEEE 754]
 새로운 데이터 타입의 지원으로 넘버 계산을 주로 하는 주요한 사용자들은 수적인 알고리즘을 개발 가능할 수 있습니다. 활용도, 효율
성, SQL, PL/SQL등dptj 한결 같이 사용 가능하게 되었습니다.
Nested Table and VARRAYs
 ANSI 기능을 포함하였으며 Temp Table에 VARRAY 컬럼을 지원합니다.
Row Version 지원
 undo retention에 의해 저장된 지난 트랜잭션의 데이터를 질의 가능합니다.
190
Oracle Database 10g 주요 기능 (DBMS)
9. Application Development
라. SQL 과 PL/SQL 기능 개선
SQL Model
• SQL Model 절은 질의의 결과로 부터 다차원 배열을 생성하고 이 배열에 새로운 값을 계산하는 수식(룰)을 적용할 수 기능을
제공합니다. SQL Model절은 SQL 계산에 대해 새로운 능력과 유연성을 가지게 합니다. 이러한 기능은 오라클 데이터베이스의 확장성,
관리성, 통합, 보안성의 강점을 더욱 더 부각 시킵니다.
• SQL 내에서 Spreadsheet와 같은 계산이 가능합니다.
새로운 PL/SQL PKGs
 애플리케이션 개발자와 사용자에게 새로운 기능을 PL/SQL PKG를 통해 제공합니다.
 UTL_MAIL Package
Email과 관련된 첨부, BCC, CC와 같은 일반 기능을 포함한 email 관리 기능을 지원합니다.
 UTL_COMPRESS Package
데이터 압축에 대한 기능을 제공합니다.
 Utl_DBWS Package
데이터베이스 웹 서비스를 지원합니다.
 Utl_I18N Package
멀티랭귀지 애플리케이션 개발을 지원합니다.
 DBMS_METADATA Package
데이터 디션너리로 부터 메타 데이터를 추출하는 방법을 제공합니다.
 DBMS_SCHEDULER Package
다양한 PL/SQL 프로그램부터 호출 가능한 프로시져와 함수의 스케쥴링의 기능을 제공합니다.
191
Oracle Database 10g 주요 기능 (DBMS)
10. Content Management
가. 컨텐트 관리(Content Management) 개요
컨텐트 관리는 데이타베이스에 단순히 이름, 숫자와 같은 정형 데이타만이 아닌 그 이상의 것을 저장하는 능력을 포함하
고 있습니다. 즉, 이미지, 오디오, 비디오, 매핑데이타(mapping data), 문서 등과 같은 비정형 데이타를 저장할 수 있습니다.
문서는 바이너리 형태일 수도 있고 XML일 수도 있으며, 이러한 모든 비정형 데이타에 대해 검색 기능도 제공됩니다.
컨텐트 관리는 다음의 세 영역으로 살펴볼 수가 있습니다.
 컨텐트 생성(Creating Content) - 문서를 작성하는 것이 한 예로, 이 작업은 개별적 혹은 협업을 통해 수행할 수 있습니다. 그리고 이 영
역은 생성된 컨텐트를 특정 저장소에 저장하는 부분도 포함합니다.
 컨텐트 관리(Managing Content) - 생성된 컨텐트를 누가 접근할 수 있고, 수정할 수 있는지를 조절할 수 있어야 하며, 어떻게 저장소
내에 체계화되는 지 정의할 수 있어야 합니다.
 컨텐트 배포(Delevering Content) - 이렇게 생성되고 관리된 컨텐트를 묶어서 배포할 수 있어야 합니다.
오라클은 오라클 데이타베이스 10g와 오라클 애플리케이션 서버 10g를 통해 이런 컨텐트의 생성, 관리 및 임의의 디바이
스로의 배포를 위한 단일한 플랫폼을 제공합니다.
컨텐트 관리의 주요 기능은 다음과 같습니다.
 Oracle XML DB
 Oracle Text
 Ultra Search
 Oracle interMedia
 Oracle Locator / Oracle Spatial
 Workspace Manager
192
Oracle Database 10g 주요 기능 (DBMS)
10. Content Management
나. Oracle XML DB
개요
XML은 인터넷 진화의 핵심 기술로 자리잡아 오고 있습니다. XML의 자기기술적인 성격과 손쉬운 확장성은 여러 애플리케이션 간의 메시
지 전달에 필요한 유연성을 제공했으며, 최근에는 XML 스키마와 같은 차세대 XML 표준을 통해 다큐먼트 모델링과 데이타 모델링을 통
합하는 것이 가능해졌습니다.
오늘날 대부분의 애플리케이션 데이타와 웹컨텐트는 관계형 데이타베이스나 파일 시스템 혹은 이 둘 모두에 저장이 됩니다. XML은 대개
메시지 전달을 위해 데이타베이스나 파일 시스템으로부터 생성이 됩니다. 하지만 이렇게 변환되어야 할 XML의 양은 점점 커지고, 끊임
없이 XML 문서를 재생산하는 비용도 커지다보니, 효율적인 XML 컨텐트의 저장 방법을 새로이 모색하게 되었습니다.
Non-Native XML 프로세싱
데이터와 컨텐트의 분리
애플리케이션
애플리케이션
애플리케이션 서버
애플리케이션 서버
Oracle XML DB
애플리케이션
Oracle AS
XML 프로세싱
리파지토리 층
파일 시스템
멀티미디어
또는 문서
193
RDBMS
구조적인 데이터
및 메타 데이터
XML
Repository
RDBMS
멀티미디어, 문서, 구조적인 데이터
XML 및 메타
데이터
Oracle
XML DB
멀티미디어, 문서,
구조적 데이터,
XML, 메타 데이터
Oracle Database 10g 주요 기능 (DBMS)
10. Content Management
나. Oracle XML DB
오라클은 9i Release2에서 XMLType 스토리지와 XML 저장소(repository)를 소개하면서, W3C XML 데이타 모델을 오라클
RDBMS에 완벽히 내장했으며, XML에 대한 내비게이션과 질의를 가능하게 하는 표준 액세스 방법을 제공했습니다.
오라클 데이터베이스 10g에서는 아래와 같은 기능 향상이 포함되어 있습니다.
 뛰어난 질의 성능 향상
 XSLT 최적화(optimization)
 저장소 접근의 최적화(repository access optimization)
 Direct loader 지원
 I18N 지원
 투명한 XML 스키마 Evolution
 C-based DOM API
194
Oracle Database 10g 주요 기능 (DBMS)
10. Content Management
나. Oracle XML DB
핵심 기술
오라클 XML DB의 핵심 기술은 XMLType과 XML 저장소(repository)로 분류될 수 있으며, XMLType은 W3C XML 스키마를 준수하는 XML
에 대해 SQL을 이용한 저장, 추출 기능을 제공하고, XML 저장소는 WebDAV 기반의 폴더링, 접근 제어, 버저닝(versioning) 기능을 제
공합니다.
XMLType
XMLType 데이타 타입은 XML 컨텐트를 저장하며, 컬럼의 데이타 타입으로 사용될 수 있고, XML 컨텐트를 다루는 다양한 메소드
(method)를 포함하고 있습니다. XMLType은 LOB이나 객체-관계형 형태로 저장될 수 있는데, 전자는 띄어쓰기나 탭 등 XML 원문을 정
확히 유지할 수 있는 모델, 후자는 파싱된 형태로 저장하는 모델이며, import/export를 통해 이 둘 간에 상호 전환이 가능합니다.
둘 다 DOM fidelity를 준수해서, 자식 엘리먼트(child element)와 속성(attribute) 들의 순서를 유지하거나, 그 둘을 구분할 수 있는 등의
작업이 가능합니다.
그 외 XMLType의 기능들은 다음과 같습니다.
 XML Schema 지원 - XML Schema 관리 및 XML 문서가 주어진 Schema에 부합하는지 자동 검증
 XML Piecewise Update - Element 단위의 개별적인 update
 XPath 검색 - XPath 문법을 이용한 질의
 XML 인덱스 - XML 문서로 빠른 접근 방법
 XML 연산자 - XMLTABLE, XMLELEMENT 등
 XMLType에 대한 XSLT
 Lazy XML Load, XML View
 Schema Caching - 액세스 시간과 저장 비용의 최소화
 Schema Evolution
195
Oracle Database 10g 주요 기능 (DBMS)
나. Oracle XML DB
XML 저장소(Repository)
XML 저장소는 XML 데이터와 문서에 대한 인터넷 저장소의 기능입니다.
중요한 항목은 다음과 같습니다.
 Access Control Lists(ACL)
 Foldering
 WebDAV, FTP Access
 SQL Repository 검색
 계층형 인덱스
196
10. Content Management
Oracle Database 10g 주요 기능 (DBMS)
10. Content Management
다. Oracle Text
개요
Oracle Text는 강력한 텍스트 관리 및 검색 기능을 제공합니다. 즉, 모든 문서 또는 텍스트 형식의 내용을 인덱스화하여 문서 아카이브,
온라인 제품 카탈로그, 뉴스 서비스, 매체 자산 관리 시스템, 채용 정보 게시판, 고객 통화 보고서 및 여러 언어로 된 기타 텍스트 정보
소스로부터 정보를 빠르고 정확하게 읽어 들입니다. 텍스트를 빠르고 정확하게 검색 하기 위해 전형적인 전체 텍스트 검색에서부터 문
서 주제별 분석까지 여러 기술이 사용됩니다.
Oracle Text의 주요 기능은 다음과 같습니다.
 오라클 데이타베이스 10g와의 완벽한 통합
SQL을 통해 텍스트 인덱스 생성, 텍스트 검색을 할 수 있으므로, 개발자나 DBA에게 단순하고 유연한 아키텍쳐를 제공합니다.
10g에서는 커밋(commit)할 때 동기화할지, 인터벌을 두고 동기화할지에 대해 텍스트 인덱스를 생성하면서 선택할 수 있으며,
카탈로그 인덱스 타입은 늘 최신 정보를 유지하고 있습니다. 그리고 로컬 파티션드(local partitioned) 컨텍스트 인덱스(context
index)를 병렬로 생성할 수 있습니다.
텍스트는 데이타베이스에 저장할 수도 있고, 파일시스템에 저장할 수도 있으며, URL에 의해 참조될 수 있는 어떠한 텍스트에
대해서도 텍스트 인덱스를 생성할 수 있습니다.
 우수한 검색 결과
기본적인 검색 뿐 아니라 한 문장이나 단락 내에 지정된 단어들이 나오는 텍스트 찾기, AND/OR/NOT의 조합, 랭킹 기능 등을
활용할 수 있습니다.
 다큐먼트 서비스(Document Service)
INSO 필터링 기술을 이용해서 XML, PDF, MS Office 등 150여 이상의 문서 포맷을 지원하고, 텍스트에 대해 HTML 버전으로
볼 수 있습니다.
 다국어 지원
모든 오라클 NLS 문자집합을 지원하고, 상호 혼합해서 사용할 수 있습니다.
197
Oracle Database 10g 주요 기능 (DBMS)
10. Content Management
라. Ultra Search
개요
Ultra Search는 Oracle Text 기반의, 인트라넷 portal search engine의 필요성에 의해 만들어진 웹 애플리케이션으로, 다양한 데이타 소
스, 즉 웹사이트, 데이타베이스 테이블, 파일, 이메일과 같은 데이타에 대해 인덱스를 생성하고 검색할 수 있게 하여 줍니다. 따라서
Ultra Search를 이용하면 다양한 종류에 대한 웹 검색 애플리케이션을 쉽게 생성할 수 있어서 사내 인트라넷과 같은 환경에서 중요한
정보를 쉽게 찾을 수 있습니다.
구성요소
 Ultra Search Crawler
정해진 스케쥴에 따라 다양한 data source에서 데이터를 읽어 오는 자바 프로세스
 Ultra Search Backend
Ultra Search 저장소와 Oracle Text
 Ultra Search 관리 툴
데이타 소스 설정, Ultra Search Crawler 설정, 스케줄링 등 관리를 할 수 있는 J2EE 호환 웹애플리케이션
 Ultra Search API
query API, crawler agent API, email Java API, URL rewriter API
198
Oracle Database 10g 주요 기능 (DBMS)
10. Content Management
마. Oracle interMedia
개요
오라클 interMedia를 통해 이미지, 오디오, 비디오 등의 컨텐트에 대한 서비스를 수행할 수 있습니다. 대부분의 웹미디어 포맷을 인식하
고, BLOB, BFILE, URL, 미디어 서버 등에 대한 저장 옵션을 제공하고, SQL 멀티미디어 표준 및 웹, 자바 인터페이스를 지원합니다. 또
한 포맷, 압축, 미디어 프로세싱 등을 쉽게 확장할 수 있습니다.
IMAGE
 파일 포맷
TIFF, JFIF(JPG), BMP, TARGA, EXIF, PCX, PICT, GIF, CALS, SUN RASTER, FPIX, PNGF, PPMF, PGMF, PBMF, WBMP,
RPIX 등
 컨텐트 포맷
모노크롬 혹은 bit depth, 샘플 모델, 칼라 모델, 칼라 스페이스(GRAY, RGB)
 압축 포맷
CCITT G3/G4, JPEG, RLE
 포맷 변환 및 이미지 프로세싱(scaling/cropping 등)
AUDIO / VIDEO
 Java Media Framework(JMF)를 이용한 클라이언트의 액세스 가능
 배치모드나 RealAudio, 마이크로소프트 스트리밍 서버와 같은 스트리밍 서버를 통해 배포
 AUFF, AIFF, AIFF-C, WAVE, MPEG, Real Networks, 마이크로소프트 오디오 포맷 등 지원
 AVI, QuickTime, MPEG, Real Networks 비디오 포맷 등 지원
199
Oracle Database 10g 주요 기능 (DBMS)
10. Content Management
바. Oracle Locator / Oracle Spatial
개요
Oracle 내에 저장된 공간 정보를 인덱싱하고, 지오메트리(geometry)를 분석할 수 있습니다. 지오메트리는 데이터베이스 내에서 디지털
지도를 이루는 점, 선, 호, 원, 다각형 등을 말합니다. Oracle Spatial의 분석 속성들은 지오메트리들 간의 관계를 평가하거나 지리적 속
성들을 결정하는데 이용됩니다. 더구나, 일정 거리 내에서의 분석 기능은 사용자가 주어진 지점에서 반경 15 km 내의 모든 위치를 찾는
것과 같은 특정 위치의 주어진 거리 내에 있는 지오메트리를 찾을 수 있게 합니다. 지오메트리와 같은 기본 정보를 다루는 것은 Oracle
Locator의 기능이며, 공간 분석이나 처리 등은 Oracle Spatial 옵션의 기능입니다.
Oracle Locator
 지오메트리를 기술하고 지원하는 오브젝트 타입
 빠른 R-tree 인덱싱과 병렬 생성 지원
 공간 비교 연산과 거리 계산 함수
 오픈, 표준화된 SQL 액세스
 지구 기하학 모델
 spatial 인덱스에 대한 파티셔닝 지원
 함수 기반 spatial 인덱스
Oracle Spatial
Oracle Locator 기능에 다음의 기능 포함
 인터넷 라우팅 등에 적용될 수 있는 선형 기하학 지원
 Spatial 애그리게이트(aggregate) 함수, spatial 분석 함수
 좌표변환
 geoRaster 데이타 타입
 토폴로지 데이타 모델, 네트워크 데이타 모델
 주소와 위도, 경도를 연결시켜주는 Geocoder
200
Oracle Database 10g 주요 기능 (DBMS)
10. Content Management
사. Workspace Manager
개요
오라클에서 제공하는 트랜잭션 관리는 주로 short-term transaction을 효과적으로 다루도록 설계되었기 때문에, 수시간에서 수일 심지
어는 몇 달에 걸쳐서 작업이 이루어지고 여러 명의 사용자가 동시에 하나의 데이터베이스 안에서 지속성 있는 여러 개의 버전(multiple
persistent version)들을 필요로 하는 long-term transaction 환경에는 적합하지 않습니다.
Database Workspace Manager는 long-term transaction을 효과적으로 지원하기 위한 기능입니다. 또한, Workspace Manager는 B2B,
B2C design-to-publish 프로젝트와 같이 multiple, concurrent collaborative database 작업을 필요하거나, 재무 예산 분야와 같이
“what-if” 시나리오 분석을 필요로 하는 응용분야에도 workspace 기능을 제공할 수 있습니다.
기능
 테이블 versioning(versioning의 기본 단위는 행)
DDL, constraint, trigger, import/export, bulk loading이 가능
nested table column 지원
 Workspace 관리
계층을 가지며, 다중 부모를 가질 수 있음.
create, goto, refresh, merge, rollback, savepoint, compress, remove, alter 등의 연산이 가능
 Valid Time 지원
 계층 구조상의 데이터 충돌을 발견하고 해결할 수 있음
 Workspace 접근 제어, locking, privilege 지원
 이벤트 관리
 Spatial 토폴로지, Replication, Virtual Private Database(VPD) 지원
201
Oracle Database 10g 주요 기능 (DBMS)
11. Windows
가. Architecture
Thread Model
 UNIX와는 달리 Windows에서의 Oracle은 하나의 큰 OS 프로세스에 의해 구현됩니다. 즉, PMON/LGWR와 같은 Unix의 프로세스들이
하나의 오라클 프로세스하에서 수행되는 ‘thread’로 구현된 것입니다.
 하나의 Windows 장비에서 오라클 프로세스는 인스턴스당 한 개만이 존재합니다.
Oracle process
SGA
3GB
or
8TB
total
Background and foreground threads
Code
202
SGA contains
db buffers,
log buffers
shared pool,
other memory
allocations
Each thread
consists of
PGA, stack,
other memory
allocations
Oracle Database 10g 주요 기능 (DBMS)
11. Windows
나. File I/O
Cluster File System
 오라클 CFS(Cluster File System) 기능으로 RAC의 관리절차가 간소해 졌습니다.
 오라클 RAC의 소프트웨어는 RAW 파일에 위치하거나, CFS에 위치할 수 있습니다.
64bit File I/O
 내부적으로 Oracle10g의 I/O 루틴은 64bit 파일 offset을 지원합니다. 즉, 더 이상 파일크기의 2G/4G 제한사항이 없습니다.
 최대 오라클 데이터베이스 크기는 4petabytes 입니다(64K files x 16K bytes/block x 4M blocks/file).
Asynch I/O
 비동기 I/O 기능이 OS 커널에 적용되어 있습니다. 오라클 또한 비동기 I/O를 지원함에 따라 더욱 효율적인 I/O를 보장합니다.
RAW File support
 RAW 형태의 데이터파일을 지원합니다. 하지만, 파일시스템 보다 관리상의 복잡성이 존재합니다.
 RAW 파일의 이름지정의 복잡성은 OLM(Object Link Manager)이라는 GUI 툴을 사용하여 해결할 수 있습니다.
203
Oracle Database 10g 주요 기능 (DBMS)
11. Windows
다. 확장성
4GB RAM Tuning (4GT) Support
 Windows 2000 Server(Advanced and Datacenter editions)와 Windows Server 2003(Enterprise and Datacenter editions)는 4GB
RAM Tuning(4GT)이라는 기능을 제공합니다. 이 기능은 특정 Application이 3GB 까지의 메모리를 사용하는 것을 가능하게 합니다. 결
과적으로 오라클은 약 50% 이상의 메모리 추가 사용효과를 볼 수 있습니다.
Large User Populations
 Windows platform상의 Oracle7에서 가능한 동시 접속자수는, 하나의 데이터베이스에 약 1000명 정도였습니다.
 현재 오라클 shared server 기능을 활용할 경우 약 10,000명 이상의 동시접속을 처리할 수 있고, Network multiplexing / Connection
pooling 기능을 추가하면 더 많은 동시접속을 처리할 수 있습니다.
 RAC을 사용하면 다중 서버를 공유할 수 있는 이유로, 훨씬 많은 동시접속을 처리하게 됩니다.
VLM Support
 Oracle8i에서 소개된 Windows 2000의 특정 edition에 대한 중요 기능 중 하나가 VLM 지원이었습니다.
 Oracle Database 10g는 이 기능을 향상 시킴으로써, 32bit Windows 2000(,Windows 2003)가 갖고 있던 3GB Address space 제한사
항을 해결 하고 있습니다.
 오라클은 많은 메모리를 지원하는 장비/OS 상에서 64GB의 데이터베이스 버퍼를 갖을 수 있습니다.
Large Page Support
 이 기능으로 오라클은 더욱 효율적인 CPU processing을 할 수 있고, 더욱 빠른 데이터베이스 작업을 수행할 수 있습니다.
 이 기능이 활성화 되었을 때, CPU는 RAM에 있는 데이터베이스 버퍼를 더욱 빠르게 접근할 수 있습니다.
 기존의 4/8kB 처리에서, 이 기능은 4/8MB의 page 크기를 가지고 CPU 작업을 처리합니다.
204
Oracle Database 10g 주요 기능 (DBMS)
11. Windows
다. 확장성
Fiber Support
 Oracle Database 10g는 Windows의 기본인 Thread 처리방식을 Fiber 방식으로 처리하는 것이 가능합니다. Fiber는 Thread와 같은
Windows 개념입니다. Thread는 OS가 지정하는 방식에 의해 처리되는 반면 Fiber는 사용자가 처리루틴을 지정할 수 있습니다. 즉,
Fiber 기능이 사용되면 오라클 실행코드가 수행되는 것을 결정하는 것의 주체는 OS가 아니라 오라클 데이터베이스가 되는 것입니다.
 이는 데이터베이스 상태를 더욱 효율적으로 판단하고 그것에 적합한 스케쥴링이 가능하다는 점에서 성능상 우위를 가질 수 있습니다.
 Switching 시간을 볼 때, PROCESS > Thread > Fiber 순이 되는 것입니다.
Affinity and Priority Settings
 Oracle Database 10g는 Windows에서 동작하고 있는 오라클 프로세스와 개별 Thread들에 대해 CPU 점유 우선순위를 지정할 수 있습
니다.
NUMA Support
 Windows 기반하의 NUMA platform이 출시됨에 따라, 오라클은 NUMA 시스템을 이해하고 이것에 적합한 메모리 관리 그리고 작업 스
케쥴링이 가능해 졌습니다
64-bit Support
 Itanium 장비/64bit Windows 2003 환경에서 운영되는 Oracle 데이터베이스는 더욱 확정된 메모리 처리 / 병렬처리 그리고 더욱 많은
동시 접속자를 처리할 수 있습니다.
 32bit에서 64bit으로 데이터베이스를 migration 할 때, 데이터베이스를 재 생성할 필요가 없습니다. 단순히, 64bit 오라클 소프트웨어만
설치한 후, 기존의 데이터파일을 옮긴 후 데이터 딕셔너리를 수정하는 SQL 문장만을 수행하시면 됩니다.
205
Oracle Database 10g 주요 기능 (DBMS)
라. COM data access to Oracle
구조
206
11. Windows
Oracle Database 10g 주요 기능 (DBMS)
11. Windows
라. COM data access to Oracle
OO4O(Oracle Objects for OLE)
 OO4O는 오라클 데이터베이스에 대한 최적화된 접근에 제공하는 COM 기술에 기반한 연결 툴 입니다.
 OO4O는 전형적인 2-tier 환경에서부터 n-tier 환경까지 전반에 걸쳐 사용될 수 있습니다.
 이것은 MS사의 Com Automation 기술을 지원하는 어떠한 프로그래밍 언어로 사용 가능합니다(예. Visual Basic, Visual C++, VBA in
Excel, VBScript, JavaScript in IIS Active Server Pages)
 가장 최근의 오라클 데이터베이스 기능을 지원합니다.
 OO4O는 오라클의 모든 Timestamp와 Interval 데이터 타입을 지원합니다.
OLE DB Provider
 OLE DB는 조직에 걸쳐있는 데이터에 대한 MS사의 시스템수준 프로그래밍 인터페이스입니다.
 OLE DB는 유형이 다른 데이터를 접근하고 다루기 위한 COM 인터페이스 집합을 사용하는 개방형 표준 데이터 접근 방법론으로 OLE
DB 사용자가 오라클 데이터에 대해 높은 성능과 효율적인 접근을 제공합니다.
 ODBC는 관계형 데이터베이스에 접근을 위해 설정하는 반면, OLE DB는 관계형 또는 비관계형 정보에 대한 접근이 가능합니다.
 ODBC가 아닌 OCI 인터페이스를 직접 사용합니다.
COM Automation
 오라클의 COM Automation 기능은 PL/SQL 개발자가 COM Automation 서버를 호출하기 위한 PL/SQL 패키지를 제공합니다.
 이 패키지는 COM 객체를 초기화하고 특성을 부여하며 그 객체의 method를 포함하기 위한 API를 제공하는 것입니다. 개발자는
PL/SQL 하위 프로그램에서 이러한 API를 호출할 수 있습니다.
 COM Automation 서버와 객체는 네트웍의 어느 부분에도 위치할 수 있습니다.
207
Oracle Database 10g 주요 기능 (DBMS)
11. Windows
마. .NET data access to Oracle
구조
ASP.NET
VB.NET
C#
OLE DB .NET
ODBC .NET
Oracle OLE DB
Oracle ODBC
Oracle
208
C++.NET
Any .NET
Client
Oracle .NET
Data Provider
Oracle Database 10g 주요 기능 (DBMS)
11. Windows
마. .NET data access to Oracle
개요
 .NET 자체는 데이터베이스 기능 사용함에 제한이 있습니다. 오라클은 가장 최신의 데이터베이스 기능(RAC, XML DB, grid etc)을 지원
하는 .NET 환경을 제시합니다. 즉, 오라클은 향상된 데이터베이스 기능을 제시하는 고성능 ADO.NET을 가지고 있는 것입니다. 이를
ODP.NET이라고 부릅니다(Oracle Data Provider for .NET)
 ODP.NET은 .NET의 기능을 사용함에 있어 제한이 없습니다.
 이외에 OLE DB를 사용하는 OLE DB .NET, 그리고 ODBC를 사용하는 ODBC .NET 방법을 제공합니다.
ODP.NET
 최상의 성능을 보입니다.
 가장 최신의 오라클 데이터베이스 기능을 지원합니다.
 MS사의 ADO.NET 스펙에 기반을 두고 있습니다.
 아래 기능은 기존의 ADO,OLE DB .NET, ODBC .NET에서 제공하지 못한 것들입니다.
모든 PL/SQL 기능 지원 : .NET 프로그램에서 오라클 PL/SQL을 자유롭게 사용할 수 있습니다.
Native oracle datatype : .NET 프로그램에서 오라클 데이터타입을 그대로 사용할 수 있습니다.
 LOB, Binary float / Binary double data 데이터 타입 지원
 Nested Cursor 지원
Connection pooling 구성 : 예전 .NET 개발자들은 Connection pool에 대해서 TIMEOUT 만을 지정할 수 있었으나, 현재는
Application load에 따라 유연하게 Connection pool을 구성할 수 있습니다.
Grid 환경 지원
 데이터베이스에 XML을 저장하고 Query하는 기능으로써 관계형 / 객체관계형 데이터를 접근할 수 있습니다. XML Schema 지원.
209
Oracle Database 10g 주요 기능 (DBMS)
11. Windows
바. Oracle service for MTS
MTS는 분산 응용 프로그램을 관리하기 위해 중간 계층에서 특별하게 구현된 응용 서버이며, COM과 .NET 기반의 환경에
서 동작합니다. Thread/Process 관리, 객체 Pooling 그리고 재사용과 같은 서비스를 제공합니다.
MTS를 지원하는 목적은 Microsoft 분산 트랜잭션 중계자(Distributed Transaction Coordinator,DTC)에 의한 전역 트랜잭션
중계를 지원하기 위한 것으로 트랜잭션의 모집, 종료와 복구를 관리하며, 오라클과 MTS의 통합환경으로 어떤한 장애로부
터도 서비스를 계속할 수 있는 환경을 제공합니다. 또한 Connection pooling을 최적화 시킴으로써 최상의 성능을 제공하
고, OCI,OO4O와 OLEDB 및 ODBC와 통합된 인터페이스 환경을 제공합니다.
210
Oracle Database 10g 주요 기능 (DBMS)
11. Windows
사. Oracle Fail Safe
개요
 Windows cluster 환경에서 고 가용성을 제공하는 Oracle10g의 주요 기능입니다.
 MSCS와 상호 통신하여 한쪽 노드에 장애가 발생한 경우 그 노드에서 동작하고 있던 오라클 데이터베이스와 Application들을 자동적으
로 살아남은 노드로 failover 시켜주는 기능을 제공합니다.
지원 제품
 Oracle databases
 Oracle Applications release 11i
 Oracle iAS components
Oracle Forms Services
Oracle Reports Services
Oracle HTTP Server
 Oracle Intelligent Agent
 Oracle Service for Microsoft Transaction Server
211
1. Oracle 10g 주요기능
1.1 Upgrade와 Migration
가. 개요
What’s that ?
 Upgrade는 특정 오라클 버젼의 딕셔너리를 다른 버젼으로 변경시키는 작업을 말합니다.
 Migration은 다른 서버(장비)로 오라클 데이터를 이전하는 작업으로 정의합니다. 이는 upgrade 작업을 포함할 수 있습니다.
향상된 기능
 복잡성 감소
Component 통합 지원
Upgrade 절차 통합
모든 Component를 하나의 스크립트로 처리 가능
 Upgrade를 수행할 수 있는 향상된 GUI 툴 지원 : DBUA(DataBase Upgrade Assistant)
 Upgrade 작업 전 데이터베이스 분석 기능 지원 : Pre upgrade information tool
 Upgrade 성능 향상 : Invalid PL/SQL 객체들에 대한 병렬 재 컴파일 기능 지원
 Upgrade 수행 결과에 대한 검증 지원 : Post upgrade status tool
Oracle Database 10g upgrade path
 9iR2 (9.2.0), 9i (9.0.1), 8i (8.1.7), 8.0.6 버전은 직접 10g로 upgrade 가능합니다.
 이외 버전은 상위 버전으로 upgrade 한 후 10g로 upgrade 해야 합니다.
예 : 8.1.5 -> 8.1.7 -> 10.1.0, 7.3.4 -> 9.2.0 -> 10.1.0
212
1. Oracle 10g 주요기능
12. Migration & Upgrade
가. 개요
Rolling upgrade 지원
 RAC(Real Application Clusters) 환경에서 한쪽 노드가 기동 되
어있는 상태에서도 다른 쪽 노드에서 patching 작업을 수행할
수 있습니다(one-off patch).
Upgrade 사전 준비
 Oracle Database 10g에서 새로 제시된 기능에 대한 숙지
 Upgrade path 확인
 Upgrade method 선택
 Oracle HOME 디렉토리 확인
 기존 데이터베이스 백업전략 수립
 Upgrade 후 테스트 계획 수립
Upgrade 절차
213
1. Oracle 10g 주요기능
12. Migration & Upgrade
나. Upgrade/Migration 방법
오라클은 고객의 Upgrade/Migration 작업을 위한 맞춤형 기능을 제공합니다. 어떠한 방법으로 위 작업을 수행할 것인가,
작업결과에 대한 테스트는 어떻게 진행할 것인가, 그리고 이 작업으로 영향을 받는 다른 IT 자원은 무슨 방법으로 찾아내
고 처리할 것인가를 신중하게 고려하여 upgrade/migration을 진행해야 합니다. 아래와 같은 다양한 방법 중 고객 시스템에
최적으로 합당한 기능을 적용해 보시기 바랍니다.
ONE SCRIPT UPGRADE
 예전에는 데이터베이스에 적용된 component들을 upgrade 하기 위해서, 그 component에 맞는 upgrade script를 수행해야만 했습니
다. 이러한 작업은 DBA에 상당한 복잡성을 야기 시키고 작업 도중 에러를 발생시킬 소지가 많았습니다.
 Oracle10g에서는 단일 스크립트를 사용하여 모든 component에 대한 upgrade를 수행할 수 있습니다. 이것을 가능하게 하는것은
'Component REGISTRY' 기능입니다. 위 기능으로 Oracle10g는 'cmpdbmig.sql'이라는 하나의 스크립트로 Java, XDK for java,
Oracle Label Security 그리고 Workspace Manager 등과 같은 하나 이상의 component들을 함께 upgrade 할 수 있습니다.
 'cmpdbmig.sql'은 Component REGISTRY의 정보를 확인하여 데이터베이스에 어떠한 component들이 구성되어 있는가를 알아냅니다.
 Oracle9i R2 이전 버젼에서는 Component REGISTRY를 갖고 있지 않습니다. 즉, 예전 버젼에서 Oracle10g로 upgrade 할 때 오라클은
자동적으로 Component REGISTRY를 생성합니다.
 장점
DBA가 upgrade에 대한 모든 절차를 조정할 수 있습니다.
 단점
SYSTEM 테이블 스페이스에 대한 수동 검사작업을 수행해야 합니다.
수동적으로 모든 파라메터 변경사항을 검토해야 합니다.
데이터베이스에 대한 사용자 정의 백업을 수행해야 합니다.
에러 발생소지가 많습니다.
214
1. Oracle 10g 주요기능
나. Upgrade/Migration 방법
DBUA
 DBUA(Database Upgrade Assistant)는 upgrade 하는 절차를
수행하기 위한 GUI 툴입니다.
 장점
내부적으로 수동 upgrade 작업에서 사용되는 스크립트
를 활용합니다.
DBUA는 자동적으로 upgrade 작업 전 대상에 대한 검
증작업을 수행하고(using pre upgrade information
tool) 이후 필요한 upgrade 절차를 수행합니다.
필요한 파일들을 백업합니다. 또한, 요구되는 테이블 스
페이스를 생성하고 변경하는 작업을 수행합니다.
Upgrade 진행사항을 보여 줍니다. 그리고, Upgrade 수
행에 대한 결과파일을 생성합니다.
하나의 명령어로 수행 가능한 Silent-mode를 지원합니
다.
 단점
Upgrade 진행 중에 DBA의 개입이 허용되지 않습니다.
Migration 상황에서는 사용될 수 없습니다.
215
12. Migration & Upgrade
1. Oracle 10g 주요기능
12. Migration & Upgrade
나. Upgrade/Migration 방법
Datapump
 원하는 데이터 집합을 선택하여 새로운 데이터베이스로 이전할
수 있습니다.
 장점
원하는 데이터만 대상 데이터베이스로 이전할 수 있습
니다.
Migration 작업 시 사용 가능합니다.
 단점
Export
 SQL*Plus의 COPY 명령어나 CREATE TABLE..AS 문장으로 데
이터를 복사할 수 있습니다.
 장점
원하는 데이터만 대상 데이터베이스로 이전할 수 있습
니다.
Migration 작업 시 사용 가능합니다.
 단점
대량의 디스크 공간이 요구됩니다.
파일 내용
Using SQL*Plus
대상 데이터베이스가 기동 되어 있어야 합니다.
테이블 내용
Import
SQL*Plus
테이블 내용
Oracle9
Oracle9
익스포트
덤프 파일
Oracle9 데이터 파일
216
Oracle10g 데이터 파일
Oracle9 데이터 파일
Oracle10g 데이터 파일
1. Oracle 10g 주요기능
12. Migration & Upgrade
나. Upgrade/Migration 방법
Transportable tablespace
 위 기능은 서로 다른 플랫폼간에도 오라클 데이터파일을 이전할 수 있는 Oracle Database 10g의 새로운 기능입니다.
 데이터파일 자체를 이전하여 새로운 오라클 데이터베이스를 구성하기 때문에 상당히 간편하고 빠른 Migration 방법을 제공합니다.
 장점
catalog를 수행하고 사용자 Tablespace를 transporting 하는 작업으로 모든 Migration 작업을 매듭 질 수 있습니다.
Data pump / SQL*Plus 방법 보다 훨씬 빠르게 Migration 작업을 수행할 수 있습니다.
플랫폼에 구애 받지 않는 Migration 방법을 제공합니다.
 단점
Upgrade 작업에는 사용될 수 없습니다.
217
1. Oracle 10g 주요기능
12. Migration & Upgrade
다. PRE UPGRADE INFORMATION TOOL
개요
 DBA들은 upgrade를 수행하기 전에 시스템 자원(SYSTEM 테이블스페이스 공간 등)에 대한 검증 작업을 하고 초기화 파라메터가 새로
운 버젼에 합당한 가를 고려해야만 했습니다.
 또한, 새로운 테이블스페이스를 생성하고 기존의 테이블스페이스를 변경하는 작업을 수행해야만 했습니다.
 고려 요소가 많기 때문에 DBA의 실수가 빈번하게 되고 이로 인하여 upgrade 작업을 다시 해야만 하는 경우도 많았습니다.
 Oracle Database 10g에서는 Pre Upgrade Information 툴(utlu101i.sql)을 제공합니다. 이 툴은 upgrade 이전에 원본 데이터베이스를
분석하고 새로운 버젼을 탑재하기 위해 어떠한 시스템 자원과 초기화 파라메터가 필요한 가를 판단합니다.
아래와 같은 요소가 이 툴에 의해 분석됩니다
 Database version and Compatibility
 Redo logs < 4MB
 Updated initialization parameters
 Deprecated initialization parameters
 Obsolete initialization parameters
 Cluster
 Account check
 Names of database components
 Tablespaces (size adjustment recommendation)
 New SYSAUX tablespace
 Character set anomalies
 Installed options
 Upgrade time estimate
218
1. Oracle 10g 주요기능
12. Migration & Upgrade
라. POST UPGRADE STATUS TOOL
개요
 Oracle Database 10g 이전의 upgrade 절차에서 문제시 되는 것 중의 하나가, upgrade가 성공적으로 수행 되었는가를 판단하기가 어
렵다는 것입니다. Upgrade 도중 발생된 문제에 대한 에러 메시지가 없었기 때문에 upgrade가 정확하게 종료 되었는지 보장하기가 어
려웠습니다.
 Post upgrade status(utlu101s.sql) 툴은 이러한 에로사항을 해결해 줍니다. 이 툴은 upgrade가 수행된 후 정확성을 검증하기 위해 사
용됩니다.
 이는 데이터베이스 개별 component에 대한 정보를 얻기 위해 Component REGISTRY를 사용합니다.
 데이터베이스에 있는 모든 component이 upgrade를 성공적으로 수행되었다면, Post upgrade status 툴은 어떠한 문제도 발생하지 않
았다는 메시지를 보여 줍니다. 성공적이지 않았다면, VALID 하지 않은 component들 목록을 보여줍니다.
 이는 DBUA에 의해 자동적으로 수행되거나 DBA에 의해 수동으로 실행될 수 있습니다.
아래 정보들이 이 스크립트에 의해 제공됩니다
 Component name
 Component status (VALID, INVALID)
 Component 버젼과 RDBMS 서버 버젼의 동일성 유무
 DBA가 문제를 해결하기 위해 필요한 정보들의 요약
 DBA가 수동으로 처리해야만 하는 Component에 대한 스크립트 이름
219
1. Oracle 10g 주요기능
12. Migration & Upgrade
마. Parameter change
Deprecated parameters : Oracle10g에서 더 이상 의미가 없는 파라메터입니다.
 BUFFER_POOL_KEEP (replaced by DB_KEEP_CACHE_SIZE)
 BUFFER_POOL_RECYCLE (replaced by DB_RECYCLE_CACHE_SIZE)
 GLOBAL_CONTEXT_POOL_SIZE
 LOCK_NAME_SPACE
 LOG_ARCHIVE_START
 MAX_ENABLED_ROLES
 PARALLEL_AUTOMATIC_TUNING
 PLSQL_COMPILER_FLAGS (replaced by PLSQL_CODE_TYPE and PLSQL_DEBUG)
Obsolete parameters : Oracle10g에서 사라진 파라메터입니다.
 DBLINK_ENCRYPT_LOGIN
 HASH_JOIN_ENABLED
 LOG_PARALLELISM
 MAX_ROLLBACK_SEGMENTS
 MTS_CIRCUITS
 MTS_DISPATCHERS
 MTS_LISTENER_ADDRESS
 MTS_MAX_DISPATCHERS
 MTS_MAX_SERVERS
 MTS_MULTIPLE_LISTENERS
220
1. Oracle 10g 주요기능
마. Parameter change
Obsolete parameters : Oracle10g에서 사라진 파라메터입니다.
 MTS_SERVERS
 MTS_SERVICE
 MTS_SESSIONS
 OPTIMIZER_MAX_PERMUTATIONS
 ORACLE_TRACE_COLLECTION_NAME
 ORACLE_TRACE_COLLECTION_PATH
 ORACLE_TRACE_COLLECTION_SIZE
 ORACLE_TRACE_ENABLE
 ORACLE_TRACE_FACILITY_NAME
 ORACLE_TRACE_FACILITY_PATH
 PARTITION_VIEW_ENABLED
 PLSQL_NATIVE_C_COMPILER
 PLSQL_NATIVE_LINKER
 PLSQL_NATIVE_MAKE_FILE_NAME
 PLSQL_NATIVE_MAKE_UTILITY
 ROW_LOCKING
 SERIALIZABLE
 TRANSACTION_AUDITING
 UNDO_SUPPRESS_ERRORS
221
12. Migration & Upgrade

similar documents