2.22k likes | 2.47k Views
Oracle Database 10 g 주요기능 (DBMS 부문 ). Oracle Korea / 2004 . 02 . 20. 목 차. 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
E N D
Oracle Database 10g 주요기능 (DBMS 부문) Oracle Korea / 2004 . 02 . 20
목 차 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는 평소와 똑같이 원하는 작업을 진행할 수 있습니다.
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등이 원인으로 발생할 수 있습니다.
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를 지속적으로 해줄 수 있습니다.
Oracle Database 10g 주요 기능 (DBMS) 1. Availability 다. 가용성을 위한 Oracle Database 10g 일반기능 • 최소 I/O 복구 - 두 단계 인스턴스 또는 크래쉬 복구 • Oracle Database 10g에서는 예기치 않은 Down 시간을 최소화하기 위해 복구 시간을 최소화하는 메커니즘을 제공하며, 이런 기능은 I/O 연산을 줄이기 위해 다음과 같은 내부 메커니즘을 제공합니다. 어떤 블록이 디스크에 성공적으로 쓰여졌는가에 대한 추가적인 정보를 이용하여 복구시에 이런 블록들에 대한 복구를 하지 않으므로써 전체 복구 시간을 최소화합니다. 즉, 먼저 복구를 필요로하는 레코드를 분석하고, 이들 레코들을 포함하는 블럭들만을 처리함으로써 복구 시간을 최소화하고 시스템의 Down 시간을 줄입니다.
redo log buffer buffer cache shared pool SGA Oracle Database 10g 주요 기능 (DBMS) 1. Availability 다. 가용성을 위한 Oracle Database 10g 일반기능 Fast-Start 기반 복구 시간 설정 • 많은 서비스 단계에 있어서 중요한 것 중의 하나가 평균 복구 시간인데, Oracle9i부터 DBA는 데이터베이스를 복구하는데 걸리는 예상 시간을 제약함으로써 이러한 명시된 목표 시간을 충족하기 위해 Oracle10g 데이터베이스는 자동으로 내부 설정에 필요한 정보에 대해 적절한 값을 결정합니다. • 복구 시간을 결정하는 것은 로그 파일을 읽는 시간과 복구된 데이터 블록을 처리하는 시간이며, Oracel 9i에서는 이러한 시간을 제한시킬 수 있는 FAST_START_MTTR_TARGET 파라미터를 DBA가 설정할 수 있는 환경을 제공함으로데이터베이스 복구 시간에 대한 정확성을 제공합니다. 복구를 수행하면서 Oracle10g 데이터베이스는 체크 포인터 주소에서부터 변경된 것을 재실행하게 됩니다. 따라서, 이 체크 포인트 위치에서부터 복구를 하므로 복구 시간을 줄일 수 있습니다.
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 서버에 비해 훨씬 저렴합니다.
Dramatic Advances in Ease of Use Data Guard Site Failure Protection Flash Recovery Area Corruption Protection Flashback Human Error Protection Combine the Features to Achieve Any Level of Data Protection ASM Mirroring Storage Failure Protection Oracle Database 10g 주요 기능 (DBMS) 1. Availability 마. 데이타 장애 대처 방안
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를 유지할 수 있는 디스크 추가용량이 있으면 되는 것입니다.
Oracle Database 10g 주요 기능 (DBMS) 1. Availability 마. 데이타 장애 대처 방안 - Flashback • Flashback Database • Oracle Database 10g이전까지는 transactional point-in-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에 저장 공간을 마련해야 합니다.
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들을 되살릴 수 있게 되었습니다.
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를 통해 나타나게 됩니다.
Oracle Database 10g 주요 기능 (DBMS) 1. Availability 마. 데이타 장애 대처 방안 - Flashback • Flashback Transaction Query • Flashback Transaction Query는 아래의 그림과 같이 user의 실수로 잘못된 query를 수행하였을 경우, log miner보다 빠른 처리를 통해 해당 query를 undo할 수 있기 때문에 human error에 대한 복구를 더욱 손쉽게 할 수 있습니다.
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 구성을 제공합니다.
Physical Standby Database Sync or Async Redo Shipping Backup Production Database Redo Apply Network Broker Optional Delay Logical Standby Database Transform Redo to SQL Open for Reports SQLApply Optional Delay Additional Indexes & MVs Oracle Database 10g 주요 기능 (DBMS) 1. Availability 마. 데이타 장애 대처 방안 – Data Guard Oracle Database 10g에서 제공하는 Data Guard는 서버 머신의 다운 또는 자연 재해와 같은 사고 때문에 데이터베이스의 데이터를 접근 하지 못하는 경우 대비하여 데이터베이스의 계속적인 서비스를 가능하게 하는 환경을 지원하기 위한 기능으로 데이터베이스의 고가용성과 장애 극복을 위해 다음과 같은 기능을 제공합니다. • 일관성 있는 관리 인터페이스 • 물리적 스탠바이 데이터베이스를 자동으로 생성 • Failover와 Switchover 기능 • 물리적 결함에 대한 보호망 • 로그 전송 서비스에 대한 설정 • 로그 적용 서비스에 대한 설정 • 모니터링, 경고와 제어 메커니즘 • 논리적 스탠바이 데이터베이스 지원
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 Redo Apply Sync or Async Redo Shipping
Oracle Database 10g 주요 기능 (DBMS) 1. Availability 마. 데이타 장애 대처 방안 – Data Guard 데이터 가드 SQL 적용 • SQL 적용 모드에서의 데이터 가드는 아카이브 로그로 부터 변경된 내용을 SQL 트랜잭션으로 생성하여 이를 대기 데이터베이스에 적용한다. SQL을 적용하기 때문에 대기 데이터베이스는 정성적인 사용이 가능하며 Production 데이터베이스와 다른 물리적인 구조를 가질 수 있다. 이를 논리적 대기 데이터베이스라 부른다. • Primary 사이트의 정지 없이 논리적 스탠바이의 인스턴트를 지원합니다. Additional Indexes & Materialized Views Data Guard Broker Primary Database Logical Standby Database Optional Delay ContinuouslyOpen for Reports Network Sync or Async Redo Shipping 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를 지원합니다.
Reporting On Real TimeData Production Database Standby Database Transaction Shipping (Real Time Apply) Some Nodes Used for Other Computing No Delay Flashback Log Flashback Log 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)을 가능하게 하여 비계획/계획된 다운타임을 최소화 시켜줍니다.
Oracle Database 10g 주요 기능 (DBMS) 1. Availability 바. 데이타 변경 대처 방안 – Online Reorganization 인터넷 비즈니스는 항상 응용 시스템이 항상 가용해야 되며, 계획된 유지보수를 할 경우라도 데이터베이스에 대한 접근은 계속되어야 합니다. 또한, 데이터가 데이터베이스에 삽입과 삭제됨에 따라 객체는 조각나게 되므로 때때로 객체 저장 속성은 대용량 데이터를 처리하기 위해서 변경되어야 할 필요가 있습니다. • 온라인 스키마 재정의 • add, modify, drop column • 온라인 인덱스 재구성 • create, recreate, replace • 온라인 테이블 재구성 • 온라인 재구성 시, Update 및 Query 지속 Copy Table Transform Source Table Result Table GUI interface to make it Simple Store Updates Update Tracking Transform Updates
Oracle Database 10g 주요 기능 (DBMS) 1. Availability 바. 데이타 변경 대처 방안 – Partitioning • 파티션된 데이터베이스 오브젝트는 파티션 독립성을 제공합니다. 이러한 독립성의 특징은 고 가용성 전략의 중요한 부분이 될 수 있습니다. 예를 들면 파티션된 테이블의 하나의 파티션이 사용할 수 없게 된다 하더라도 다른 파티션들은 온라인이나 가용한 상태로 남아 있게 됩니다. 사용할 수 없는 파티션에 액세스하지 않는 애플리케이션의 지속적인 질의와 트랜잭션을 지속적으로 수행하게 되고 데이터베이스 운용 작업도 성공적으로 수행 가능합니다. • 데이터베이스 관리자는 각 파티션을 각기 다른 테이블 스페이스에 저장할 수 있습니다. 이는 테이블이 저장되어 있는 파티션들은 각기 독립적이기 때문에 각 개개의 파티션에 대해 백업과 복구 작업을 수행할 수 있습니다. • 더구나 파티션닝은 계획된 다운타임을 감소 시켜줍니다. 대용량 데이터베이스 오브젝트에 대한 완벽한 유지 보수 작업을 파티셔닝을 통하여 빠른 성능을 얻을 수 있습니다. 대용량 데이터베이스 오브젝트에 대한 대부분의 유지보수 작업은 온라인 운영과 같은 작업을 의미합니다. 따라서 다운 타임을 위한 필요성을 완벽하게 완화시켜 줍니다. 파티셔닝은 온라인/오프라인 유지보수 작업의 빠른 성능을 제공합니다. 월별로 데이터 분리 저장 이전 달의 데이터 만 읽기 전용 Orders Table
A B Oracle Database 10g 주요 기능 (DBMS) 1. Availability 사. 시스템 변경 대처 방안 – Rolling Patch Upgrade Using RAC Oracle Patch Upgrades Clients Clients Patch A B B A B 1 2 Operating System Upgrades Initial RAC Configuration Clients on A, Patch B Patch A B A Hardware Upgrades 4 3 Upgrade Complete Clients on B, Patch A
X X X+1 X+1 X+1 Oracle Database 10g 주요 기능 (DBMS) 1. Availability 사. 시스템 변경 대처 방안 – Rolling Release Upgrade Using DG Logs Ship Logs Queue Upgrade Patch Set Upgrades Clients Clients 1 2 Major Release Upgrades Version X Version X Initial SQL Apply Config Upgrade node B to X+1 Logs Ship Logs Ship Cluster Software & Hardware Upgrades Clients Clients 4 3 X+1 Switch to B, upgrade A Run mixed to test
Oracle Database 10g 주요 기능 (DBMS) 1. Availability 사. 시스템 변경 대처 방안 – Dynamic Resource Provisioning • CPU • SMP장비에 CPU의 동적 증설 및 제거 • Momory • Shared Memory의 동적 할당 • 사용자 메모리의 동적 관리(On Demand) • Disk • 스토리지 환경의 자동 조정 • 데이터화일 이동 • 디스크 동적 추가/삭제 • Cluster Node • 클러스터 노드들의 동정 추가 및 제거
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 기능을 살펴보겠습니다.
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는 극복하였습니다.
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 방식으로 각각의 문제들에 대해 원인을 알아볼 수 있습니다.
ADDM Tasks Alerts AWR Advisors 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 등을 할 수 있게 합니다.
Application & SQL Management Advisory Infrastructure Storage Management System Resource Management Server-generated Alert Infrastructure Automatic Maintenance Task Infrastructure Space Management Backup & Recovery Management Database Management Automatic Workload Repository Intelligent Infrastructure 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 형태로 볼 수 있습니다.)
In memorystatistics SGA Snapshots Alerts ADDM Proactive Monitoring ADDM Results Workload Repository Reactive Monitoring Oracle Database 10g 주요 기능 (DBMS) 2. Database Diagnostic 다. Oracle Database 10g 성능 진단 특징 • Oracle Database 10g성능 진단에 대한 개괄적인 그림
Application & SQL Management Storage Management System Resource Management Space Management Backup & Recovery Management ADDM 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을 통해 접근 가능합니다.
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 성능을 분석합니다.
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이 효과적으로 문제들을 관리할 수 있게 해줍니다.
Oracle Database 10g 주요 기능 (DBMS) 2. Database Diagnostic 다. Oracle Database 10g 성능 진단 특징 • ADDM의 산출물 ADDM의 산출물은 Enterprise Manager console을 통하여 가장 잘 보여집니다. ADDM은 각각의 분석 후, database에 해당하는 영향에 대해 정보를 보내 줍니다. 이 영향은 database가 얼마나 많은 시간 소모를 하느냐를 기준으로 합니다. 또한 ADDM은 문제 뿐만 아니라 향상에 관계된 정보들도 생성합니다. 이러한 정보들은 대부분 advisor기능을 포함합니다.
Oracle Database 10g 주요 기능 (DBMS) 2. Database Diagnostic 다. Oracle Database 10g 성능 진단 특징 • EM에서 본 ADDM의 산출물
Oracle Database 10g 주요 기능 (DBMS) 2. Database Diagnostic 다. Oracle Database 10g 성능 진단 특징 • EM에서 본 ADDM의 산출물
Oracle Database 10g 주요 기능 (DBMS) 2. Database Diagnostic 다. Oracle Database 10g 성능 진단 특징 • EM에서 본 ADDM의 산출물
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를 통해서 이러한 정보를 받아들이기만 하면 됩니다.
SQL Tuning Recommendations Automatic Tuning Optimizer SQL Tuning Advisor Gather Missing or Stale Statistics Statistics check mode SQL Profiling Create a SQL Profile DBA Add Missing Indexes Access Path Analysis SQL Structure Analysis Modify SQL Constructs 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 생성에 매우 유용하게 쓰입니다.
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);
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를 변화시킬 필요가 없습니다.
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을 생성합니다.
SQL Tuning Advisor Significant performance gain SQL Access Advisor Workload Comprehensive index analysis Index Index 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를 효과적으로 잘 수행하고 있는지를 검사합니다.
Poorly Written Statement SQL Construct Restructured SQL Statement Typical mismatch & indexes Design mistake SQL Tuning Advisor 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와 같은 디자인 실수
SQL Tuning Automatic Database Diagnostic Monitor (ADDM) PGA Buffer Cache Memory SGA Access Shared Pool Space Segment Advisor Undo AWR Commondata source Seamlessintegration Oracle Database 10g 주요 기능 (DBMS) 2. Database Diagnostic 라. 서버 성능 관리의 장점 • 종합적인 advisor 프레임워크 구성 • 분석에서 해결까지 집약된 드릴다운 기능
Oracle Database 10g 주요 기능 (DBMS) 3. Performance & Scalability 가. 확장 및 성능 개요 • 개요 다중 버전 읽기 일관성(multi-version read consistency) 기능을 소개한 오라클 데이타베이스 6부터, 새로운 릴리즈를 발표할 때마다 데이타베이스의 성능과 확장성을 향상하는 혁신적인 기능들을 지원해왔습니다. 데이타베이스 성능의 촛점은 다음 세 영역으로 분류될 수 있습니다. • 다중 동시 사용자 지원 • 복잡한 트랜잭션 지원 • 초대형 데이타베이스 지원 성능 진단과 데이타베이스 튜닝에 많은 시간과 노력을 허비하지 않으면서, 이 세 영역을 동시에 만족해야 합니다. 오라클 데이타베이스는 최소비용으로 최상의 성능을 제공합니다.
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 작업시 미치게 되는 영향도 함께 고려해서 권고를 하게 됩니다.
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 파라미터와 함께 사용한다면, 오라클 데이타베이스가 업무부하에 따라 메모리 소비를 자동으로, 동적으로 조절하게 되며, 최적의 메모리 사용을 보장하게 되는 것입니다.
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 사용율이 낮은 시기에 메모리 상의 변경된 데이타를 데이타파일에 씀으로써, 데이타베이스는 평상시 성능에 미치는 영향을 최소화하면서 빠른 복구 시간을 보장할 수 있습니다. 따라서 관리자가 체크포인트와 관련된 어떠한 파라미터도 설정하지 않더라도, 혹은 큰 값으로 설정했더라도 적당한 인스턴스 장애 복구 시간을 보장할 수 있습니다.