백년교육을위한차세대나이스 (NEIS) 시스템의선택 2011/06/16 Jey Koh, Seoul 1
Agenda 1. 프로젝트개요 2. 데이터베이스구축기술 데이터베이스이중화 가상화 효율적이행 3. 맺음말 2
1. 프로젝트개요 (1) 추진배경 교육행정정보 ( 나이스 ) 시스템 2002년전국교육 / 행정기관연결하는전사적처리시스템구축 ( 인사, 회계, 교무 / 학사, 급여, 민원서비스등교육행정전영역의서비스, 오라클 ) 2005년교무 / 학사분리구축 ( 학교별서버 3,800여대, 큐브리드 ) DB 서버문제점 너무많은서버대수에따라운영비용증가 장비노후화 ( 단종 ) 매년 10% 이상사용자증가로극심한성능저하 교무 / 학사업무의이중화미구성 ( 예 ) 경기도교무업무수량 ( 대 ) DB 서버 539 3
1. 프로젝트개요 (2) DB 개선방향 서버통합 : 시 / 도교육청단위로학교급별통합 ( 초 / 중 / 고 / 특수, 평생 ) 이중화 : 데이터베이스이중화및스토리지이중화 데이터베이스보안 : 민감한데이터에대한암호화 DB1 DB1 이중화초등학교중학교고등학교특수 / 평생 초등학교 중학교 고등학교 특수 / 평생 XXX 교육청이중화DB2 초등학교중학교고등학교특수 / 평생 초등학교중학교고등학교특수 / 평생 * 데이터암호화솔루션적용 : e-global (CubeOne) 4
1. 프로젝트개요 (3) 구축규모 : 16 개시도 * 10 개업무용 DB + 총괄센터 5 개업무용 DB ( 이중화대상은 161 개이며, 총 326 개운영 DB 인스턴스 ) DB2 DR DB2 DR DB2 DR DB2 DR DB2 DR DB2 DR 총괄센터서울교육청부산교육청대구교육청인천교육청광주교육청 DB2 DR DB2 DR DB2 DR DB2 DR DB2 DR DB2 DR 대전교육청울산교육청경기도교육청강원도교육청충청북도교육청충청남도교육청 DB2 DR DB2 DR DB2 DR DB2 DR DB2 DR 전라북도교육청전라남도교육청경상북도교육청경상남도교육청제주도교육청 5
1. 프로젝트개요 (4) DBMS 선정을위한비교검토 구분 IBM DB2 Oracle 고가용성구성 DR( 복제기반 ) RAC( 공유스토리지기반 ) 성능 TCO 10~20% 성능우위 5 년간약 300% 이상비용절감 Clustering Overhead(Shared Disk) 로인한상대적인성능부담 안정성및검증 Reference 국내외안정성및검증레퍼런스다수확보 6
(1) 데이터베이스이중화 > DB2 DR 초고속장애복구성능 장애복구시 Cluster 서버재그룹및분산 Lock 구성시간이소요되지않아매우신속하게복구합니다. ( 약 10 초이내 ) 서버장애외에디스크장애에대해서도대처가가능합니다. Automatic Client Reroute 용이한구축및관리 구축및관리비용이적게소요되며, 응용프로그램에대한디자인고려가불필요합니다. 서비스팩설치시서비스중단없이 Rolling Upgrade 를할수있습니다. Primary Standby 보다저렴한비용 디스크가추가됨에도불구하고 Active/Active 솔루션에비해소프트웨어라이센스비용이나유지보수비용절감이크므로, 매우비용효율적인이중화구성입니다. Database Primary DR Database Standby 가장우수한성능 효율적인로깅알고리즘에의해처리성능이매우우수합니다. 장애후에도장애이전성능이보장됩니다. 7
(1) 데이터베이스이중화 > DB2 DR 2대의서버에동일한데이터베이스를유지함으로써, 장애발생시즉각적인대응위한데이터베이스고가용솔루션 내장된클러스터 (TSA) 에의해자동으로장애감지및복구작업수행 Automatic Client Reroute 장애발생시복구절차 1. 장애감지 : 장애가발생되면내장된클러스터에의해장애상황을자동감지 ( 자동 ) tx tx DR (Sync 유지 ) tx tx 2. 서비스이관 : Takeover 되어, Standby 서버가서비스를대신수행 ( 자동 ) 3. 재결합 : 장애서버가정상상태가되면, 클러스터는장애서버를 Standby 서버로자동구성하고, 데이터동기화수행 ( 자동 ) 4. 서버스위치 : 트랜잭션부하가없는시점에 Takeover 명령을통하여두서버간역할을원래대로변경 ( 수작업 ) Primary Standby Server Standby Server *TSA : Tivoli System Automation 의약어 8
(1) 데이터베이스이중화 > 장애복구 TSA 장점 수동적인 Script 작성불필요 db2haicu유틸리티제공으로구성이매우간단 서버장애복구시자동으로 Reintegration 수행 장애유형 장애복구 Action OS 시스템 Public Network DB2 프로세스 Private Network Standby 서버로 Takeover Standby 서버로 Takeover Standby 서버로즉시 Takeover Primary 서버에서다시살리려고재시도후, 실패하면 Standby 서버로 Takeover No action Standby로데이터동기화가일시정지되며문제가해결되면자동으로동기화재시작 *TSA : Tivoli System Automation 의약어 9
(2) 가상화 서버가상화는다수의작은서버들을하나의대용량서버로통합하는기술로써, 개별적 Virtual Machine 은분리된런타임환경제공 단일 CPU 를최소 1/10 단위까지분할할당하는마이크로파티셔닝 유휴 CPU 자원을실시간으로할당하는공유프로세서풀링기능 파티션간의실시간자원이동을위한 DLPAR 기능 Micro-Partition Dynamic LPAR Virtual I/O IVE NPIV VIOS FC adapter Vir.FC Vir.FC Power Hypervisor 하나의 CPU 를 10 개의서버처럼파티션할당 파티션자원의동적인재할당 VIOS(Virtual I/O Server) 를통한 I/O 자원공유 Network 가상화 FC Adapter 의가상화 Multiple Virtual Shared Pool Live Partition Mobility Workload Partition Live Application Mobility Active Memory Sharing 15 10 5 Night Day 0 CPU 자원을여러개의가상 Pool 로구성하여공유 박스간의파티션이동 하나의 OS 에여러개의파티션할당 WPAR 를파티션간이동 여러파티션들이하나의메모리풀을공유 10
(2) 가상화 > DB 서버가상화 1. 다수의데이터베이스를통합하는환경 2. 개별데이터베이스의시스템리소스에대한정확한예측어려움 ( 특히 Peak Time) 3. 시스템리소스를많이필요로하는인스턴스에다른파티션의여유리소스를끌어당겨운용함으로써, 전체적인리소스활용율을증가시키고, 성능향상효과 4. Active/Standby환경에서 Standby의 CPU 리소스는거의사용되지않음 (DB2 DR환경은약 5% 미만 ) 11
(2) 가상화 > 인스턴스구성 두대의분리된서버에, 전체적으로비슷한규모의 Workload를가지도록배치 업무별 tpmc 요구량에따라서버 1에는 57% 의업무를, 서버 2에는 43% 의업무를배치 실시간업무 Workload에따라동적으로 Active/Standby Role Switch 가능 CoD (Capacity On Demand) : 각서버의예비유휴자원 교무업무 교무업무 일반행정 일반행정 대국민서비스 공통관리 DR 대국민서비스 공통관리 Active Cod 영역 Cod 영역 Standby < 참고 > 업무별 tpmc 요구량 구분나이스업무 ( 교무 ) 나이스업무 ( 일반 ) 대국민서비스공통관리 업무별 Tpmc 비율 56.88% 22.75% 11.27% 9.10% 12
(2) 가상화 > Standby 의효율적자원활용 Standby 및자원을덜사용하는 Primary 파티션의여유자원활용 Shared Pool 의리소스가동적으로 Busy 한파티션에할당됨 Peak Time 에 Workload 가큰업무의성능을개선 교무업무 교무업무일반행정대국민서비스공통관리 Cod 영역 DR 일반행정대국민서비스공통관리 Cod 영역 Peaktime Active Standby *Shared Pool : 서버내 Shared Partition 및 Cod 영역의공유리소스 13
(2) 가상화 > DB2 가상화지원 STMM(Self Tuning Memory Manager) 가용할수있는시스템상메모리자원을자동으로조절하고사용 -> Throughput 최대화 Automatic configuration parameters 인스턴스가동중에메모리구성변수를동적으로변경가능증가된또는감소된 CPU 자원에유기적적응 14
(3) 효율적이행 > 데이터타입 기존데이터베이스의데이터타입은 DB2 와모두호환되므로 100% 데이터이행가능 DB2 BOOLEAN SMALLINT INTEGER BIGINT FLOAT REAL DOUBLE DECIMAL(p,s) NUMERIC(p,s) LOB (BLOB, CLOB, DBCLOB) DATE TIME TIMESTAMP Cubrid BIT SMALLINT INTEGER BIGINT FLOAT(n) REAL DOUBLE DECIMAL(p,s) NUMERIC(p,s) BIT VARYING(n) Large Object(GLO) DATE TIME TIMESTAMP DATETIME Oracle BIT, BOOLEAN NUMBER(p) NUMBER DOUBLE NUMBER(p,s) LOB (BLOB, CLOB, NCLOB) DATE TIMESTAMP CR(n) CR(n) CR(n) VARCR(n) VARCR(n) VARCR2(n) 15
(3) 효율적이행 > SQL 함수 Oracle 의독특한 SQL, Built-in 함수, 동시성등을 Native 로지원 개발자는새로운 DB2 프로젝트에서도기존보유기술그대로활용가능 소스코드의 95% 이상그대로사용 표준 SQL + Oracle SQL = DB2 SQL Oracle PL/SQL NUMBER DATE VARCR2 CONNECT BY, DBMS_OUTPUT SQL 92, SQL/PSM (aka SQL PL) recursion,.. DB2 INTERVAL,.. SQL Standard GRAPHIC SELECT FROM INSERT 16
(3) 효율적이행 > Tools ( 무상제공 ) Infosphere Federation Server 는이기종데이터베이스에대한연결을지원하는제품으로, Oracle 데이터이 행작업시직접소스데이터베이스에연결하여, Target 데이터베이스로데이터이행지원 오라클스키마를 DB2 스키마로자동이행을위해 IBM Data Movement Tool 지원 Oracle DBOWN.TABLE_A Infosphere Federation Server ORA10.TABLE_A DB2 DBOWN.TABLE_A 17
(3) 효율적이행 > 고려사항 테이블설계 VARCR(4000)? -> CLOB CR(8) 대신 DATE CLOB : Record 길이한계 (32K) DECFLOAT : 연산성능 18
(3) 효율적이행 > 고려사항 사용자정의함수 하나의 SQL구문으로값을구할수있다면 INLINE으로생성 성능우수 ( 호출 SQL문에삽입수행 ) CREATE REPLACE FUNCTION FN_SUBJ_NM ( I_CD IN VARCR2 ) RETURN VARCR2 IS V_SUBJ_NM TB_PCC_BGSBJ_I_O.FNFU_SUBJ_NM%TYPE; BEGIN BEGIN SELECT NVL(FNFU_SUBJ_NM,'') INTO V_SUBJ_NM FROM TB_PCC_BGSBJ_I_O WHERE FNFU_SBCD = I_CD; END; RETURN(TRIM(V_SUBJ_NM)); END FN_SUBJ_NM; CREATE FUNCTION "PCCS"."FN_SUBJ_NM" ( I_CD CR(3) ) RETURNS VARCR(50) RETURN ( SELECT NVL(FNFU_SUBJ_NM,'') FROM TB_PCC_BGSBJ_I_O WHERE FNFU_SBCD = I_CD); 19
(3) 효율적이행 > 고려사항 오라클호환모드 초기데이터베이스생성시설정되어야하는기능 - Data Types (Number, Varchar2, Date) - Dictionary Views 데이터베이스생성이후설정가능 - ROWNUM - DUAL - OuterJoin(+) - Connect BY - PL/SQL etc.. 20
(3) 효율적이행 > 고려사항 Varchar2 호환모드 (0x20) Empty String = Null Trailing Blanks Grouping 문제 Trim 함수 -> 재개발정도에따라사용여부결정 21
(3) 효율적이행 > 고려사항 Date 호환모드 (0x40) Oracle : Date & Time 날짜연산복잡 TO_CR 함수 DB2 : Date Only 날짜연산간단 -> 재개발정도에따라사용여부결정 22
3. 맺음말 차세대나이스 DBMS 구성요약 구분소프트웨어장애대비 Server 장애대비디스크장애대비무중단서버유지보수작업무중단버전Upgrade 지원 구현여부구현구현구현구현구현 구현내용클러스터를통한자동복구클러스터에의해이중화서버로자동전환이중화서버로전환이중화서버로전환후, 서버작업수행이중화서버로전환후, 업그레이드수행 구성및모니터링의편리성 단순 내장된클러스터 (TSA) 및 db2haicu 유틸리티 고가용성구성을위한추가요구 SW 없음 이중화구성은데이터베이스에서기본제공 데이터암호화 구현 CubeOne (3 rd Party) 자원활용극대화 구현 Workload에따라유기적인자원활용가능 Standby 자원활용 구현 Shared Pool기능활용 23
3. 맺음말 TCO 절감및최고의서비스품질에기반한데이터베이스시스템구축 비용 라이센스도입비용및유지보수비용절감 비용절감 서비스 DB2 의우수한성능으로향상된서비스보장 향상된서비스품질 변화 / 경쟁 위험분산 역량강화 리스크갑작스런장애에유연하게대응할수있는고가용성 역량 다양한데이터베이스에대한기술역량축적에따른직원의역량향상 24
25