1 / 37

효율적인 Migration 방안

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

Télécharger la présentation

효율적인 Migration 방안

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 효율적인Migration 방안 최인규 과장 솔루션 사업본부 Andsome & Company

  2. 목 차 Migration 개요 데이터 베이스 개체 이관 데이터 베이스 이관 도구 SwisSQL DEMO

  3. Migration 개요

  4. 데이터 통합 엔터프라이즈 환경 기술 환경 변화 대응 유지비용의 절감 시장 환경 및 기업의 요구 •  상용 DBMS의 고가 업그레이드 또는 도입비용의 문제점. • 경쟁력 강화를 위한 다양한 인력 및 저가 유지보수 플랫폼 선호. • 기업 합병으로 DataBase & Application의 일관성 확보 절실. •  .NET 과 SQL Server 개발환경 서비스 보편화와 다양한 기술 보유 전문인력 활용 필요. • 낮은 TCO (총소요비용)를 요구하는 경영진의 Needs 충족. MS SQL Server 환경으로 전환 고려 •  유지보수 비용 인상으로 인한 관리 비용 절감 요구. • 기업 합병으로 인한 시스템 환경 통합. • 기존 C/S 및 개발 플랫폼의 .NET 환경으로의 전환. • 윈도우 환경의 DB 일원화 및 쉬운 GUI를 통한 시스템 운영 요구. • 기술 환경 대응을 위한 플랫폼 전환 요구.( ex, BI 환경, Media 센터, 멀티미디어 환경, etc. )

  5. 무엇을 먼저 고려 해야 되는지? • 어떤 정보를 옮겨야 되는지? • 어떻게 수행해야 되는지? • 얼마의 시간이 걸릴지? • 어느 정도의 소요비용이 소요될지? • 과연 얼마 만큼의 효과를 가져올지? • Migration 범위 산정 (DB, Application, Data 통합, etc.) • Migration을 위한 효율적인 분석 및 설계 제공 (Assessment Tool) • 자동화된 Migration 수행 (Migration Tool) • 빠른 수행을 통한 전체 소요시간 및 소요비용 절감 • Migration을 통해 요구에 맞는 안정된 시스템 운영, 검증, 테스트 제공 효율적인 Migration 방법 요구 효율적인 Migration 수행을 위한 자동화가 필요

  6. Migration 수행 절차 • Migration을 분석, 변환, 검증 및 적용 단계로 구분하여 진행하며, Migration의 최종 목표는 안정적인 현장 적용에 있으므로 이를 위해 검증 및 적용 단계에 집중합니다. 변환단계 (5주) 검증 및 적용 단계(4주) 분석단계 (2주) 3. 데이터 이전(3일) 2.1. 환경구축 1. 분석 2.4. 제한사항 설정 Data Migration Tool Constraints OS(Windows 2K Svr) 환경(OS, DB) DTS 구축 DB(MS SQL Server) Index Objects 데이터 이전 테스트 2.2. 변환 Collate Application SQL Table 4. 시험 및 튜닝(3주) View 배포 & 병행운영 Test Index 튜닝 Application SQL 5. 현장 적용(2일) Constraint 배포 전 테스트 2.3. Build In 배포 Table Application SQL 모니터링

  7. Migration 분석 • 업무 재정의 • Process 보정 작업 • 오류 보정 작업 업무 영역 정의 Migration 수행 검증 및 적용 튜닝 • 분석 시간 낭비 • 업무정의 불확실 • 불일치 데이터 발생 • Migration 상의 데이터 오류 • 검증 상 오류 – 재 수행 Migration 분석 검증 및 튜닝 Migration 수행 Assessment Suite Application Migration Sutie Migration Suite Migration과정 비교 • 인력 기반 Migration 과정 • 솔루션 기반 Migration 과정 • 약 50%이상의 시간절감 효과 • 약 50%이상의 비용절감 효과 • 약 80 ~ 90% 변환율 제공

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

  9. 개 요 • RDBMS가 얘기하는 아키텍처 및 용어가 서로 상이하여 둘을 정확히 매핑하는 것이 어렵고 새로운 환경에 적용 시키는 마이그레이션 프로세스는 복잡해 보일 수 있습니다. 또한 각 업체마다 SQL-92표준에서 독자적인 확장을 많이 하여 차이점을 보이지만 이러한 차이점을 빨리 이해하면 마이그레이션에 큰 영향을 끼치지는 않습니다.

  10. 데이터 형식

  11. Oracle Sequence • ORACLESequence • CREATE SEQUENCE TEST1_SEQ • START WITH 100 • INCREMENT BY 2 • NOCACHE 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 • SQL SERVER에서 구현 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

  12. IDENTITY 속성 • Oracle 응용 프로그램이 SEQUENCE를 사용하는 경우 Microsoft SQL Server의 IDENTITY 속성을 사용하도록 쉽게 변경할 수 있습니다. • 전세계의 모든 네트워크 컴퓨터의 모든 데이터베이스에 걸쳐 고유한 ID 열을 만들어야 하는 경우, ROWGUIDCOL 속성, uniqueidentifier 데이터 형식 및 NEWID 함수를 사용하십시오. SEQUENCE테이블을 만들어 사용할 수도 있습니다.

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

  14. VIEW • WITH READ ONLY는 제거하고 SELECT권한만 할당하여 같은 결과를 얻을 수 있습니다. • VIEW 제한 사항을 이해해야 합니다. CREATE VIEW TEST1_V AS SELECT * FROM TEST1 ORDER BY SEQ /* 서버: 메시지 1033, 수준 15, 상태 1, 프로시저 TEST1_V, 줄 4 TOP을 함께 지정하지 않는 한 뷰, 인라인 함수, 파생 테이블, 하위 쿼리에서 ORDER BY 절을 사용할 수 없습니다. */ CREATE VIEW TEST1_V AS SELECT TOP 100 PERCENT * FROM TEST1 ORDER BY SEQ

  15. 트리거 • Oracle과 SQL Server는 약간의 차이가 있습니다. • Oracle의 BEFORE 트리거의 기능을 INSTEAD OF 트리거로 대신할 때 INSERT, UPDATE, DELETE문을 추가해야 합니다. • 행 수준 트리거는 FULL OUTER JOIN이나 커서로 변경할 수 있습니다.

  16. 트리거 Oracle • SQL Server 행 수준 트리거를 지원하지 않습니다. CREATE OR REPLACE TRIGGER trigger_new_old_each_row BEFORE UPDATE ON DEPT FOR EACH ROW BEGIN 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;

  17. 트리거 SQL Server • 행 수준 트리거 만들기 alter TRIGGER each_row ON DEPT INSTEAD OF UPDATE AS BEGIN IF @@ROWCOUNT = 0 RETURN IF (SELECT COUNT(*) FROM inserted) > 0 AND (SELECT COUNT(*) FROM deleted) > 0 BEGIN UPDATE 입력 SET 입력.a = new.a , DEPT.b = new.b FROM INSERTED NEW FULL OUTER JOIN DELETED OLD ON NEW.a=OLD.b INSERT into 출력(qty) SELECT NEW.LOC FROM INSERTED NEW FULL OUTER JOIN DELETED OLD ON NEW.a=OLD.a UPDATE DEPT SET DEPT.deptno = new.deptno , DEPT.dname = new.dname , DEPT.loc = new.loc FROM INSERTED NEW FULL OUTER JOIN DELETED OLD ON NEW.DEPTNO=OLD.DEPTNO

  18. SELECT FIRST_NAME, LAST_NAME FROM EMPLOYEES WHERE DEPARTMENT_ID = 30 AND ROWNUM < 5-- 4건만 출력 FROM 절에 rownum 사용 SELECT rownum, first_name -- 결과 set에 매겨진 번호 출력 FROM employees WHERE department_id = 30 SELECT 절에 rownum 사용 SELECT TOP 4 FIRST_NAME, LAST_NAME -- 4건만 출력 FROM EMPLOYEES WHERE DEPARTMENT_ID = 30 TOP 문 사용 DECLARE @temptable TABLE (rownumber INTEGER IDENTITY NOT NULL, first_name VARCHAR(20)) INSERT INTO @temptable SELECT first_name FROM employees -- 결과 set을 identity 컬럼을 가지는 임시테이블에 저장 WHERE department_id = 30 SELECT * FROM @temptable TEMP TABLE을 이용 rownumber 부여 SQL문 변환 • ROWMUM 변환 ORACLE SQLSERVER

  19. SQL문 변환 • 모든 외부 조인을 SQL-92 표준 외부 조인 구문으로 변경합니다. ORACLE 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(+) SQLSERVER 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

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

  21. SQL문 변환 • 함수 변환 예

  22. SQL문 변환 ORACLE SQLSERVER SELECT GREATEST (A1, A2, A3) FROM TEST2 SELECT CASE WHEN CASE WHEN A1 > A2 THEN A1 ELSE A2END> A3 THEN CASE WHEN A1 > A2 THEN A1 ELSE A2 ENDELSE A3 END FROM TEST2 SELECT CASE WHEN CASE WHEN A1 < A2 THEN A1 ELSE A2 END< A3 THEN CASE WHEN A1 < A2 THEN A1 ELSE A2 END ELSE A3END FROM TEST2 SELECT LEAST (A1, A2, A3) FROM TEST2 SELECT CEILING (A1) FROM TEST2 SELECT CEIL (A1) FROM TEST2 SELECT MOD(A2, 5) FROM TEST2 SELECT A2%5 FROM TEST2

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

  24. SQL문 변환 • Lag함수 이해 오라클 도움말 참조 SELECT last_name, hire_date, salary, LAG(salary, 1, 0) OVER (ORDER BY hire_date) AS prev_sal FROM employees WHERE job_id = 'PU_CLERK'; LAST_NAME HIRE_DATE SALARY PREV_SAL ------------------------- --------- ---------- ---------- Khoo 18-MAY-95 3100 0 Tobias 24-JUL-97 2800 3100 Baida 24-DEC-97 2900 2800 Himuro 15-NOV-98 2600 2900 Colmenares 10-AUG-99 2500 2600

  25. 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.PRE FROM( SELECT TOP 1 LASTNAME, HIRE_DATE, MIN(SALARY)SALARY, 0 PRE FROM EMPLOYEES GROUP BY LASTNAME, HIRE_DATE ORDER BY MIN(SALARY) )A UNION ALL SELECT A.LASTNAME, A.HIRE_DATE, A.SALARY, B.SALARY FROM EMPLOYEES A, EMPLOYEES B --WHERE A.JOB_ID = 'PU_CLERK' --AND B.HIRE_DATE = WHERE B.HIRE_DATE = ( SELECT TOP 1 HIRE_DATE FROM ( SELECT TOP 100 PERCENT HIRE_DATE FROM EMPLOYEES --WHERE JOB_ID = 'PU_CLERK' ORDER BY HIRE_DATE DESC ) C WHERE C.HIRE_DATE < A.HIRE_DATE ) ORDER BY A.HIRE_DATE

  26. 데이터베이스 개체 이관 요약 1.일반적인 단순 SQL문은 쉽게 변환 가능합니다만 SQL Server가 지원하지 않는 함수는 사용자 정의 함수나 저장 프로시저를 만들어야 합니다. 2.오류처리 등 그 밖의 여러 문제들은 SQL Server의 일관적인 패턴을 익히는 것이 좋습니다. 3.오라클 개체를 그대로 변환하는 것은 성능을 충분히 보장해 주지 못할 수도 있습니다. 튜닝 기술이 요구될 것 입니다. 4.인덱스 튜닝이 필요합니다. 5.수작업으로 많은 작업을 하는 것 보다는 적당한 Tool 사용이 권장됩니다.

  27. 데이터베이스 이관 도구SwisSQL

  28. Oracle, Sybase, MySQL, DB2 Informix Database Microsoft SQL Server • JDBC • ODBC • JDBC • ODBC • Schema • Data/Table • Stored Procedure • Application SQL 문 자동화 Migration 모듈 구성 • 자동화된 Migration 모듈 구성 • 분석 및 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 수행

  29. SwisSQL Console : SQL Conversion • SwisSQL SQLOne API • SQL 문 변환 • 동일 Schema 정보 Oracle, Sybase, MySQL, DB2 Informix Database • SwisSQL (DB) to SQL Server Edition : stored Procedure Migration • Application DB Access Microsoft SQL Server Index Table Sequence Triger Oracle, Sybase, MySQL, DB2 Informix Database Procedure Package Function View Business Process Conversion Engine • Data Migration (Schema, Data) 다른 Schema 정보 • SwisSQL Data Migration Edition : Data Transfer Migration 솔루션 과정

  30. Migration 솔루션 기능 • SwisSQL (DB) to SQL Server Migration Edition • SwisSQL Data Migration Edition • Wizard를 통한 Data Migration 환경 제공 • 상용 RDBMS의 Index, Table, View 등 다양한 Schema 정보의 Data Migration 제공 • SwisSQL SQLOne Console Edition • 일반 파일 스크립트를 활용한 Migration 작업 수행 지원 • Server 접속을 통해 User Interface 활용한 Migration 작업 수행 • Wizard를 통한 단계적 Migration 수행 • MetaData 생성 기능 및 Examine 기능 옵션 수행 • 익스플로어를 통한 Report 상세 기능 제공 • Migration 스크립트를 파일로 제공 스키마 별 분류 • Migration Wizard 활용한 Convert • 코드 비교를 위한 스키마 분류 기능 제공 • 디렉터리 별 코드 분류를 통한 파일 제공으로 효과적 작업 수행 • 스키마 별 Migration 작업 시 오류를 체크 함으로써 Migration 진행 상태 제공 • 다양한 SQL 문 Conversion 환경 제공 • 변환 History 관리 기능 • Application SQL Script 변환 기능

  31. Power Builder Application Oracle Database 1 Oracle Database 9 Oracle Database 2 Oracle Database Main Server Microsoft SQL-Server Database 2 Microsoft SQL-Server Database 9 Microsoft SQL-Server Database 1 Migration 사례 분석 [ A 社 사례 ] • Migration 환경 • 빌링 시스템 지역서버 9대를 Oracle Database 에서 MS SQL Server 환경으로 Database 전환. •  Oracle 기반 파워빌더 Application 환경을 MS SQL 기반 파워빌더 환경으로 전환 • 기존 Replication 환경을 DTS Package를 통해 Replication 환경 구현 • 파워빌더 내 약 1,000 Page의 SQL 문 변환 • 기존 Application 환경 사용 • 9대 server : DTS Package를 활용한 Replication 개발 • 100,000 Line정도의 Procedure 수행 • Schema, PL/SQL, Data • Data 25G , Object 1,000개 이상

  32. Project Detail Manual SwisSQL Team Size 4 2 Month 3달 1.5달 Person 12명 3명 Migration 사례 분석 [ A社 사례 ] • Migration 원인 • Oracle 유지보수 비용 22% 인상 • Oracle 8.05에서 Oracle 9i Version Upgrade 비용 고가 소요 • Oracle 관리 비용 절감 및 MS SQL Server 환경으로 전환 • 윈도우 환경에서 Oracle DBMS의 시스템 불안 원인 • Migration 수행 및 효과 • Oracle 유지보수 및 업그레이드 비용 약 80% 절감 효과 • 9대 Server를 Working Day 약 30일 동안 3명의 인력으로 Migration 수행 • 투입인력 약 70% 절감 효과 • 솔루션을 통한 일반적인 Migration 비용의 약 70% 절감 • Replication 환경 개발을 통해 9대 서버의 원활한 Data 이전 • 기존 파워빌더 Application 전환 없는 사용 환경 제공 • 약 4,000 여 지점의 배포 및 운영 테스트 수행 및 SQL Server 스트레스 테스트 수행 • 성능 측면에서 약 1.2 배 정도의 성능 향상

  33. ASP Application (MIS + OIS System) Oracle Database Main Server Microsoft SQL-Server Database B 社 인프라 환경 Migration 사례 분석 [ B 社 사례 ] • Migration 환경 • 내부 인프라 시스템을 Oracle Database 에서 MS SQL Server 환경으로 Database 전환 •  Oracle 기반 ASP Application 환경을 MS SQL 기반 ASP 환경으로 전환 • Linked Server 환경 구현 • ASP Code 내 약 3,000 Page의 SQL 문 변환 • Oracle Schema 변환 작업 • Data 15G, Object 300개 이상 • Linked Server 구현 • Data 이전 작업

  34. Project Detail Manual SwisSQL Team Size 3팀 1팀 Month 1달 0.3 Person 3명 1명 Migration 사례 분석 [ B 社 사례 ] • Migration 원인 • 기업 합병을 통한 MS SQL Server 환경으로 인프라 통합 사업 필요 • 유지보수 비용 절감 및 시스템 분리를 통한 관리 효율화 필요 • Migration 수행 및 효과 • MS SQL Server 전환을 통해 시스템 일원화 수행 • 솔루션을 통한 일반적인 Migration 비용의 약 70% 절감 • 총 50,000 Lines 정도의 SQL 문을 7일 이내에 변환 • 총 소요기간을 2인이 약 30일 중 10일로 단축 • ASP Application 내 SQL문 변환 3일 소요 • 기존 ASP Application 전환 없는 사용 환경 제공

More Related