Reduce the Risk of Change with RAT 이형규 (hyeong.gyu.lee@oracle.com) Tech Sales Consulting / Oracle Korea
Agenda Real Application Testing 이란? Database Replay SQL Performance Analyzer 2
Oracle Application Quality Management Custom Apps Pre-Packaged Apps Composite Apps ecommerce Apps Testing Application Changes Application Testing Suite Testing Infrastructure Changes Real Application Testing Test Data Management Data Masking Pack Middleware Database Physical & Virtual Servers Storage 3
RAT - Quality Management Real Application Testing Risk Management Application Testing on Database Two Component (DB Replay & SPA) 4
데이터베이스변경에따른위험요소 데이터베이스운영에따른다양한변경요소 데이터베이스업그레이드및패치 데이터베이스통합 튜닝및통계정보수집 스키마변경 데이터베이스파라미터변경 운영체제및하드웨어변경 5
데이터베이스변경에따른위험요소전통적인대응방법및문제점 전통적인대응방법 운영과동일한테스트환경구성 주요업무샘플링에의한시뮬레이션 다양한부하툴또는스크립트를사용하여수많은반복적인테스트 전통적인방법의문제점 운영과동일한테스트환경구성의어려움 운영과동일한어플리케이션테스트의어려움 테스트및검증을위한많은시간과비용 반복적인테스트의한계및실제워크로드를반영하지못하여다양한문제점발생 6
Real Application Testing 의필요성 실제워크로드를바탕으로한테스트 기존시스템의가용성과성능보장을전제한검증절차 테스트를위한시간및비용절감 Real Application Testing 실행되는전체 SQL 에대한단위 SQL 분석 7
Eliminate Risk & Reduce Testing Efforts Forrester Consulting Total Economic Impact TM of Oracle Real Application Testing (2012) 8
Time Taken (Days) RAT 와다른툴과의총소요시간비교 Oracle e-business Suite Real Application Testing : 2 weeks 이내 Other Tool : 30 weeks 80 80 60 40 20 0 4 24 0 20 Install & Setup Understand Application Usage 0 20 Identify Key Transactions 2 Generate Workload 5 Run Test 5 9
위험요소관리를위한 Best Practice 운영중의 DBMS 변경에따른 Application 품질확보 DB Replay SPA Database Replay 실제워크로드를사용한테스트 SQL Performance Analyzer 성능저하된 SQL 발견및튜닝 부하및성능테스트 부하증가에따른 Side Effect 검증 데이터베이스변경에따른효율적인위험관리 DB 측면에서의 SQL 전수검사 개별 SQL 테스트
Database Replay 11
Database Replay End-to-end testing with real workloads 데이터베이스변경에대한위험을사전에감소 테스트에필요한비용 / 시간을대폭절감 실제운영환경의부하를캡쳐하여테스트에서재생 데이터베이스통합을위한부하분석제공 부하 Capture, Replay 및보고서에대한자동화된프로세스제공 Capture Workload Replay Workload Create Test System Deploy Replay Clients 12
Database Replay DB 변경전후의결과분석 실운영서버의전체부하를테스트서버에서재생 실질적인부하테스트가빠르면일주일이내에완료됨 Capture Application Workload EM or CLI DB Replay 실행 Flow 1 테스트서버구축 2 운영서버에서부하 Capture 3 Capture 파일테스트서버로이동 Patchset 4 5 Capture 파일전처리 (Pre-Processing) 테스트서버에서 Replay Pre-process Workload Replay 6 Capture 와 Replay 의 Workload 분석및리포팅 13
DB Replay 상세분석예 DB Replay 진행그래프 Capture & Replay 비교 14
DB Replay 상세분석예 Capture Report DB Replay 캡쳐정보 Capture 동안의 Workload Capture 동안의 Top Event 15
DB Replay 상세분석예 Replay Report DB Replay Parameter DB Replay Divergency DB Replay 통계정보 Replay 동안의 Top Event 16
DB Replay 상세분석예 AWR Comparison 운영서버의 AWR Test 서버의 AWR 17
DB Replay 지원 DBMS 버전 SPA 는 Oracle 9.2.0.8, 10g R2 버전으로부터 11g 버전으로 Upgrade 할경우지원 상세한지원버전및 Patch 는 MOS Note 560977.1 참조 Upgrade From 11g R2 11g R1 10g R2 Upgrade To 11g R2 or 12c 11g R2 or 12c 11g or 12c 9.2.0.8 11g or 12c 18
타사솔루션과 DB Replay 비교 DB Replay 는운영서버와동일한 Workload 를부하테스트에사용 타사 Load Testing 툴 Oracle DB Replay Workload 인공적인시뮬레이션운영서버와동일한실부하 Test Coverage 1~ 5 % 의핵심업무위주의 sampling 전체업무전체 Test 기간수주 ~ 몇달몇일 ~ 2 주 19
Consolidated Database Replay 20
Consolidated Database Replay New in Enterprise Manager Plugin 12.1.0.5 Enterprise Manager 12c 에서는데이터베이스의용량산정과스케일업테스트를위한간단하고직관적인인터페이스를제공 Scale-up with time shifting Scale-up with workload folding Scale-up with data duplication 데이터베이스통합전략과성장을대비한시스템환경구축에대한쉽고정확한테스트지원 21
Consolidated Database Replay Consolidation Testing using Real Application Workload SALES 데이터베이스통합테스트지원 HR 어러개의데이터베이스에서캡쳐한워크로드를동시에리플레이가능 ERP CRM Workload Consolidated Workload Replay 스키마통합또는 Pluggable Database 통합에대한테스트지원 패치를통해 11.2.0.2, 11.2.0.3 버전에서도사용가능 22
Scale-up With Time-shifting 리플레이시에최고부하시점을가지도록정렬가능 EM Cloud Control 12c 에서는워크로드재생일정및최고부하시점을가지도록자동으로정렬하는기능을제공 23
Scale-up With Workload Folding 1 2 단일워크로드를 2 개이상의조각으로분리하여, 별개의워크로드로취급하여동시에재생이가능 EM Cloud Control 12c 에서는워크로드를확인하고분리하며리플레이하는모든기능들에대하여직관적인인터페이스를제공 24
Scale-up With Multiple PDBs SALES01 SALES SALES02 워크로드의급격한증가가예상되거나동일한스키마를가지는멀티테넌트어플리케이션에대한테스트지원 기본 DB 에서 PDB 로복제후이를원격복제등통해서테스트시스템을구성 리플레이디렉토리에워크로드를여러번복사하여특정 PDB 서비스에각각연결 EM Cloud Control 12c 에서는 PDB cloning, PDB services 리맵핑및멀티테넌트환경에서의동시재생가능 25
SQL Performance Analyzer 26
SQL Performance Analyzer SQL Plans + Run-time Stats Pre-Change Trial SQL Workload STS SQL Plans + Run-time Stats Post-Change Trial Compare SQL Performance Analysis Report 개별 SQL 문장레벨로시스템변경이성능에미치는영향을테스트하고예측 성능이개선되거나저하되는것과같은성능변화에대한분석 포괄적인성능분석및리포팅 주어진환경에서 SQL 문반복실행가능 End-to-end solution: STS, SQL Plan Baselines, and SQL Tuning Advisor 27
SQL Performance Analyzer (SPA) SQL 전수검사가수일내로완료될수있음 DB 변경전후로 SQL Plan 및성능비교분석 SQL 은실운영환경에서수집하여 Test 서버에서수행 운영서버 10.2.0.4 테스트서버 10.2.0.4 테스트서버 11.2.0.2 SPA 실행 Flow 1 운영서버 (10gR2) 에서 STS 추출 2 STS 를 EM Repository DB 로적재 Capture SQLs into STS 변경 Remote SQL Exec Statistics 3 4 5 6 테스트서버 (11gR2) 구축 테스트서버 ( 변경전 ) 에서 STS 실행 ( 또는 STS 에저장된 Plan/ 성능정보활용 ) 테스트서버 ( 변경후 ) 에서 STS 실행 변경전후의 SQL 자동분석및리포팅 EM 28
SPA SQL 분석예 Enterprise Manager에의한 SPA 분석리포트 전반적인성능개선 / 저하에대한분석과개별 SQL Report를통한비교분석 SQL Advisor와연계하여튜닝권고및 SQL Profile을이용한 SQL 성능개선 SPA 분석의 Overview 그래프 SQL Advisor 를통한튜닝 개별 SQL 들의성능분석 29
SPA 개별 SQL 상세분석예 개별 SQL Report 를통한상세분석으로 Plan 변경, Access Block 수등을분석 SQL Text SQL 실행통계정보 30
SPA 개별 SQL 상세분석예 Plan 정보 ( 변경이전 ) Plan 정보 ( 변경후 ) 31
STS 수집방법 SPA를실행하기위한 SQL은 Cursor Cache, AWR 등으로부터수집 STS 에포함된내용 SQL Text Bind variables Execution plans Execution statistics SQL 수집 Source Cursor Cache ( 현재 DB 에서실행중인 SQL) 설명 특정조건에맞는 SQL 만주기적으로수집예 ) SCOTT User 가수행하는 SQL 중 Buffer Gests 이 1000 이상인 SQL 을매 10 분마다 incremental 하게수집하고 24 시간후에종료한다. 특정조건에맞는 SQL 만 1 회수집 AWR (SYSAUX 의 Repository 에저장된 SQL) 특정 Snapshot 기간안에수집된 SQL 을조건에맞는 SQL 만선택하여 STS 로생성 32
SPA 지원 DBMS 버전 SPA 는 Oracle 9.x, 10.1.x, 10.2.x 버전으로부터 10.2.x 버전이상으로 Upgrade 할경우지원 상세한지원버전및 Patch 는 MOS Note 560977.1 참조 Upgrade From 11gR2 11gR1 10gR2 10gR1 9i Upgrade To 11gR2 or 12c 11gR1 or 11gR2 or 12c 10gR2 or 11g or 12c 10gR2 or 11g or 12c 10gR2 or 11g or 12c ** 9i, 10g1 은 SQL Trace 사용, 10gR2 이상은 STS 사용 33
기존 SQL 전수검사와 SPA 비교 SPA 는 SQL 전수검사를자동화하여전체프로젝트시간을감소 Upgrade From Upgrade To 방법 Application 담당자가각자프로그램에대한단위테스트를수행또는전문컨설팅업체에의뢰 EM 또는 CLI 로자동화 Test Coverage 100% 전수검사가어려움 100% 전수검사가쉬움 Test 시간수주일 ~ 한달이상수일 ~ 1~2 주 ** 어느경우에도 SQL 전수검사이후별도의튜닝을위한추가작업과시간이필요할수있습니다. 34
Consolidated SPA & SPA Quick Check 35
Consolidated SQL Performance Analyzer (SPA) Consolidation Testing using Real SQL Workload 데이터베이스통합을위한 SQL 성능검증 SALES SALES STS 각각의데이터베이스에서 SQL 워크로드를캡쳐하여 STS 생성 SPA 를통해통합된환경에서모든워크로드실행 HR ERP HR STS ERP STS HR SALES ERP CRM 성능저하된 SQL 문을찾아내어성능개선에도움 DB1 11.1 이상에서기존 SPA 기능을활용하여스키마통합테스트지원 CRM CRM STS DB12 에서는 Pluggable DB 로의통합을지원 36
SPA Quick Check Optimized 운영시스템에서사용하도록최적화 Optimal Trial or Explain Plan mode Disable multi-executions, full DML execute disabled Optimal Trial Mode, no DML execute SPA Quick Check Optimized Controlled/ Scoped Per SQL Time Limits, Limits testing scope to private session Controlled SQL 의실행시간제한 테스트는전용세션에서만실행 Resource Consumer Group 과연계 Change-Aware Context-aware change testing Change- Aware Context-aware change testing workflows, such as, Optimizer gather statistics Init.ora parameter changes Pre-selected STS and default SPA settings Production Database DBA 37
SPA Quick Check Optimized Identifies subset SQL workload with plan changes first Test-executes only SQLs with plan changes Minimizes use of production resources dramatically up to 10x reduction Multiple executions disabled No full DML (execute Select part of workload) 38
SPA Quick Check Controlled 개별 SQL 실행시간제한 protects from runaway SQL Resource 사용조절 Resource Consumer Group 전용세션에서만변경된부분을적용하여테스트 39
SPA Quick Check Change-aware 변경하는시점전에테스트 DBA 의일상적인업무처리에테스트가포함 ( 통계수집, init.ora 파라미터수정 ) 지능적으로테스트세션에주는영향을제한 40
RAT 테스트사례 41
DB Replay 테스트사례 테스트목적 모시스템의 DB 서버는 (2- node RAC) 30~40% 안정적인서비스를유지하고있음. DB 서버 (RAC) 의한쪽 Node 에장애가발생했을경우, 다른 Node 에서모든 Workload 를수용하는지를오라클 RAT 솔루션을통해확인한다. DB Replay 기능확인 Capture 된부하를어느정도재현 (Replay) 되는지검증 부하테스트의결과분석을통해 Workload 증가에따른 Side Effect 분석 42
DB Replay 테스트사례 시스템구성환경 DB 서버 (RAC) 에서 Workload Capture(2 시간 ) Single DB 로구성된 Test 서버에서 Replay Test 서버의 Spec 은운영 DB 서버의한쪽 Node 와동일 Spec 으로 DR 서버를활용 ( 스토리지복제솔루션의동기화를끊고구성 ) DB Replay Client(=wrc) 는동일서버 (Test 서버 ) 에서기동 사용자 ( 모니터링 ) 부하발생 Client(wrc) 는동일한 DR 서버에서수행 (25 wrc) 운영 DB 서버 (RAC) DR DB (Single, Test Server) < 스토리지동기화중단 > RAC DB ( 운영서버 ) Oracle: 11gR2 RAC (2 노드 ) OS : HP-UX 11i, 24 cores / node Test DB (DR 서버 ) Oracle: 11gR2 Single OS : HP-UX 11i, 24 cores 43
DB Replay 테스트사례 테스트요약및결과 Workload Capture 부하 운영서버에영향도는미미함 (5% 이하 ) 2 시간에 51GB 의 capture files 이생성됨 Processing 과정 51GB 의 capture files 를 processing 하는데 2 시간정도소요 Workload Replay (ASYNC mode) 평균적으로 70~80% 의부하를 1 시간 55 분정도지속한후, Workload 가감소되며종료 DB Time 은 Capture 시보다 Replay 에서약 87% 증가, SQL Execute Elapsed Time 은 67% 증가 실제상황이 Replay 처럼발생한다면 Query 성능은다소느려지지만 Application 관점에서의 Service Level 은양호한상태를유지될것으로판단 44
SPA 테스트사례 (1) 테스트목적 모시스템의 DB 서버는 (2- node RAC) 10g 임. 향후안정적인 11g 로의 Upgrade 를위한 SQL 전수검사를 SPA 를사용하여테스트한다. SQL Performance Analyzer 기능확인 Upgrade 시 SQL 의 Regression 및 Error 가어느정도인지예측 부하테스트의결과분석을통해 Workload 증가에따른 Side Effect 분석 45
SPA 테스트사례 (1) 시스템구성환경 운영 DB의 Cursor Cache로부터 STS를생성하여 export EM Repository로 import EM Repository DB로부터 STS의 SQL들을 Test DB로원격실행 운영 DB(RAC) TEST DB(RAC) 운영 DB Oracle: 10.2.0.4 RAC OS : Solaris 10 CPU (32 cores) MEM 60GB each TestDB Oracle: 11.2.0.1 Standalone OS : Solaris 10 CPU (16 cores) MEM 40GB 사용자 ( 모니터링 ) EM + Repository + STS 46
SPA 테스트사례 (1) SPA 테스트결과요약 SQL 전수검사결과 SPA를통해성능저하가발생하는 SQL를추출 Plan 변경 : 총 13,746 SQL 중 1,937 개의 Plan 변경 Regressed SQL: 5개 Timeout SQLs : 30개 (2번실행이 300초안에끝나지않음 ) Unsupported SQLs: 2,092개 (DB Link 등 ) 47
SPA 테스트사례 (2) Pain Point SAP ERP 를사용하는모시스템의 10g 데이터베이스를 2 개월의짧은프로젝트기간동안 11g 로안정적으로업그레이드해야하는상황 2 개월의짧은프로젝트기간동안안정적인업그레이드의어려움 약 150 만개의 SQL 과 10 여만개의테이블구성환경에서의모든 SQL 전수검증의어려움 ( 시간및인력소요 ) 48
SPA 테스트사례 (2) SPA 를통한 SQL 검증 운영 Capture QA Exec 1 Capture 5 Exec STS 001 STS 001 STS 001 STS 002 2 Merge 3 Incremental 4 Split STS 002 STS 002 STS 003 STS 999 STS 999 STS 999 STS 003 STS 003 STS 123 pack EXP unpack STS 123 STS 123 49
SPA 테스트사례 (2) Benefit 11g 환경에시스템안정성확보 SAP Application 이 11g Upgrade 후안정적으로운영 프로젝트수행일정준수 손쉬운사용법과자동화기능으로빠른검증작업완료 (ERP SQL 문 100 만개이상으로기간내수작업불가능 업그레이드후신기능활용 11g 부터구현되는 Advanced Compression(Disk 절감효과 ) 도입시 RAT 이용하여 Risk 발생하는지에대한부하 Test 가능 50
Real Application Testing 활용방안 데이터베이스파라미터변경 OS 업그레이드 패치적용 디버깅 오브젝트변경 데이터베이스업그레이드 데이터베이스통합 플랫폼변경 RAC로의구성전환 51