800 likes | 1.12k Views
오라클 DataBase 소개. Oracle Korea / 2005 . 07. 목 차. ORACLE 기술진화 로드맵 데이타베이스 소개 ORACLE 장점 시장점유율 시스템에서 주로 발생하는 문제점. Oracle Database 소개. 1. 오라클의 기술 진화 로드맵. 2001 년 /2003 년 e-Business 를 위한 개발 환경 높은 확장성 및 품질 시장의 확대 (Extend Market – Globalization) On-Line Management DBA 생산성 향상.
E N D
오라클 DataBase 소개 Oracle Korea / 2005 . 07 .
목 차 ORACLE 기술진화 로드맵 데이타베이스 소개 ORACLE 장점 시장점유율 시스템에서 주로 발생하는 문제점
Oracle Database 소개 1. 오라클의 기술 진화 로드맵 • 2001년/2003년 • e-Business를 위한 개발 환경 • 높은 확장성 및 품질 • 시장의 확대 • (Extend Market –Globalization) • On-Line Management • DBA 생산성 향상 90대말/2000년 초 Web Server 중심 3-Tier 구조 JAVA 확산 B-to-C/B-to-B e-Business 대두 92~96년대 중반 분산형 트랜잭션 OLTP/DW 중심 데이타/APP분리 GUI/Tool 전성시대 서버 저 비용 클라이언트 고비용 인터넷 기반 지원 RDBMS JVM내장(EJB,CORBA) JAVA코드내 SQL문 내장 (SQLJ) 멀티미디어 컨텐츠관리 (Oracle Inter Media)
Shared SQL Area Dictionary Cache SQL, PL/SQL 문장의 텍스트 Data Dictionary SQL, PL/SQL 문장의 분석된 형태(Parsed form) Character Set Network Security Etc… SQL, PL/SQL Execute Plan Oracle Database 소개 2. 데이타베이스 소개 가. Architecture SNPn LCKn RECO Pnnn Snnn Dnnn INSTANCE = SGA+BGP Back Ground PRO’ SGA PMON LGWR Redo Log Buffer Shared Pool Data Buffer Cache SMON CKPT DBWn ARCH SELECT EMPNO, NAME FROM EMP WHERE EMPNO = :NO ; …….. = ‘123’; User Server P LISTENER Data File DBMS = Instance + DB * ORACLE DBA과정 : SQL/PLSQL, Administration, Backup & Recovery, Network, Tunnig
SGA Redo Log Buffer Shared Pool Database Buffer Cache Oracle Database 소개 나. SGA(System Global Area) • Oracle Server가 시작될 때마다 시스템 전역 영역(SGA)이 메모리에 할당된다. • SGA는 Oracle DBMS에 대한 데이터와 제어 정보를 갖고 있는 공유 메모리구조의 그룹이다. • SGA의 데이터는 여러 사용자간에 공유된다. • SGA는 종종 “공유 전역 영역(Shared Global Area)”이라고 부르기도 한다. • Instance = background process + sga
Oracle Database 소개 나. SGA : Shared Pool • - Shared Pool은 공유 SQL 영역과 Data Dictionary Cache 구조를 갖고 있는 SGA의 일부분이다. • - 공유 SQL 영역은 SQL문장 하나를 실행하는 데에 이용된 정보를 갖고 있으며 동일한 SQL 문장을 실행하는 프로세스들간에 정보를 공유 할 수 있다. • - 완전히 동일한 문장만 같은 메모리에 위치한다. • - 공유 SQL 영역은 Library Cache라고 부르기도 한다. • - Data Dictionary Cache는 데이터베이스와 그 구조, 사용자에 대한 참조 정보를 갖고 있는 데이터베이스 테이블과 뷰의 집합이다. • 모든 테이블과 뷰의 이름 • 테이블의 컬럼 명과 데이터 유형 • 모든 사용자의 권한 Shared Pool Shared SQL Area Dictionary Cache Data Dictionary SQL, PL/SQL 문장의 텍스트 Character Set Network Security Etc… SQL, PL/SQL 문장의 분석된 형태(Parsed form) SQL, PL/SQL Execute Plan
Oracle Database 소개 다. Database Buffer Cache • 디스크에서 읽은 데이터 블록의 복사본을 가지고 있다. 동시 접속된 사용자들은 Database Buffer Cache를 공유 하여 Access 한다. • - 캐시 실패(Cache Miss) • 데이터를 처음 Access 하는 것이라면 서버 프로세스는 디스크로부터 데이터를 읽어서 캐시에 올린다. • - 캐시 적중(Cache Hit) • 데이터의 Access할 때 이미 캐시에 있다면 메모리(캐시)에서 직접 데이터를 읽는다. • - 캐시 적중 율(Hit Ratio)를 높이는 것은 중요한 Tuning Point 이다. • - Hit Ratio를 90% 정도로 유지하는 것이 좋다. • - 캐시 적중을 통한 Database Access가 훨씬 빠르다. • - LRU(Least Recently Used) 알고리즘으로 운영 된다.
Oracle Database 소개 라. 필수 Background Process • PMON(Process Monitor) • 비정상적으로 종료된 리소스 정리 • Commit 되지 않은 Transaction Rollback • 이미 종료된 Process가 점유한 Lock 해제 • 실패한 Process에 할당된 SGA Resource 회수 • 실패한 Shared Server와 Dispatcher 재시작 • SMON(System Monitor) • Automatically Instance Recovery • 더 이상 사용하지 않은 Temporary Segment가 사용한 공간 회수 • Data File에서 사용 가능한 공간의 연속적인 영역 병합
Oracle Database 소개 • DBWR(DB Writer) • DBWR은 변경된 모든 버퍼의 내용을 데이터 파일에 기록 • “dirty”버퍼를디스크에 기록하여 “clean”상태로 유지 • 사용자 프로세스가 비어있는 버퍼를 찾을 수 있도록 버퍼캐시를 관리 * 동작시점 - 더티 버퍼수가 임계값에 도달했을때 - 프로세스가 지정된 갯수의 블록을 스캔하고도 프리버퍼를 발견하지 못햬을때. - 시간 초과시 - 체크포인트 발생시(db shutdown 등) • LGWR(Log Writer) • Redo Log Buffer를 디스크에 있는 Redo Log File에 기록 • Redo Log Buffer의 관리 * 동작시점 - 리두로그 버퍼의 1/3이 찼을때 - 시간 초과시(3초) - 트랜잭션 커밋시 - dbwr이 버퍼캐쉬에서 수정된블록을 데이타파일로 적기전에-ckpt
Shared SQL Area Dictionary Cache SQL, PL/SQL 문장의 텍스트 Data Dictionary SQL, PL/SQL 문장의 분석된 형태(Parsed form) Character Set Network Security Etc… SQL, PL/SQL Execute Plan Oracle Database 소개 마. SQL 처리과정 SNPn LCKn RECO Pnnn Snnn Dnnn INSTANCE = SGA+BGP Back Ground PRO’ SGA PMON LGWR Redo Log Buffer Shared Pool Data Buffer Cache SMON CKPT DBWn ARCH SELECT EMPNO,NAME FROM EMP WHERE EMPNO = ‘123’; User Server Data File LISTENER Sql 처리순서 ㅇ Parse : Sintax, Semantics(User, Object, Privilege), -> Optimizer (Excution Plan, Row Source생성), Binding : 변수처리 ㅇ Execute : Physical Read, Logical Read ㅇ Fetch
Oracle Database 소개 바. Instance시작 과 종료 • - Server Manager를 사용하여 데이터베이스를 관리하고 모니터 할 수 있다. • - SYSDBA나 SYSOPER Role로 데이터베이스 접속 • 운영체제가 암시적으로 권한을 제공하기 때문에 SYSDBA로 접속하는 경우 암호는 필요 없다. - 8i 이상일경우 SQLPLUS로 접근한다 • - 퍼스널 오라클 : c:\Oracle\Ora81\Bin\>svrmgrl • V7.2 : sqldba lmode=y V7.3 - 8i : svrmgrl V8I – 10g : sqlplus “/ as sysdba” SERVER MANAGER $ sqldba lmode=y Connected. $ svrmgrl Connected. $ sqlplus “/as sysdba” Connected.
Oracle Database 소개 사. Instance 구동 절차 • NOMOUNT, MOUNT, OPEN은 상호 배타적이다. 예컨대, STARTUP MOUNT OPEN이라는 명령은 사용 할 수 없다. • STARTUP NOMOUNT를 수행하면 Instance가 시작 된다. • STARTUP MOUNT를 수행하면 Instance가 시작되고 Control 파일이 Open 된다. • Log 파일이나 Data 파일의 이름 변경, 복구 등의 작업은 MOUNT상태에서 가능하다. • STARTUP MOUNT로부터 모든 사용자가 쓸 수 있도록 데이터베이스를 Open 하려면 ALTER DATABASE OPEN 명령을 수행한다 OPEN MOUNT (close) Instance의 Control 파일에 기술된 모든 파일 오픈 Instance에 대한 Control 파일 오픈 NOMOUNT (disclose) Instance 시작 START UP SHUTDOWN
Oracle Database 소개 자. Instance 시작 • - Instance를 시작 한다는 말은 Database를 구동하여 사용자들이 데이터베이스를 사용할 수 있도록 한다는 말이다. • - 세가지 단계(NOMOUNT, MOUNT, OPEN)를 거친다. • - NOMOUNT, MOUNT, OPEN은 상호 배타적이다, 예컨대, STARTUP MOUNT OPEN이라는 명령은 쓸 수 없다. • - STARTUP NOMOUNT를 수행하면 Instance가 시작된다. • - STARTUP MOUNT를 수행하면 Instance가 시작되고 Control 파일이 Open된다. • - Log 파일이나 Data 파일의 이름 변경, 복구 등을 하려면 MOUNT 상태로 Instance를 시작 한다. • - STARTUP MOUNT로부터 모든 사용자가 쓸 수 있도록 데이터베이스를 Open 하려면 ALTER DATABASE OPEN 명령을 수행한다. • - FORCE 옵션은 이미 시작된 instance를 재 시작할 때 이용한다. • - RESTRICT 옵션은 일반 사용자들이 데이터베이스에 로그 온 하지 못하게 한다.
Oracle Database 소개 차. Instance 종료 • 모든 사용자가 데이터베이스를 사용할 수 없도록 데이터베이스를 닫고 Instance를 종료한다. • SHUTDOWN NORMAL - 새로운 접속을 허용하지 않는다. Oracle Server는 모든 사용자가 접속을 해제하여 완전히 종료할 때까지 기다린다. 이후에 다시 시작할 때 Instance를 복구하지 않는다. NORMAL은 종료 모드의 기본값이다. • SHUTDOWN IMMEDIATE - 현재 Client에서 처리 중인 SQL 문장을 처리하지 않는다. Commit되지 않은 Transaction은 Rollback된다. 현재 접속되어 있는 사용자 프로세스의 세션은 모두 종료 된다. 데이터베이스를 Dismount한 후 Instance를 종료한다. 이후에 다시 시작할 때 Instance를 복구 하지 않는다. • SHUTDOWN ABORT - 현재 Client의 SQL 문장을 중지한다. Commit 되지 않은 Transaction은 Rollback되지 않는다. 현재 접속되어 있는 사용자 프로세스의 세션은 모두 종료 된다. 데이터베이스를 닫거나 Dismount하지 않고 Instance를 종료한다. 이후에 다시 시작할 때는 Instance복구가 필요하다(SMON에 의한 자동복구) *shutdown transactional
Oracle Database 소개 타. 논리적 저장구조 • ㅇ Database Schema • (user, role, table, index, cluster, procedure, function, db link …) • ㅇ Tablespace • ㅇ Segments (Table, Index, Mview, Cluster) • ㅇ Objects (Table, Index, Mview, Cluster, Stored Procedure, Function, Role, Db link….) index Table Table index Table tablespace Tablespace Database
Oracle Database 소개 타. 논리적 저장구조: Oracle database 공간계층 구조 database Data file tablespace 논리적 물리적 segment extent Oracle block O/S block
Oracle Database 소개 타. 논리적 저장구조: 물리적 저장구조와의 관계 회계 Tablespace 구매 Tablespace SYSTEM Tablespace 테이블스페이스 데이타 파일 회계 datafile1 회계 datafile2 구매 datafile1 구매 datafile2 system datafile
Oracle Database 소개 타. 논리적 저장구조: Tablespace, Extent, Block와의 관계 Tablespace Segment 112K Extent 84K 2K Extent 28K Database Blocks Object tunnig Database
Oracle Database 소개 타. 논리적 저장구조: 블럭의 구조 • 블럭 • 가장 작은 저장단위(보통 2K) • 데이타 및 자신의 Header 정보 포함 • Bytes/Block 결정요인 • Operating System • DB_BLOCK_SIZE • 구성요소 • Row Data • Free Space(pct free) • Block Infomation Common and variable Header Table Directory Row Directory Free Space Row Data Data Block
Oracle Database 10g –그리드를 위해 설계된 최초의 데이터베이스 Grid Control StorageGrid DatabaseGrid Application ServerGrid Oracle Database 소개 3. Oracle의 장점 ( 타 DB와의 차별성 ) 가. 전사적 그리드 컴퓨팅(Enterprise Grid Computing) • 전사적 그리드 컴퓨팅(Enterprise Grid Computing) • 현재와 같은 복잡한 IT 환경 하에서 관리해야 할 시스템의 수는 기하급수적으로 늘어나게 됩니다. 이러한 환경 하에서 가장 큰 문제점은 무엇보다도 시스템들의 고립이라 볼 수 있습니다. 이러한 구성은 하나의 시스템이 부하가 걸려 응답시간이 느려질 경우 다른 시스템들이 부하를 줄여줄 수 없는 형태이기 때문에 매우 비효율적이며 고 비용적인 형태입니다. 오라클 데이터베이스 10g는 Enterprise Grid Computing을 위해 설계된 데이터베이스로써 New generation 시스템에 Grid Computing 구현을 실현해 줄 것입니다.
Oracle Database 소개 • 전사적 그리드 컴퓨팅의 장점 • 기업내의 수많은 작은 서버들을 적절한 관리 하에 마치 하나의 거대한 컴퓨터를 사용하는 것처럼 해주는 그리드 컴퓨팅 기능은 기업 내 컴퓨터 자원의 통합, 서비스의 통합 관리, 비용 절감 및 확장성 등의 많은 장점들을 제공합니다. • 기업 내 컴퓨터 자원의 통합 • 기존의 기업 환경은 각 시스템 마다 고립화 되어 있기 때문에 일부 시스템은 과부화 상태인 반면, 일부는 유휴 상태로 운영중인 경우가 많았습니다. 오라클의 공유캐시 기반의 클러스터 기술을 기반으로 한 Grid Computing을 도입하면, 시스템간의 고립화를 최소화하는 단일 컴퓨팅 환경으로 구축이 가능합니다. • 서비스의 통합 관리 • 기업내의 수많은 서버들이 개방형의 완벽한 통합 소프트웨어로 구축이 가능하며, 서비스 부하에 따라 각 노드들을 특정 서비스에 전담시킬 수 있는 Service Provisioning이 가능하기 때문에, 보다 효율적인 업무 분배가 가능하며, 이를 통해 모든 서버의 자원을 100% 활용할 수 있게 해줍니다. • 저 비용/고 성능 • 그리드 컴퓨팅은 대용량 서버의 파워에 맞먹는 저 비용의 장비, 수 십대를 하나의 컴퓨팅 환경으로 구축하는 것이기 때문에, 실제 구축 비용은 대용량 서버에 비해 매우 낮으면서도, 같은 성능을 제공합니다. 더욱이, 시스템에 대한 부하 변동에 따라 가변적으로 손쉽게 새로운 노드를 추가할 수 있는 확장성을 제공합니다. • 고 가용성 • Grid Computing이 제공하는 Transparent Application Failover 기능은 시스템의 장애 발생시 사용자는 시스템 장애를 인식할 수 없도록 구현함으로써 사용자는 시스템의 장애 시 애플리케이션을 재구동 할 필요가 없이 신속한 업무처리가 가능하도록 구현한 기능입니다.
애플리케이션및 SQL 관리 시스템 자원관리 스토리지관리 모니터링 경보 해결 권고 자동 관리 스페이스관리 백업 및 복구관리 자동 관리를 위한 기반 구조 Oracle Database 소개 나. 관리성(Manageability) • 자가 관리 데이터베이스(Self-Managing Database) • Oracle Database 10g는 숭실대 New generation 시스템을 더욱 효율적으로 운영할 수 있도록 자가 관리 데이터베이스(Self-Managing Database) 기능을 제공하고 있습니다. 이 기능을 위하여 오라클 데이터베이스 10g는 아래와 같은 지능형 기반구조를 데이터베이스 설계 시 포함 시킴으로써 타 DBMS와 비교할 수 없는 자동적, 능동적 그리고 효율적인 관리를 가능하게 해 줍니다. • 자동 관리를 위한 기반 구조 • 자동화된 작업 로드 저장(Automatic Workload Repository) • 일체의 통계 정보를 자동으로 수집/관리하는 프레임워크 • 데이터베이스 안의“데이터웨어하우스” • 서버 생성 경보(Server-generated Alerts) • 데이터베이스 상태의 자동 모니터링 수행 및 문제 발생시 관리자에게 즉시 경보 • 관리 작업 자동화(Automated Maintenance Tasks) • 데이터베이스 스스로 반복적인 유지보수 작업을 수행 • 권고자 프레임워크(Advisory Framework) • DBA에게 성능 및 자원 관리에 대한 유용하고 통합적인 권고 제공 Enterprise Manager
서버 차원의 경보 자동 유지보수 어드바이저 기반구조 Oracle Database 소개 나. 관리성(Manageability) - 예제 내장된 지능형 기반구조( Intelligent Infrastructure ) Alerts & Advisories Automatic Tasks Automatic Workload Repository • Database내의 데이타웨어하우스 • 자동적으로 SQL 부하, 자원 사용 정보 등의 각종 통계정보 등을 수집
Oracle Database 소개 자동 데이타베이스 진단 감시(Automatic Database Diagnostic Monitor) 나. 관리성(Manageability) - ADDM • - 자동적으로 전체 데이타베이스 성능 진단 보고서 제공 • - 분석 결과의 영향 및 이점을 제공 • - 능동적으로 수행 • - 매초마다 활성된 세션의 스냅샷 정보 관리 • - 10년 이상의 성능 튜닝 전문가들의 체계적 분류 • - 징후(Symptoms)가 아닌 최초(root) 원인 식별 • - CPU 경합,과도한 파싱, Lock 경합,I/O 용량, RAC 이슈 등 경합요소에 • 초점 • 인한 업무 영향력 미비 • 현재 운영중인 모니터링 시스템들의 문제점 • 과도한 시스템 자원의 사용 • 데이타베이스 상에 성능 저하 요소 발생 • 문제의 감지, 분석 및 해결까지 집약된 기능 구현 결여 은 ? D D M A Database 내의 DBA
과도한 SQL을 어떻게 찾을까? 과도한 SQL을 어떻게 튜닝할까? 과도하게 사용된 SQL DBA DBA Oracle Database 소개 나. 관리성(Manageability) – SQL튜닝 과거 버전 - 수동적 SQL 튜닝의 한계 SQL Workload DB Tuning APP’ (SQL) DBA 성능관리? 모델러 프로그래머 DB Modeling etc : OS, Web서버, WAS, H/W…
Oracle Database 소개 Automatic SQL Tuning Advisor SQL Tuning Recommendations Automatic Tuning Optimizer SQL Tuning Advisor Gather Missing or Stale Statistics Statistics Analysis SQL Profiling Create a SQL Profile DBA Add Missing Indexes Access Path Analysis SQL Structure Analysis Modify SQL Constructs
Oracle Database 소개 ADDM 데모 – EM 10g 화면 • ADDM의 자동검색 및 SQL 자동 튜닝 화면
Oracle Database 소개 EM 10g 화면 • ADDM의 자동검색 및 SQL 자동 튜닝 과정
Oracle Database 소개 EM 10g 화면
Oracle Database 소개 EM10g 관리화면 - Segment Advisor Tablespace별, Schema별
Oracle Database 소개 다. 고 가용성 (High Availability) • 고 가용성 기능 • 예기치 않았던 서비스 중단은 e-business에 있어서 매출, 생산성을 감소시키며, 고객의 불만을 초래할 수도 있습니다. Oracle10g에서는 타 데이터베이스에 비해 이러한 예기치 않았던 서비스 중단 시간을 최소화할 수 있는 복구 시간의 최소화와 최종 사용자에게 미치는 영향을 줄이기 위한 다양한 기능을 제공합니다. • Real Application Clusters • 오라클은 공유캐시 기반의 클러스터 데이터베이스를 사용하므로 어떠한 시스템의 장애에 대해서도 클러스터 내에 한 노드라도 운영가능하면 전체 데이터베이스에 대한 서비스가 가능합니다. • DataGuard • 오라클은 데이터가드의 기능을 통하여 타 밴더 솔루션 없이도 자체적으로 백업센터나 데이터 미러링을 수행할 수 있는 기능을 보유하고 있습니다. • Flashback Any Errors • 사용자의 실수에 의한 장애는 타 장애에 비해 복구하는 시간이 많이 걸리고 위험한 장애입니다. 오라클은 사용자의 실수에 의한 장애를 최소화 시킬 수 있는 다양한 Flashback 기능을 제공함으로 사용사의 실수 이전 데이터의 액세스를 가능하게 하였습니다. • Partition Mechanism • 테이블의 장애 발생시 전체의 테이블에 대한 접근이 불가능하게 됩니다. 오라클은 다양한 파티션 기법(Range, Hash, Composite, List Partition)의 구현으로 인해 테이블에 문제 발생시 접근 불가의 데이터 셋을 최소화할 수 있는 기능을 제공하고 있습니다. • Transparent Application Failover • Transparent Application Failover 기능은 시스템의 장애 발생시 사용자는 시스템 장애를 인식할 수 없도록 구현함으로써 사용자는 시스템의 장애시 애플리케이션을 재구동 할 필요가 없이 신속한 업무처리가 가능하도록 구현한 기능입니다.
Oracle Database 소개 1. Real Application Clusters • Real Application Clusters 오라클 RAC은 하나의 big SMP 서버가 아닌, 클러스터를 구성하는 여러 독립된 서버들 상에 오라클 데이타베이스를 운영하는 것이고, 가용성, 확장성, 저비용을 보장합니다. 클러스터 상의 한 노드에 장애가 발생하더라도, 오라클 데이타베이스는 남아있는 노드를 통해 서비스가 지속됩니다. 보다 더 많은 프로세싱 파워가 필요하다면 새 노드를 클러스터에 쉽게 추가할 수 있습니다. commodity 서버를 이용하므로 비용이 절감됩니다. Global Cache/Enqueue Service Instance 1 Instance 2 Instance N SGA SGA SGA Log Buffer Dictionary Cache Buffer Cache Log Buffer Dictionary Cache Buffer Cache Log Buffer Dictionary Cache Buffer Cache Distributed Lock Area Distributed Lock Area Library Cache Library Cache Distributed Lock Area Library Cache DBWR LGWR DBWR LGWR LCK DBWR LCK LGWR LCK PMON SMON PMON SMON PMON SMON 노드 1 노드 N 노드 2 데이타 파일 과 컨트롤 파일 각 인스턴스의 리두로그 파일
디스크 저장 과거 블록버전 새로운 블록버전 데이타 화일 플래쉬백 로그 Oracle Database 소개 Flashback 자동 백업 및 복구 - Flashback Database 기능 • - 특정 시점으로 복구를 위한 신기능 • - Flash Recovery Area로 변경된 블록의 과거 • : 버전에 대한 Flashback Log를 기록(captures) • - 매우 빠름 – 수 분만에 복구 가능 • - 매우 용이 – 하나의 명령어 복구 • “ Flashback Database to ‘2:05 PM’ ” “Rewind” button for the Database
고객원장 주문내역 Oracle Database 소개 플래쉬백(Flashback) 장애복구 Human Error에 대한 모든 수준의 복구 가능 데이타베이스 데이타베이스 수준 • Flashback Database 를 통하여 원하는 시점으로 모든 데이타베이스를 복구 • Flashback Log 사용 테이블 수준 • Flashback Table 을 통하여 원하는 시점으로 해당 테이블들의 로우들을 복구( UNDO 활용) • Flashback Table ~ Drop을 통하여 Drop 된 테이블 및 인덱스를 복구할 수 있다. - 휴지통 (Recycle bin) 기능 로우 수준 • Flashback Query를 통하여 원하는 시점으로 Row 를 복구
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 소개 Data Guard Oracle Database 10g에서 제공하는 Data Guard는 서버 머신의 다운 또는 자연 재해와 같은 사고 때문에 데이터베이스의 데이터를 접근 하지 못하는 경우 대비하여 데이터베이스의 계속적인 서비스를 가능하게 하는 환경을 지원하기 위한 기능으로 데이터베이스의 고가용성과 장애 극복을 위해 다음과 같은 기능을 제공합니다. • 일관성 있는 관리 인터페이스 • 물리적 스탠바이 데이터베이스를 자동으로 생성 • Failover와 Switchover 기능 • 물리적 결함에 대한 보호망 • 로그 전송 서비스에 대한 설정 • 로그 적용 서비스에 대한 설정 • 모니터링, 경고와 제어 메커니즘 • 논리적 스탠바이 데이터베이스 지원
Oracle Database 소개 라. 고 성능 및 이식성 • 고 성능 기능 • 오라클은 타 업체에 비하여 향상된 블록 메커니즘을 제공함으로써 업계 최초 및 가장 안정된 Row-Level 락킹을 지원하고 있습니다. 또한 대량의 데이터를 가지는 Table Scan, Join, 큰 Table과 Index생성, Bulk Loading, Insert, Update, Delete등에서 하나의 작업을 여러개의 개별적인 작업으로 동적 재분할하고 작업량을 여러 개의 프로세서에 고르게 분산시켜 CPU, Memory등의 자원을 최대한 활용함으로써 작업 성능을 극대화 시킵니다. • 향상된 블록 메커니즘 • Row-Level Locking • Multi Version Read Consistency • No Locks Escalate • No Deadlocks under Load • No Readers Block Writers • No Writers Block Readers • No Requires Dirty Reads • 다양한 병럴처리 기법 • Parallel Backup & Recovery • Parallel query, load, index • Parallel DML • 이식성 데이터 파일을 타 하드웨어 벤더에 영향을 받지 않고 플레그 앤 플레이 개념에 의거 자유로이 오라클 데이타베이스에 이식할수 있습니다. 기존의 마이그레이션 수행시보다 획기적으로 마이그레이션 수행속도를 줄일수 있습니다.
Oracle Database 소개 마. 모니터링 및 설정관리도구 제공 - EM • Enterprise Manager 10g 개요 • Oracle Enterprise Manager 10g 는 Oracle environment에 대한 완벽한 manage를 위한 통합 툴입니다. Hosts, database, listeners, application servers, HTTP server, 그리고 web application등 모든 service들을 하나의 통합 툴로 쉽게 관리할 수 있습니다. 이러한 Enterprise Manager의 주요 사용 용도는 다음과 같습니다. • 매우 중요하고 적절한 시기의 결정을 위한 정보를 추출 • 효과적인 방법을 통한 별도의 시스템 관리 • 바이러스에 대한 방어를 위해 안티 바이러스 프로그램과의 연동 • 오라클 플랫폼과 storage system, hosts, router, 그리고 third-party S/W의 관리 • 하드웨어의 비용 절감, 즉 모든 시스템의 통합 관리 • Enterprise Manager 10g 특징 - 수많은 시스템의 통합 관리 • Oracle Database 10g 의 기본적인 출발은 Grid라는 개념을 시작으로 합니다. 따라서 10g의 Enterprise Manager(이하 EM이라 칭함)는 수많은 시스템 구성 요소를 모두 통합하여 하나의 룰을 통해 일할 수 있게 구성되어 있습니다. 이러한 구성은 다음과 같은 기능으로 실행 가능합니다. • Heterogeneous groups, database groups, 그리고 host groups을 생성할 수 있으며, 다음의 그룹을 포함합니다. • Oracle Management Agents - Application Servers • Beacons - Databases • database groups - HTTP servers • Hosts - OIC LDAP Servers • Oracle Management Service - Oracle Management Repository • Web Applications
Oracle Database 소개 • Enterprise Manager Framework • - Oracle Tuning Pack Oracle Tuning Pack은 DBA에게 SQL 튜닝, 스토리지 최적화 등과 같은 오라클 환경에 대한 숙련된 성능 관리를 제공합니다. Tuning Pack을 사용하기 위해서는 반드시 Diagnostic Pack이 있어야 합니다. • SQL Access Advisor • SQL Tuning Advisor • SQL Tuning Sets • Reorganize objects • - Oracle Enterprise Manager 10g - Database Control Framework Database Control들은 Oracle database 환경들을 관리하고 monitor하는 여러 가지 기술들을 바탕으로 이루어 집니다. Database Control Framework는 이러한 기술들과 Database control로 구성된다. 이러한 구성은 다음과 같습니다. • 하나의 database나 clustered database와 함께 작동되도록 설계된 Oracle Management service의 local 버전. • Local database에 설치된 local Oracle Management Repository • Local Management Service를 위해 설치된 Oracle Management Agent의 local 버전. • - Oracle Configuration Management Pack Oracle Configuration Management Pack은 Enterprise Manager에 의해 관리되는 호스트와 데이타베이스에 대한 하드웨어, 소프트웨어의 구성 정보를 DBA가 트랙킹할 수 있게 해줍니다. • 시스템 인벤토리 수집, 리포팅 • 구성 비교 및 이력 관리 • 패치 관리 • 정책 관리자(Policy Manager) – best practice를 위반하는 경우 관리자에게 alert • 데이타베이스, Oracle Home 복제 • 구성 데이터 검색
Oracle Database 소개 • - Oracle Change Management Pack Oracle Change Management Pack을 통해 DBA는 오브젝트의 변경과 관련된 작업을 수행할 수 있습니다. • 오브젝트 정의 캡쳐(capture)와 저장 • 오브젝트 정의의 비교, 차이점 하이라이트 • 오브젝트 정의 동기화 • 오브젝트 정의를 하나 이상의 사이트로 전파 • 오브젝트의 일부분을 복제 • - Oracle Diagnostic Pack Oracle Diagnostic Pack은 자동 성능 진단, 향상된 시스템 모니터링 기능을 제공합니다. • 자동 업무부하 저장소(Automatic Workload Repository) • 자동 데이타베이스 진단 모니터(Automatic Database Diagnostic Monitor, ADDM) • 성능 모니터링 (데이타베이스, 호스트) • 이벤트 통지(Event notification) : 통지 방법, 룰(rule), 스케쥴 • 이벤트 이력, 성능 측정치 이력 (데이타베이스, 호스트)
Oracle Database 소개 • SQL Tuning Advisor : Options and Recommendations
Oracle Database 소개 4. 시장점유율 • 경쟁사 비교 자료 • Oracle Database 10g는 지금까지 데이타베이스 시장을 리딩해 온 기술들을 그대로 포함하고 있습니다.아울러 그리드와 자가 관리 기능이 포함되어짐으로써 타 DBMS에 비해 성능, 확장, 보안, 관리, 개발 등 모든 면에서 • 가장 뛰어난 DBMS입니다. Others 7.5% MS 18.3% Oracle 47.6% IBM 26.6% 2004년 12월 한국 IDC 조사자료
Oracle Database 소개 5. 시스템에서 주로 발생하는 문제들 ㅇ 시스템에서 주로 발생하는 문제들 - 하드파싱 문제 - Literal SQL에 의한 메모리 단편화 문제 - 악성 SQL에 의한 자원 과다 소모 문제 ·잘못된 SQL사용, 인덱스 문제등 - Lock or Blocking session 문제 - Session Leak - SQL에 의한 자원경합(Waiting Event) 문제 - DB 모델링 & 디자인 잘못으로 인한 문제 - DB 미튜닝으로 인한 문제
Shared SQL Area Dictionary Cache SQL, PL/SQL 문장의 텍스트 Data Dictionary SQL, PL/SQL 문장의 분석된 형태(Parsed form) Character Set Network Security Etc… SQL, PL/SQL Execute Plan Oracle Database 소개 SQL 처리과정 SNPn LCKn RECO Pnnn Snnn Dnnn INSTANCE = SGA+BGP Back Ground PRO’ SGA PMON LGWR Redo Log Buffer Shared Pool Data Buffer Cache SMON CKPT DBWn ARCH SELECT EMPNO,NAME FROM EMP WHERE EMPNO = ‘123’; User Server Data File LISTENER Sql 처리순서 ㅇ Parse : Sintax, Semantics(User, Object, Privilege), -> Optimizer (Excution Plan, Row Source생성), Binding : 변수처리 ㅇ Execute : Physical Read, Logical Read ㅇ Fetch
User User 미공유 SQL 미공유 SQL 미공유 SQL 미공유 SQL Loop…. if then …. select …. loop if then…. update…. . . SELECT EMPNO,NAME FROM EMP WHERE EMPNO = ‘123’ ㅇ Mem’ Fragmentation - ora 4031…. ㅇ 각종 contention 발생 - Latch, Hard Parse등 - Lib’ cache miss ㅇ 자원소모 미공유 SQL 미공유 SQL 미공유 SQL 미공유 SQL 미공유 SQL SELECT EMPNO,NAME FROM EMP WHERE EMPNO = ‘245’; 미공유 SQL 미공유 SQL 미공유 SQL Oracle Database 소개 HARD PARSING TECH’ SNPn LCKn RECO Pnnn Snnn Dnnn SGA PMON LGWR Redo Log Buffer Shared Pool Data Buffer Cache SMON CKPT ???? DBWn ARCH Server P Data File ????
Oracle Database 소개 HARD PARSING TECH’
Oracle Database 소개 HARD PARSING TECH’
User User Literal SQL Literal SQL SELECT EMPNO,NAME FROM EMP WHERE EMPNO = ‘123’; Literal SQL Literal SQL Literal SQL SELECT EMPNO,NAME FROM EMP WHERE EMPNO = ‘245’; Literal SQL Literal SQL Literal SQL Literal SQL SELECT EMPNO,NAME FROM EMP WHERE EMPNO = ‘267’; . . Oracle Database 소개 Literal SQL TECH’ SNPn LCKn RECO Pnnn Snnn Dnnn INSTANCE = SGA+BGP Back Ground PRO’ SGA PMON LGWR Redo Log Buffer Shared Pool Data Buffer Cache SMON ???? CKPT DBWn ARCH Server P ???? Data File Loop…. if then …. select …. loop if then…. update…. . . . ㅇ Mem’ Fragmentation - ora-4031…. ㅇ 비공유 Literal SQL사용으로 각종 contention이 발생하고 하드파싱을 유발하며, 메모리 단편화를 일으켜 DB가 다운 된다
Oracle Database 소개 해결방안 ㅇ Literal SQL을 Bind 변수를 사용하여 수정 // Create Command Object. Cmd1= new msado15.Command(); Cmd1.putActiveConnection( Conn1 ); Cmd1.putCommandText( "SELECT * FROM Authors WHERE Au_ID < ?" ); // Create Parameter Object. v1.putString( "P1" ); v2.putInt( 5 ); Cmd1.getParameters().Append( Cmd1.CreateParameter( v1.getString(), msado15.DataTypeEnum.adInteger, msado15.ParameterDirectionEnum.adParamInput, 0, v2)); ㅇ Cursor_Sharing 옵션 사용 Alter Session Set cursor_sharing= ‘FORCE’ or ‘SIMILAR’; * 디비링크, 복잡한 쿼리에는 사용하지 말것 ㅇ 주기적인 Shared Pool 리프레쉬 alter system flush shared_pool;
Oracle Database 소개 Blocking Session or LOCK TECH’ LOCK & Waiting Session Monitoring DB Session Monitoring Unix Process Monitoring
USER B : update code USER A USER B USER C USER C SELECT 10 USER D UPDATE 10->20 SELECT ? SELECT ? SELECT ? USER E UPDATE 10->30 . . . . UPDATE 10->60 USER F USER G USER H COMMIT ; SELECT ? USER Z Oracle Database 소개 Blocking Session or LOCK(계속) USER A : update sal… Commit ㅇ Index Create, Drop ㅇ Analyze 수행시