효율적인 migration 방안

37

Upload: venecia-arthur

Post on 04-Jan-2016

131 views

Category:

Documents


0 download

DESCRIPTION

효율적인 Migration 방안. 최인규 과장 솔루션 사업본부 Andsome & Company. 목 차. Migration 개요 데이터 베이스 개체 이관 데이터 베이스 이관 도구 SwisSQL DEMO. Migration 개요. 데이터 통합. 엔터프라이즈 환경. 기술 환경 변화 대응. 유지비용의 절감. 시장 환경 및 기업의 요구.  상용 DBMS 의 고가 업그레이드 또는 도입비용의 문제점 . 경쟁력 강화를 위한 다양한 인력 및 저가 유지보수 플랫폼 선호 . - PowerPoint PPT Presentation

TRANSCRIPT

최인규 과장솔루션 사업본부Andsome & Company

최인규 과장솔루션 사업본부Andsome & Company

효율적인 Migration 방안효율적인 Migration 방안

Migration 개요 데이터 베이스 개체 이관 데이터 베이스 이관 도구 SwisSQL DEMO

Migration 개요 데이터 베이스 개체 이관 데이터 베이스 이관 도구 SwisSQL DEMO

목 차목 차

Migration 개요Migration 개요

시장 환경 및 기업의 요구 상용 DBMS 의 고가 업그레이드 또는 도입비용의 문제점 .   경쟁력 강화를 위한 다양한 인력 및 저가 유지보수 플랫폼 선호 .   기업 합병으로 DataBase & Application 의 일관성 확보 절실 .  .NET 과 SQL Server 개발환경 서비스 보편화와 다양한 기술 보유 전문인력 활용 필요 . 낮은 TCO ( 총소요비용 ) 를 요구하는 경영진의 Needs 충족 .

데이터 통합

유지비용의 절감 기술 환경 변화 대응

엔터프라이즈 환경

유지보수 비용 인상으로 인한 관리 비용 절감 요구 .

  기업 합병으로 인한 시스템 환경 통합 .

  기존 C/S 및 개발 플랫폼의 .NET 환경으로의 전환 .

  윈도우 환경의 DB 일원화 및 쉬운 GUI 를 통한 시스템 운영 요구 .

  기술 환경 대응을 위한 플랫폼 전환 요구 .( ex, BI 환경 , Media 센터 ,

멀티미디어 환경 , etc. )

효율적인 Migration 방법 요구

Migration 범위 산정 (DB, Application, Data 통합 , etc.)

Migration 을 위한 효율적인 분석 및 설계 제공 (Assessment Tool)

자동화된 Migration 수행 (Migration Tool)

빠른 수행을 통한 전체 소요시간 및 소요비용 절감

Migration 을 통해 요구에 맞는 안정된 시스템 운영 , 검증 ,

테스트 제공

무엇을 먼저 고려 해야 되는지 ? 어떤 정보를 옮겨야 되는지 ? 어떻게 수행해야 되는지 ? 얼마의 시간이 걸릴지 ? 어느 정도의 소요비용이 소요될지 ? 과연 얼마 만큼의 효과를 가져올지 ?

효율적인 Migration 수행을 위한 자동화가 필요

Migration 을 분석 , 변환 , 검증 및 적용 단계로 구분하여 진행하며 , Migration 의 최종 목표는 안정적인 현장 적용에 있으므로 이를 위해 검증 및 적용 단계에 집중합니다 .

Migration 수행 절차

1. 분석

환경 (OS, DB)

Objects

Application SQL

분석단계 (2 주 )

3. 데이터 이전 (3 일 )

Data Migration Tool

DTS 구축

5. 현장 적용 (2 일 )

배포 전 테스트

배포

4. 시험 및 튜닝 (3 주 )

데이터 이전 테스트

배포 & 병행운영 Test

튜닝

모니터링

검증 및 적용 단계 (4 주 )

Application SQL

2.1. 환경구축

2.2. 변환

OS(Windows 2K Svr)

DB(MS SQL Server)

Table

View

Index

Application SQL

2.3. Build In

Table

Constraint

2.4. 제한사항 설정

Constraints

Index

Collate

변환단계 (5 주 )

Assessment Suite

Migration Suite

Application Migration Sutie

Migration 분석

Migration 수행

검증 및 튜닝

튜닝Migration 수행

검증 및 적용

Migration 분석업무 영역 정의

분석 시간 낭비

업무정의 불확실

불일치 데이터 발생

업무 재정의

Process 보정 작업

오류 보정 작업

Migration 상의 데이터 오류

검증 상 오류 – 재 수행

Migration 과정 비교 Migration 과정 비교

약 50% 이상의 시간절감 효과

약 50% 이상의 비용절감 효과

약 80 ~ 90% 변환율 제공

인력 기반 Migration 과정

솔루션 기반 솔루션 기반 Migration Migration 과정과정

데이터베이스 개체 이관데이터베이스 개체 이관

..

RDBMS 가 얘기하는 아키텍처 및 용어가 서로 상이하여 둘을 정확히 매핑하는 것이

어렵고 새로운 환경에 적용 시키는 마이그레이션 프로세스는 복잡해 보일 수 있습니다 .

또한 각 업체마다 SQL-92 표준에서 독자적인 확장을 많이 하여 차이점을 보이지만

이러한 차이점을 빨리 이해하면 마이그레이션에 큰 영향을 끼치지는 않습니다 .

개 요

데이터 형식Oracle Microsoft SQL Server

CHAR char 형식 열은 고정된 저장소 길이를 사용합니다 . 따라서 varchar 열보다 좀더 빠르게

액세스할 수 있으므로 char 를 사용할 것을 권장합니다 .

VARCHAR2LONG CLOB

varchar 또는 text 를 사용합니다 . Oracle 열의 데이터 값 길이가 8000 바이트 미만이면 varchar 를 사용하고 그렇지 않으면 text 를 사용해야 합니다 .

RAWLONGRAWBLOB

varbinary 또는 image 를 사용합니다 . Oracle 열의 데이터 값 길이가 8000 바이트 미만이면 varbinary 를 사용하고 그렇지 않으면 image 를 사용해야 합니다 .

NUMBER

1 에서 255 사이의 정수이면 tinyint 를 사용합니다 . -32768 에서 32767 사이의 정수이면 smallint 를 사용합니다 . -2,147,483,648 에서 2,147,483,647 사이의 정수이면 int 를 사용합니다 . 부동 소수점 형식의 숫자가 필요하면 정밀도와 배율이 있는 numeric 을 사용합니다 . 참고 : float 또는 real 은 반올림이 이뤄질 수 있으므로 사용하지 마십시오 . Oracle NUMBER 및 SQL Server 의 numeric 에서는 반올림이 이뤄지지 않습니다 . 확실히 알 수 없으면 Oracle NUMBER 데이터 형식과 거의 비슷한 numeric 을 사용하십시오 .

DATE datetime

ROWID identity 열 형식을 사용합니다 .

CURRVAL, NEXTVAL identity 열 형식 및 @@IDENTITY, IDENT_SEED(), IDENT_INCR() 함수를 사용합니다 .

SYSDATE GETDATE()

USER USER

Oracle Sequence

CREATE TABLE TEST1 (SEQ INT, COL1 INT, COL2 VARCHAR(10)) SQLSERVER - 시퀀스 정보 저장할 테이블 생성 CREATE TABLE SEQ_TAB (SEQNAME VARCHAR(30), CURRVAL INT, INCREMENTBY INT) INSERT INTO SEQ_TAB VALUES ('TEST1_SEQ', 98, 2) 시퀀스 사용 전에 테이블 업데이트를 먼저 수행할 것이므로 초기값보다 INCREMENT 값 만큼 작은 값을 저장한다 . SQLSERVER - 시퀀스 사용 DECLARE @SEQVAR INT UPDATE SEQ_TAB SET @SEQVAR = CURRVAL = CURRVAL + INCREMENTBY WHERE SEQNAME = 'TEST1_SEQ' INSERT INTO TEST1 VALUES (@SEQVAR, 120, 'AB') SELECT * FROM TEST1

SQL SERVER 에서 구현

CREATE SEQUENCE TEST1_SEQSTART WITH 100INCREMENT BY 2NOCACHE NOCYCLE;CREATE TABLE TEST1 (SEQ NUMBER(5), COL1 NUMBER(5), COL2 VARCHAR(10)) ORACLE - 시퀀스 사용INSERT INTO TEST1 VALUES (TEST1_SEQ.NEXTVAL, 120, 'AB');SELECT * FROM TEST1

ORACLE Sequence

IDENTITY 속성 Oracle 응용 프로그램이 SEQUENCE 를 사용하는 경우 Microsoft SQL Server

의 IDENTITY 속성을 사용하도록 쉽게 변경할 수 있습니다 .

Microsoft SQL Server IDENTITY

CREATE TABLE new_employees( Empid int IDENTITY (1,1), Employee_Name varchar(60),CONSTRAINT Emp_PK PRIMARY KEY (Empid))

@@IDENTITY(function)

IDENT_SEED(' 테이블 _이름 ')

IDENT_INCR(' 테이블 _이름 ')

SELECT, INSERT, UPDATE, DELETE 문에서 IDENTITY속성이 있는 열을 참조할 때 열 이름 대신 IDENTITYCOL 키워드를 사용할 수 있습니다 .

전세계의 모든 네트워크 컴퓨터의 모든 데이터베이스에 걸쳐 고유한 ID 열을 만들어야 하는 경우 , ROWGUIDCOL 속성 , uniqueidentifier 데이터 형식 및 NEWID 함수를 사용하십시오 . SEQUENCE 테이블을 만들어 사용할 수도 있습니다 .

데이터 무결성

무결성 형식 유지하는 방법

엔티티 무결성 PRIMARY KEY 제약 조건

UNIQUE 제약 조건 IDENTITY 속성

도메인 무결성

도메인 DEFAULT 정의 FOREIGN KEY 제약 조건 CHECK 제약 조건 Null 허용

참조 무결성

도메인 DEFAULT 정의 FOREIGN KEY 제약 조건 CHECK 제약 조건 Null 허용

사용자 정의 무결성

CREATE TABLE 의 모든 열 수준 제약 조건과 테이블 수준 제약 조건 저장 프로시저 트리거

응용 프로그램을 마이그레이션할 때는 , SQL Server 의 경우 완전한 고유 키 ( 단일 또는 다중 열 인덱스 ) 에 대해 한 행만 NULL 값을 포함할 수 있지만 , Oracle 에서는 완전한 고유 키에 대해 여러 행이 NULL 값을 포함할 수 있다는 사실에 유의해야 합니다 .

VIEW

CREATE VIEW TEST1_VASSELECT TOP 100 PERCENT * FROM TEST1ORDER BY SEQ

WITH READ ONLY 는 제거하고 SELECT 권한만 할당하여 같은 결과를 얻을 수 있습니다 . VIEW 제한 사항을 이해해야 합니다 .

CREATE VIEW TEST1_VASSELECT * FROM TEST1ORDER BY SEQ/*서버 : 메시지 1033, 수준 15, 상태 1, 프로시저 TEST1_V, 줄 4TOP 을 함께 지정하지 않는 한 뷰 , 인라인 함수 , 파생 테이블 , 하위 쿼리에서 ORDER BY 절을 사용할 수 없습니다 .*/

트리거

설명 Oracle Microsoft SQL Server

테이블 당 트리거 수 제한 없음 제한 없음

INSERT, UPDATE, DELETE 전에 트리거 실행 실행됨 INSTEAD OF옵션으로 구현

INSERT, UPDATE, DELETE 뒤에 트리거 실행 실행됨 실행됨

문 수준 트리거 있음 있음

행 수준 트리거 있음 없음

실행 전에 제약 조건 확인 트리거를 사용 해제하지 않은 한 확인함 확인함 . 데이터 변환 서비스의 옵션이기도 합니다 .

UPDATE 또는 DELETE 트리거의 이전 값 참조 :old DELETED. 열

INSERT 트리거의 새 값 참조 :new INSERTED. 열

트리거 사용 해제 ALTER TRIGGER 데이터 변환 서비스의 옵션

Oracle 과 SQL Server 는 약간의 차이가 있습니다 .

Oracle 의 BEFORE 트리거의 기능을 INSTEAD OF 트리거로 대신할 때 INSERT, UPDATE, DELETE 문을 추가해야 합니다 .

행 수준 트리거는 FULL OUTER JOIN 이나 커서로 변경할 수 있습니다 .

트리거 Oracle SQL Server 행 수준 트리거를 지원하지 않습니다 .

CREATE OR REPLACE TRIGGER trigger_new_old_each_row BEFORE UPDATE ON DEPT FOR EACH ROWBEGIN DBMS_OUTPUT.PUT_LINE('====== Executing BEFORE UPDATE Trigger FOR EACH ROW With :OLD,:NEW Clause Start ====== '); dbms_output.put('Old Location: ' || :OLD.LOC); dbms_output.put('New Location: ' || :NEW.LOC);END;

트리거 SQL Server

alter TRIGGER each_row ON DEPT INSTEAD OF UPDATE

ASBEGINIF @@ROWCOUNT = 0

RETURN

IF (SELECT COUNT(*) FROM inserted) > 0 AND (SELECT COUNT(*) FROM deleted) > 0BEGIN

UPDATE 입력 SET 입력 .a = new.a , DEPT.b = new.bFROM INSERTED NEW FULL OUTER JOIN DELETED OLD ON

NEW.a=OLD.bINSERT into 출력 (qty)SELECT NEW.LOCFROM INSERTED NEW FULL OUTER JOIN DELETED OLD ON NEW.a=OLD.aUPDATE DEPT

SET DEPT.deptno = new.deptno , DEPT.dname = new.dname , DEPT.loc = new.locFROM INSERTED NEW FULL OUTER JOIN

DELETED OLD ON NEW.DEPTNO=OLD.DEPTNO

행 수준 트리거 만들기

SQL 문 변환 ROWMUM 변환

SELECT FIRST_NAME, LAST_NAMEFROM EMPLOYEESWHERE DEPARTMENT_ID = 30AND ROWNUM < 5 -- 4 건만 출력

FROM 절에 rownum 사용

SELECT TOP 4 FIRST_NAME, LAST_NAME -- 4 건만출력FROM EMPLOYEESWHERE DEPARTMENT_ID = 30

TOP 문 사용

ORACLE

SELECT 절에 rownum 사용 SELECT rownum, first_name-- 결과 set 에 매겨진 번호 출력

FROM employeesWHERE department_id = 30

SQL SERVER

DECLARE @temptable TABLE (rownumber INTEGER IDENTITY NOT NULL, first_name VARCHAR(20))INSERT INTO @temptable SELECT first_nameFROM employees -- 결과 set 을 identity 컬럼을 가지는 임시테이블에저장WHERE department_id = 30SELECT *FROM @temptable

TEMP TABLE 을 이용 rownumber 부여

SQL 문 변환 모든 외부 조인을 SQL-92 표준 외부 조인 구문으로 변경합니다 .

ORACLE

SQL SERVER

SELECT S.SSN AS SSN,FNAME, LNAMEFROM STUDENT_ADMIN.STUDENT S,DEPT_ADMIN.CLASS C,STUDENT_ADMIN.GRADE GWHERE S.SSN = G.SSN(+)AND G.CCODE = C.CCODE(+)

SELECT S.SSN AS SSN,FNAME, LNAMEFROM STUDENT_ADMIN.GRADE GRIGHT OUTER JOINSTUDENT_ADMIN.STUDENT SON G.SSN = S.SSNLEFT OUTER JOINDEPT_ADMIN.CLASS CON G.CCODE = C.CCODE

SQL 문 변환

변환 Oracle Microsoft SQL Server

문자를 숫자로 TO_NUMBER('10') CONVERT(numeric, '10')

숫자를 문자로 TO_CHAR(10) CONVERT(char, 10)

문자를 날짜로

TO_DATE('04-JUL-97')TO_DATE('04-JUL-1997', 'dd-mon-yyyy')TO_DATE('July 4, 1997', 'Month dd, yyyy')

CONVERT(datetime, '04-JUL-97')CONVERT(datetime, '04-JUL-1997')CONVERT(datetime, 'July 4, 1997')

날짜를 문자로 TO_CHAR(sysdate)TO_CHAR(sysdate, 'dd mon yyyy')TO_CHAR(sysdate, 'mm/dd/yyyy')

CONVERT(char, GETDATE())CONVERT(char, GETDATE(), 106)CONVERT(char, GETDATE(), 101)

16 진수를 이진수로 HEXTORAW('1F') CONVERT(binary, '1F')

이진수를 16진수로

RAWTOHEX(binary_column)

CONVERT(char, 이진 _열 )

Oracle 함수를 적절한 SQL Server 함수로 바꿉니다 . 지원하지 않는 함수는 사용자 정의 함수 및 임시테이블을 이용하여 만들어야 합니다 . 이 과정은 많은 시간이 소요될 수 있습니다 . 예를 들면 SQL Server 는 Oracle 의 START WITH..CONNECT BY 를 지원하지 않습니다 . 또한 수치관련 함수 사용시 Oracle 의 묵시적형 변환을 명시적으로 변환해야 합니다 .

SQL 문 변환

항목 ORACLE MSSQL 비고

모사

NVL (string, TRUNC(sysdate))

ISNULL (string, CONVERT (datetime, CONVERT(VARCHAR, getdate(), 112))

TO_DATE (string, ’yyyymm’)

CONVERT(DATETIME, string + ’01’)

ADD_MONTH(date, a) DATEADD(M, a, date)

TO_CHAR(date, ‘yyyymm’)

SUBSTRING ( CONVERT (VARCHAR, date,112),1,6)

112 :=‘yyyymmdd’

SUBSTR(str, a, b) SUBSTRING (str, a, b)

LAST_DAY ( date) DATEADD(D, -DAY( DATEADD(M, 1, date)), DATEADD (M, 1, date))

MAX (a) MAX (a)

TRUNC (date) CONVERT (DATETIME, CONVERT( VARCHAR, date, 112))

MONTH_BETWEEN (date1, date2)

DATEDIFF (MONTH, date2, date1)

DECODE (col, a, b, c ) CASE col WHEN a THEN b ELSE c END

함수 변환 예

SQL 문 변환

SELECT A2%5 FROM TEST2

SELECT GREATEST (A1, A2, A3) FROM TEST2

SELECT LEAST (A1, A2, A3) FROM TEST2

SELECT CEIL (A1) FROM TEST2

SELECT MOD(A2, 5) FROM TEST2

ORACLE SQL SERVER

SELECT CASE WHEN CASE WHEN A1 > A2THEN A1 ELSE A2 END > A3THEN CASE WHEN A1 > A2THEN A1 ELSE A2 END ELSE A3ENDFROM TEST2

SELECT CASE WHENCASE WHEN A1 < A2THEN A1 ELSE A2 END < A3THEN CASE WHEN A1 < A2THEN A1 ELSE A2 ENDELSE A3 ENDFROM TEST2

SELECT CEILING (A1) FROM TEST2

SQL 문 변환

SQL Server 처리1. SELECT 이름 FROM Table where 아빠 = '4530‘ 의 결과를 테이블 변수에 넣는다 .2. 테이블 변수와 zaa04mt 를 조인하여 루프를 돌려 계층구조를 만들고 테이블 변수에 넣는다 .3. 결과물을 사용자 정의함수로 만들어 호출한다 .

START WITH ..CONNECT BY 처리 예

SELECT 이름 FROM Table START WITH 이름 = '4570' CONNECT BY 아빠 = PRIOR 이름1. 이 문장은 처음 이렇게 시작된다 . SELECT 이름 FROM Table where 아빠 = '4530‘2. 결과로 반환된 이름 ?(4620,4600,4640,4511,4540,4570) 로 다음 문장이 실행된다 . SELECT 이름 FROM Table where 아빠 = ?3. 결과가 없을 때까지 이 과정이 계속된다 .

SQL 문 변환Lag 함수 이해

오라클 도움말 참조

SELECT last_name, hire_date, salary, LAG(salary, 1, 0) OVER (ORDER BY hire_date) AS prev_salFROM employeesWHERE job_id = 'PU_CLERK';

LAST_NAME HIRE_DATE SALARY PREV_SAL------------------------- --------- ---------- ----------Khoo 18-MAY-95 3100 0Tobias 24-JUL-97 2800 3100Baida 24-DEC-97 2900 2800Himuro 15-NOV-98 2600 2900Colmenares 10-AUG-99 2500 2600

SQL 문 변환Lag 처리 예

CREATE TABLE EMPLOYEES(LASTNAME CHAR(10),HIRE_DATE SMALLDATETIME,SALARY INT)INSERT EMPLOYEES VALUES('TOP','2000-01-01',2000)INSERT EMPLOYEES VALUES('KHOO','2000-02-02',3000)INSERT EMPLOYEES VALUES('BAIDA','2000-03-02',4000)

SELECT A.LASTNAME, A.HIRE_DATE,A.SALARY,A.PREFROM(

SELECT TOP 1 LASTNAME, HIRE_DATE, MIN(SALARY)SALARY, 0 PREFROM EMPLOYEESGROUP BY LASTNAME, HIRE_DATEORDER BY MIN(SALARY)

)AUNION ALLSELECT A.LASTNAME, A.HIRE_DATE, A.SALARY, B.SALARYFROM EMPLOYEES A, EMPLOYEES B--WHERE A.JOB_ID = 'PU_CLERK'--AND B.HIRE_DATE =WHERE B.HIRE_DATE =(

SELECT TOP 1 HIRE_DATEFROM(

SELECT TOP 100 PERCENT HIRE_DATEFROM EMPLOYEES--WHERE JOB_ID = 'PU_CLERK'ORDER BY HIRE_DATE DESC

) CWHERE C.HIRE_DATE < A.HIRE_DATE)

ORDER BY A.HIRE_DATE

데이터베이스 개체 이관 요약1. 일반적인 단순 SQL 문은 쉽게 변환 가능합니다만 SQL Server 가 지원하지 않는 함수는 사용자 정의 함수나 저장 프로시저를 만들어야 합니다 .

2. 오류처리 등 그 밖의 여러 문제들은 SQL Server 의 일관적인 패턴을 익히는 것이 좋습니다 .

3. 오라클 개체를 그대로 변환하는 것은 성능을 충분히 보장해 주지 못할 수도 있습니다 . 튜닝 기술이 요구될 것 입니다 .

4. 인덱스 튜닝이 필요합니다 .

5. 수작업으로 많은 작업을 하는 것 보다는 적당한 Tool 사용이 권장됩니다 .

데이터베이스 이관 도구SwisSQL

데이터베이스 이관 도구SwisSQL

Schema

Data/Table

Stored Procedure

Application SQL 문

JDBC

ODBC JDBC

ODBC

분석 및 Stored Procedure 변환 솔루션 SwisSQL (Oracle, DB2, MySQL, Sybase) to SQL Server Edition

데이터 Migration 솔루션 SwisSQL Data Migration Edition

SQL 문 변환 솔루션 SwisSQL SQLone-Console Edition

Application 변환 API SwisSQL OneAPI 1.9.2

자동화 Migration 모듈 구성

Oracle, Sybase, MySQL, Oracle, Sybase, MySQL, DB2DB2

Informix DatabaseInformix Database

Microsoft SQL ServerMicrosoft SQL Server

자동화된 Migration 모듈 구성

자동화된 Migration 수행

MicrosoftSQL Server

동일 Schema 정보

Index

ViewViewViewViewProcedureProcedure

TrigerTriger

Table

Oracle, Sybase, MySQL, Oracle, Sybase, MySQL, DB2DB2

Informix DatabaseInformix Database

다른 Schema 정보

Conversion EngineBusiness Process

FunctionFunctionFunctionFunctionPackagePackage

SequenceSequence

Oracle, Sybase, MySQL, DB2Oracle, Sybase, MySQL, DB2Informix DatabaseInformix Database

SwisSQL (DB) to SQL Server Edition

: stored Procedure Migration

SwisSQL SQLOne API

Application DB Access

SwisSQL Console

: SQL Conversion

SQL 문 변환

SwisSQL Data Migration Edition

: Data Transfer

Data Migration (Schema, Data)

Migration 솔루션 과정 Migration 솔루션 과정

일반 파일 스크립트를 활용한 Migration 작업 수행 지원

Server 접속을 통해 User Interface 활용한 Migration 작업 수행

Wizard 를 통한 단계적 Migration 수행

MetaData 생성 기능 및 Examine 기능 옵션 수행

익스플로어를 통한 Report 상세 기능 제공

Migration 스크립트를 파일로 제공 스키마 별 분류

Migration Wizard 활용한 Convert

코드 비교를 위한 스키마 분류 기능 제공

디렉터리 별 코드 분류를 통한 파일 제공으로 효과적 작업 수행

스키마 별 Migration 작업 시 오류를 체크 함으로써 Migration 진행 상태 제공

SwisSQL (DB) to SQL Server Migration Edition SwisSQL Data Migration Edition

SwisSQL SQLOne Console Edition

Wizard 를 통한 Data Migration 환경 제공

상용 RDBMS 의 Index, Table, View 등 다양한 Schema 정보의 Data Migration 제공

다양한 SQL 문 Conversion 환경 제공

변환 History 관리 기능

Application SQL Script 변환 기능

Migration 솔루션 기능

Migration 사례 분석 [ A 社 사례 ] 빌링 시스템 지역서버 9 대를 Oracle Database 에서 MS SQL Server 환경으로

Database 전환 .

 Oracle 기반 파워빌더 Application 환경을 MS SQL 기반 파워빌더 환경으로 전환

기존 Replication 환경을 DTS Package 를 통해 Replication 환경 구현

MicrosoftSQL-Server Database 2

MicrosoftSQL-Server Database 9

MicrosoftSQL-Server Database

1

Oracle Database Oracle Database 11

Oracle Database Oracle Database 99

Oracle Database Oracle Database 22

Oracle DatabaseOracle Database

Main Server

파워빌더 내 약 1,000 Page 의 SQL 문 변환

기존 Application 환경 사용

100,000 Line 정도의 Procedure 수행

Schema, PL/SQL, Data

Data 25G , Object 1,000 개 이상

9 대 server : DTS Package 를 활용한 Replication 개발

Migration Migration 환경환경

Migration 사례 분석 [ A社 사례 ]

3명12명Person

1.5달3달Month

24Team Size

SwisSQLManualProject Detail

Oracle 유지보수 비용 22% 인상

Oracle 8.05 에서 Oracle 9i Version Upgrade 비용 고가 소요

Oracle 관리 비용 절감 및 MS SQL Server 환경으로 전환

  윈도우 환경에서 Oracle DBMS 의 시스템 불안 원인

Oracle 유지보수 및 업그레이드 비용 약 80% 절감 효과

9 대 Server 를 Working Day 약 30 일 동안 3명의 인력으로 Migration 수행

투입인력 약 70% 절감 효과

솔루션을 통한 일반적인 Migration 비용의 약 70% 절감

Replication 환경 개발을 통해 9 대 서버의 원활한 Data 이전

기존 파워빌더 Application 전환 없는 사용 환경 제공

약 4,000 여 지점의 배포 및 운영 테스트 수행 및 SQL Server 스트레스 테스트 수행

성능 측면에서 약 1.2 배 정도의 성능 향상

Migration 원인

Migration 수행 및 효과

Migration 사례 분석 [ B 社 사례 ]

Oracle DatabaseOracle Database

Main Server

ASP Code 내 약 3,000 Page 의 SQL 문 변환

Linked Server 구현

Data 이전 작업

Oracle Schema 변환 작업

Data 15G, Object 300 개 이상

MicrosoftMicrosoftSQL-Server DatabaseSQL-Server Database

B 社 인프라 환경

내부 인프라 시스템을 Oracle Database 에서 MS SQL Server 환경으로 Database 전환

 Oracle 기반 ASP Application 환경을 MS SQL 기반 ASP 환경으로 전환

Linked Server 환경 구현

Migration 환경

Migration 사례 분석 [ B 社 사례 ]

1명3명Person

0.31달Month

1팀3팀Team Size

SwisSQLManualProject Detail

MS SQL Server 전환을 통해 시스템 일원화 수행

솔루션을 통한 일반적인 Migration 비용의 약 70% 절감

총 50,000 Lines 정도의 SQL 문을 7 일 이내에 변환

총 소요기간을 2 인이 약 30 일 중 10 일로 단축

ASP Application 내 SQL 문 변환 3 일 소요

기존 ASP Application 전환 없는 사용 환경 제공

기업 합병을 통한 MS SQL Server 환경으로 인프라 통합 사업 필요

유지보수 비용 절감 및 시스템 분리를 통한 관리 효율화 필요

Migration 원인

Migration 수행 및 효과