관리 메뉴

Data Modeling Evangelist Kaien Kim's Blog

데이터베이스 마이그레이션(DBMS Migration) 방안 본문

DATA/Etc

데이터베이스 마이그레이션(DBMS Migration) 방안

2009. 7. 15. 10:39

가. 데이터베이스 마이그레이션의 필요성
- 다양한 하드웨어와 운영체제, DBMS 환경으로 현업의 요구사항을 빠르게 지원할 수 없는 구조
- 다양한 기종의 DBMS들이 서로 연동하는 인터페이스 부분이나 서로 다른 SQL 구문 및 응용 프로그램의 개발 언어로 불필요한 비용을 지출
- 고비용 저효율 유지 보수의 구조

나. 기대효과
- 비효율적이고 고비용의 IT 인프라를 저비용의 효율적인 인프라로 변환

다. 마이그레이션 수행 방안
1. 선행검토사항
- 현재 IT 장비와 인력 등 IT 인프라의 ROI(투자 대비 효과)를 분석
- 향후 IT 인프라를 통합후 생산성의 향상 여부를 계수화
- IT 인프라를 통합할 때 발생하는 비용과 위험요소 분석
- 이기종 DBMS로부터의 효율적인 마이그레이션이 가능여부
위험 요소를 최소화 할 수 있는 방법 고려
 
2. DBMS제품선정기준
- 통합이 개발 환경을 효율적이고 신속하게 제공하는지 여부
- 유지 보수가 쉽고 비용이 저렴하여 ROI를 높일 수 있는 지분석
- 통합후 안전성, 보안성, 성능보장 여부
- 이기종의 DBMS가 제공하는 기능과 동일한 기능이 있는 지 여부
- 자동화 도구를 사용해서 기간이나 비용을 절감여부
- 마이그레이션 과정의 안정성과 효율성을 보장하도록 추진
- SQL 구문들을 수정하는데 소요되는 시간 등을 예측하여, 마이그레이션에 소요되는 전체 공수 및

3. 마이그레이션 방법
① DBMS만 마이그레이션 하는 경우
② Web 서버 등 응용 프로그램만 마이그레이션 하는 경우
③ Web 서버 등 응용 프로그램과 DBMS를 마이그레이션 하는 경우
④ Web 서버 등 응용 프로그램 및 미들웨어, DBMS 모두 마이그레이션 하는 경우
⑤ Web 서버 등 응용 프로그램을 새로 개발하며 DBMS를 마이그레이션하는 경우
⑥ 마이그레이션과 함께 추가 기능의 모듈을 개발하는 경우 등
 
4. 마이그레이션 수행절차


1) 마이그레이션 요구 사항 분석 및 마이그레이션 범위 결정
- 마이그레이션의 목적과 예산,프로젝트 기간 등의 요구 사항에 따라 마이그레이션의 범위 결정.

2) 기존 환경 진단 및 분석에 따른 마이그레이션 평가 및 평가 리포트 생성
- 응용 프로그램 개발 언어 확인
- 해당 응용 프로그램을 마이그레이션 하기 위해서 필요한 기술
- 현행 DBMS에만 제공하는 기능 등을 사용하고 있는지 여부
- 데이터베이스 스키마 개체의 개수나 복잡성, 저장 프로시저 등의 구문의 행 수나 복잡성 등을 평가
- 운영체제나 DBMS의 환경 설정 사항 분석
- 프로젝트에 소요 되는 인원과 기간을 산정
- 마이그레이션 프로젝트의 복잡성과 소요 기간, 비용 등을 산출
- 리포트로 작성해서 위험 요소를 분석하고 대응 방안을 마련

3) 마이그레이션 위험 요소 및 기술 분석
- 위험 요소 점검사항 및 대응 방안
① 데이터베이스 디자인 변경
② 마이그레이션 대상 시스템의 동일 기능 지원 여부
③ 데이터 변환 시 한글 지원 문제
④ 기존 데이터의 정합성 검토
⑤ 업무 프로세스 변경
⑥ 새로운 기술의 도입
⑦ 대용량 데이터 마이그레이션 방법 및 오류 발생
⑧ 고가용성 기능 선택
⑨ 작업 소요 기간 초과
⑩ 프로젝트 수행 인원 교체 등

4) 마이그레이션 방안 상세 설계에 따른 전략 수립
- 마이그레이션 프로젝트를 세부 단계로 분류
- 담당자 지정
- 각 단계 업무 항목마다 작성되어야 할 표준화된 산출물을 지정
- 각 작업 항목의 순서도 결정
- 상세 설계와 전략의 수립은 정형화되고 표준화되어야 함

5) 스키마 개체 마이그레이션
- 이기종의 테이블, 뷰, 인덱스와 같은 개체  마이그레이션
- 테이블과 인덱스의 범위 기반 분할 동기화
- 파티션된 대용량의 테이블 마이그레이션

6) 데이터 마이그레이션
- 테이블의 개수와 데이터 양을 고려해서 마이그레이션 방법을 결정
- 오류를 줄이기 위해서 가능한 동일한 방법으로 데이터를 마이그레이션 처리
- ETL 도구, 복제등의 방법으로 마이그레이션 절차 간소화
- 테이블이 대용량이거나 데이터의 정제, 또는 변환이 필요할 경우에는 성격별로 구분하여 처리

7) SQL 구문 등 비즈니스 로직 마이그레이션
- 마이그레에선 대상 DBMS의 SQL구조와 신규통합 DBMS의 SQL 모두에 익숙한 전문가 필요
- 패키지나 프로시저, 함수 등 마이그레이션을 지원하는 전문 도구 사용가능 여부 확인
- 기본 적인 변환을 마이그레이션 도구를 통해서 자동화
- 마이그레이션 도구가 변환하지 못하는 부분을 전문 개발자가 수동으로 변환하여 작업 시간 단축

8) 응용 프로그램 마이그레이션
① 기존 응용 프로그램 환경을 그대로 사용하고 연결 설정 부분만 변경하는 경우
② 응용 프로그램을 새로 작성하는 경우등 2가지 방법에 따라 응용프로그램 마이그레이션 방법결정
- 응용 프로그램 환경을 면밀하게 검토
- UNIX 환경인 경우에는 연결 계층의 구성 부분도 면밀히 검토
- 응용 프로그램이 작성된 개발 언어에 따라서 마이그레이션 시의 위험 요소를 면밀히 검토

9) 마이그레이션 점검 및 테스트
① 데이터베이스 스키마 개체 개수 점검
② 데이터 행수 및 정합성 점검
③ 프로시저 및 함수, 트리거 등 동일한 결과값 반환 여부 점검
④ 응용 프로그램의 오류 여부 점검
⑤ 백업 및 보안 정책 정합성 점검
⑥ 신규 시스템 환경 설정 점검
마이그레이션된 데이터의 행수가 일치하는 지 여부와 저장 프로시저나 함수가 각각 동일한 처리나 실행결과를 반환하는 지 여부 등을 확인

10) 최적화 작업
- 신규  DBMS의 환경에 맞게 최적화 작업 수행
- 계수인 경우에는 부분합과 전체합을 비교한다든지 하는 유효성 검사 테스트 추가 검증
- 대량의 데이터인 경우에는 트랜잭션의 크기를 조정해서 처리
- 데이터의 변형이 필요한 경우에는 애플리케이션까지 변경


출처:http://blog.naver.com/p1ngp1ng/120035968045

참고사이트 :
http://fdsblog.tistory.com/78  Good!!