Cover Story 04 Oracle Real Application Testing 소개 저자 - 민병기컨설턴트, 한국오라클 Tech Sales Consulting(byoung.ki.min@oracle.com) 2008년세계금융위기이후비즈니스환경은더욱더힘들어지고최근에는유럽발금융위기때문에또다시세계경제가휘청거리는것이아닌가하는우려를낳고있으며이러한비즈니스트렌드는 IT 분야에도그대로적용되어비용절감을위한 IT 효율화가더욱강조되어지고있다. IT 효율화를실현하기위한핵심전략중에하나가통합과표준화이다. 클라우드및가상화기술등을통해이미인프라통합이이루어지고있으며최근에는이러한기술에더불어오라클의 Engineered System을통합에적극활용하는기업이꾸준히늘어가고있는추세이다. 045
046 통합을위해서는특히애플리케이션이나 S/W 버전의표준화가필수적이며이러한작업이단기적으로는비용발생으로보일수있으나장기적관점에서는 OPEX 절감효과를통해많은비용효율을얻을수있다는것은이미여러사례를통해서입증되어왔다. 많은기업들이이러한통합과표준화를위해버전업그레이드작업을수행하고있으나가장두려워하는부분이성능이나안정성에전혀지장을주지않도록사전테스트를수행하는것이다. 특히기존의테스트솔루션으로는애플리케이션과데이터에대한전체적인검증즉, 전체 Workload를모두테스트하는전수검사는거의불가능하고샘플링된 Workload만테스트하고있는실정이며이는표준화작업이후사소한검증미비로인해전체시스템장애로이어지기가쉽다. 이러한이유때문에많은기업들이 IT효율화에필수인버전표준화작업을늦추고있는실정이다. 이에테스트솔루션으로는유일하게 Database에발생시키는전체 Workload에대해전수검사를수행할수있는오라클의 RAT(Real Application Testing) 솔루션을소개하고자한다. 지난봄에본지에서 RAT에대한소개가있었기때문에기본적인개념보다는실제활용사례위주로소개가될것이다. 결론부터얘기하자면오라클의 RAT 솔루션은표준화를위한전수검사가가능한유일한솔루션이며표준화이후에도패치나업무증가에의한변경등에따른운영리스크를사전에검증할수있는표준화와운영리스크감소라는두마리토끼를모두잡을수있는 IT효율화에꼭필요한솔루션이라할수있겠다. 본론앞에서설명한바와같이오라클 RAT 솔루션은크게 Database 버전업그레이드및변화관리에사용될수있으며특히최근 Oracle 11g로의업그레이드를수행을하는사용자들이점차증가하는시점에서꼭필요한솔루션이다. 90% 이상의업그레이드이슈는사실업그레이드자체의문제가아닌업그레이드이후의성능이슈로나타나게되며이러한문제는전체적인실제업무부하에대한테스트가아닌일부샘플링된부하테스트를수행하기때문에발생하는경우가많다. < 표1> 에서와같이이러한 DB뿐만아니라주변인프라변경에 따른위험요소는항상존재하며이러한요소를확실히제거하기위해서는반드시철저한계획과실제상황과거의일치하는부하테스트가선행되어져야한다. 구분변경요소위험요소 DB 구조변경 Patch/PSU 적용 버전업그레이드 Parameter 변경 스키마변경 ( 인덱스추가등 ) RAC 로의전환 / 노드추가등 통계정보수집방식변경 이러한샘플링테스트가아닌 실제전체부하테스트 를가능하게하는 RAT 솔루션은크게두가지기능으로나누어지는데 Database Replay와 SQL Performance Analyzer(SPA) 기능이며다음은 RAT 에대한전반적인개요와실제활용사례에대해상세히알아보고자한다. Real Application Testing 개요 Real Application Testing은솔루션중 DB Replay라는기능은전체부하테스트에유용하다. Replay라는단어의의미에서알수있듯이 Database Replay는실제업무에서발생되어지는전체부하를그대로캡처하여이를테스트하고자하는시스템에그대로적용하는기능이다. DB Replay 실행 Flow는아래와같다. 1) 테스트서버구축 2) 운영서버에서부하캡처 에러발생 SQL Plan 변경으로인한성능저하 과부하로인한서비스중단 자원부족으로인한서비스중단 예기치못한 Side Effect 에의한성능저하 솔루션적용 암호화등 3rd Party 솔루션적용 기능제약또는성능저하 주변시스템변경 OS, 스토리지구성변경 < 표 1> DB 인프라변경에따른위험요소 Application Workload 운영 DB 서버 < 그림 1> DB Replay 실행 Flow 업그레이드또는 Patch Set Capture Pre-process 에러발생또는성능저하 테스트 DB 서버 EM or CLI Workload Replay
3) 캡처된파일을테스트서버로이동 4) 캡처파일전처리 (Pre Processing) 5) 테스트서버에서 Replay 6) 캡처와 Replay 의 Workload 분석및리포팅 DB Replay는최소한의시스템오버헤드로운영시스템상에서워크로드를캡처하고실제워크로드와동일한시간, 동시성및트랜잭션속성을테스트시스템에 Replay할수있다. 또한특정 User의워크로드만 Replay가가능하며캡처한워크로드의일부분만 Replay도가능하다. 전체부하테스트를할수있다는장점이외에기존의샘플링방식의테스트솔루션에서필요로하는업무분석및워크로드샘플링, 스크립트작성등테스트툴전문가가해야하는부담이필요없기때문에테스트서버준비를제외한실직적인부하테스트를빠르면일주일이내에완료할수있다. DB Replay는크게 4 Step으로프로세스가진행되는데이는다음과같으며 1) 워크로드캡처 2) 워크로드파일처리 3) 워크로드 Replay 4) 분석및리포팅이에대한상세한설명은지난봄호에본지에서소개된바있다. Step 1 : 워크로드캡처 Step 2 : 워크로드파일처리 Production System Test System Step 3 : 워크로드 Replay Step 4 : 분석및리포팅 < 그림 2> DB Replay 4 Step EM12c를활용하면 < 그림2> 와같은작업을 GUI 환경에서정해진 Flow대로손쉽게작업을수행할수있다. 메뉴를통해서 DB Replay 화면으로들어가면 4에서 와같이 Step 별로각작업이메뉴로펼쳐지며맨오른 쪽의 작업으로이동 버튼을누르면실제작업을수행 할수있다. ❶ EM12 로그인화면 ❸ 데이터베이스메뉴 성능 데이터베이스재생 (DB Reolay) 선택 ❺ 작업버튼을누르면단계적수행화면으로전환되고여기에서 SQR 문도캡처할것인지, 캡처파일저장디렉토리등여러가지옵션을선택할수있다 < 그림 3> EM12c 를통한 DB Replay 수행 RAT 의또다른기능인 SQL Performance Analyzer (SPA) 는 SQL 실행계획 (Execution Plan) 에영향을미치 는변경은시스템성능과가용성에심각한영향을미칠 수있기때문에 SQL 실행성능에영향을미치는모든 환경변경에서성능문제의예측및방지에초점을두고 < 그림 4> SPA 개요 ❷ 메뉴 대상 (Target) 데이터베이스선택 ❹ 데이터베이스로그인후작업목록확인후작업으로이동버튼클릭 있다. SPA 를통해 SQL 의 전수검사 ( 모든개별 SQL 의 PLAN 과성능검증 ) 도 가능하며 SQL 튜닝셋, 튜 닝어드바이저와같이연동 하여분석이가능하다. 047
048 SPA 의특징을간단히요약하면아래와같다 SQL Workload Response Time 을시스템변경에따른예측을 할수있다. SQL 실행계획및통계정보를통해변경전 / 후성능정보차이를비 교가능하다. (Before/After Changes) 성능차이 Report 를통해성능분석이가능하다. 운영서버 10.2.0.4 Capture AQLs into a STS < 그림 5> SPA 실행 Flow 구분기존 SQL 전수검사 Oracle SPA 방법 Real Application Testing 활용사례 앞에서설명했듯이 RAT 솔루션은최소한의노력으로 테스트를통해 DB 또는시스템환경변경에따른부작 용을미연에방지할수있다. 그렇다면이러한솔루션 을실제환경에서어떻게활용되어지고있는지살펴보 도록한다. 테스트서버 10.2.0.4 Case1) 버전업그레이드사례 DB 버전업그레이드사례는 RAT 가활용될수있는 가장보편화된사례라고할수있다. Oracle 11g 의경우 성능, 가용성, 보안, 압축, 관리등여러가지측면에서 다양한신기술을통해많은 Benefit 을얻을수있기때 문에업그레이드작업이활발하게진행되고있고이와 더불어 RAT 를적용하는사용자가꾸준히늘어나고있 다. 다음사례는 SPA 와 DB Replay 를적용하여완벽한 테스트를통해 Oracle 9i 에서 11g 로데이터베이스버전 을업그레이드를성공적으로수행한사례이다. 사례개요 : Oracle 9.2.0.8 버전 11.1.0.6 으로 Direct 버전업 그레이드프로젝트 Remote SQL Exec Statistics EM 또는 CLI 테스트서버 11.2.0.2 Application 담당자가각자프로그램에대한단위테스트를수행또는전문컨설팅업체에의뢰 EM 또는 CLI 로자동화 테스트범위 100% 전수검사가어려움 100% 전수검사가용이함 테스트시간 수주일 ~ 한달이상 수일 ~ 1~2 주 < 표 2> 기존 SQL 전수검사와 Oracle SPA 비교 1) 운영서버 (10gR2) 에서 STS 속출 2)STS 를 EM Repository DB 로적재 3) 테스트서버 (11gR2) 구축 4) 테스트서버 ( 변경전 ) 에서 STS 실행 ( 또는 STS 에저장된 Plan/ 성능정보활용 ) 5) 테스트서버 ( 변경후 ) 에서 STS 실행 6) 변경전후의 SQL 자동분석및리포팅 * STS:SQL Tuning Set [SPA 실행 Flow] SQL Performance Analyzer 업그레이드이전에 plan 의변경을감지해냄 Init.ora 의초기화파라메터들을최적화할수있었음 운영상피크타임의부하정도가신규시스템에서는어떤양상 을보이는지, 모든애플리케이션이문제없이동작하는지를확 인할수있었음 SQL Profiling 쿼리와리포팅, 배치작업등의속도향상 기대효과 : 애플리케이션변경이전혀필요없었고테스트비용을 50% 절감하였으며성공적으로시스템 Open < 그림 6-1> SQL Performance Analyzer 로 Plan 변경감지 Nightly Batch Workload < 그림 6-2> DB Replay 를통한전체부하테스트 Case2) 이중화서버한대장애시 Workload 수용가능성 ( 실제부하환경 ) 사례개요 : RAC 구성에서 1Node 장애발생시 Single DB 운영 가능성테스트 Event 10046... Mapping Table Ad Owner Name 123 SH1 BAL1 124 SH2 CU8T Upgrade Upgrade Pre-process >>Copy>> >>exp / imp>> STS Replay < 그림 7> RAC 구성에서 1Node 장애발생시 Single DB 운영가능성테스트 SQL Performance Analyzer Database Replay
수행방법 Workload Capture는 DB 서버 (RAC) 에서약 2시간동안진행하고, 이를 Single DB로구성된 Test 서버에서 Workload를 Replay 함. Test 서버의 Spec은운영 DB 서버의한쪽 Node의 Spec과같으며, Test 서버는 DR 서버를활용함. ( 스토리지복제솔루션의동기화를끊고구성 ). DB Replay Client(=wrc) 는동일서버 (Test 서버 ) 에서기동하였음. 운영서버에영향도는매우미미함 (5% 이하 ) 2시간에약 50GB의캡처된파일이생성됨 캡처된파일을프로세싱하는데약 2시간정도소요됨 Async 모드로워크로드 Replay 를수행함 기대효과 : CPU 에대한 Contention의증가수준은미미하나, User I/O, Commit Wait Class가증가는 Storage Server로의 Contention이증가했음을확인. 실제부하에서 RAC 이중화구성에서 1대장애시에도나머지한대로운영가능함을검증 Case3) 차세대시스템 DB튜닝사례차세대시스템의성공적인 Open 을위해서는애플리케이션검증테스트뿐만아니라인프라관점에서성능테스트와튜닝이매우중요한역할을하는것은누구나주지하는사실이다. 하지만기존의테스트방식에서는 SQL 튜닝만하기위해서라도 Client - 미들Tier DBMS 등전체적인범위에서애플리케이션부하를발생시켜야하고이를위해서는 Client 부하발생, 애플리케이션, 미들웨어, DBA 등모든테스트인원이동원되어야하고그만큼시간과노력에낭비가발생할수있다. DB Replay를활용하면최초부하발생이후 SQL 튜닝을위한테스트에서는 Client나미들 Tier의역할없이도테스트가가능하기때문에더욱효과적으로프로젝트를수행할수있다. 사례개요 : 차세대프로젝트에서효율적인 SQL튜닝을하기위한 DB Replay 활용 운영장비에서테스트된부하를캡처하고이를 Data Guard를통해생성된 Physical Standby를통해서테스트를수행함 기대효과 : Physical Standby 와 Database Replay를활용하여적은인원으로집중적인테스트수행이가능하여효과적인 SQL 튜닝을수행함결론기업의 IT 환경에서서비스수준향상을위해테스트가차지하는비중은날로커지고있으며특히더욱복잡해지는인프라에서는시스템및 S/W의작은변경에도반드시운영환경에반영하기전에테스트를수행해야한다. 기업의비즈니스가확대됨에따라 IT 인프라도꾸준히늘어나고있기때문에끊임없는변경과테스트에대한요구가날로증가하고있는실정이다. 과거에는이러한변경에대한테스트를솔루션에의지하지않고 IT 인력으로소화해냈지만요즘처럼복잡다양해진환경에서는기존방식대로의테스트는향후운영리스크를크게증가시키는결과를초래한다. 오라클은효율적인테스트를위해다양한테스트솔루션들을제공하고있다. 애플리케이션의품질및성능등을측정하는통합된솔루션인 Oracle ATS(Application Testing Suite Oracle Functional Testing, Oracle Test Manager, Oracle Load Testing 으로구성 ) 를제공하며지금까지소개된 DB인프라의변경에대해실제업무부하로전수검사가가능한 Oracle RAT(Real Application Testing) 솔루션을제공한다. 이러한솔루션을적용함으로써사용자가얻을수있는기대효과는운영환경위험을줄이고결국비즈니스비용을절감할수있는혜택을누릴수있다. 049