메인 컨텐츠로 가기

developerWorks 이용 약관에 동의하시는 경우 제출을 클릭하십시오. 이용 약관 보기.

developerWorks에 처음 로그인하면 developerWorks프로파일이 생성됩니다.귀하의 프로파일에서 동의하신 내용이 공개되지만 이 사항은 언제든지 변경 가능합니다. 귀하의 성명(숨김으로 체크되어 있어도 표시됩니다)과 디스플레이 이름은 게시한 컨텐츠나 사이트 엑세스시 표시됩니다.

모든 정보가 안전하게 전송되었습니다.

  • 닫기 [x]

처음 developerWorks에 로그인할 때 프로파일이 작성되므로, 이를 위해 디스플레이 이름을 선택해야 합니다. 선택하신 디스플레이 이름은 developerWorks에 게시한 컨텐츠에 표시됩니다.

3글자 이상 31글자 이하의 길이로 사용 가능합니다. dW커뮤니티 내에서는 보안상 이메일주소를 제외한 다른 이름을 지정하셔야 합니다.

developerWorks 이용 약관에 동의하시는 경우 제출을 클릭하십시오. 이용 약관 보기.

모든 정보가 안전하게 전송되었습니다.

  • 닫기 [x]

MySQL에서 DB2로 PHP 애플리케이션 이동, Part 1: 마이그레이션 준비

IBM 인트라넷 애플리케이션 사례 연구에서 얻은 교훈

Daniel Krook, 소프트웨어 엔지니어, IBM
Daniel Krook은 뉴욕시 권역에서 활동하는 IBM/Open Group 마스터 인증 IT 전문가이다. 그는 웹 애플리케이션 개발 분야에서 10여 년의 경력을 보유하고 있고 현재는 Java EE, DB2, REST 및 모바일 기술을 사용하여 IBM을 위한 클라우드 인프라를 빌드하는 프로젝트에 참여하고 있다. 그는 PHP, Java EE, BlackBerry, DB2,Solaris에 관한 다양한 인증 자격 보유자이다. 그리고 IBM developerWorks에 PHP 관련 기사를 기고하고 있으며 IBM Redbook "Developing PHP Applications for IBM Data Servers"를 공동 집필했다.
Yan Li Mu, IT아키텍트, IBM
Yan Li Mu는 중국 다롄에서 일하는 IT 아키텍트이다. 그는 웹 애플리케이션 개발 분야에서 8여 년의 경험을 보유하고 있고, Java EE 기술, PHP 및 데이터베이스 개발에 주력하고 있다.

요약:  IBM 인트라넷 애플리케이션 사례 연구를 진행한 경험을 바탕으로 파악한 PHP 애플리케이션에서 DB2®로 이동해야 할 이유, 마이그레이션의 계획, 실행, 지원 및 잠재적 위험 관리 방법을 학습한다. 4개 파트로 구성된 본 시리즈에서는 ibm.com용 컨텐츠 프로덕션을 지원하기 위해 전 세계 4,000명의 IBM 내부 사용자가 사용하는 업무에 핵심적인 PHP 인트라넷 애플리케이션에 대한 성공적인 MySQL-DB2 마이그레이션에서 깨달은 교훈을 공유한다. Part 1에서는 마이그레이션 준비 단계를 설명한다.

이 연재 자세히 보기

기사 게재일:  2012 년 1 월 02 일
난이도: 초급 원문:  보기 PDF:  A4 and Letter (96KB | 17 pages)Get Adobe® Reader®
페이지뷰:  987 회
의견:  


시리즈 소개

MySQL은 현재 동적 웹 애플리케이션을 빌드하기 위해 PHP 프로그래밍 언어와 더불어 가장 일반적으로 사용되는 데이터베이스 서버이다. 하지만, DB2는 PHP의 훌륭한 지원을 받는 또 하나의 인기 데이터베이스로서 MySQL에 비해 매력적인 장점이 많아 수많은 애플리케이션에 이상적인 데이터베이스 서버로 자리매김하고 있다.

본 시리즈에서는 최근의 마이그레이션 프로젝트를 통해 기사 작성자들이 쌓은 경험을 바탕으로 파악한 PHP 애플리케이션에서 DB2로 이동하는 것이 합당한 이유, 마이그레이션의 준비, 실행, 지원 및 잠재적 위험 관리 방법을 설명한다. 이번 시리즈에서는 많은 코드 및 구성 샘플뿐 아니라, 프로젝트의 원활한 실행에 도움이 되는 자원에 대한 포인터도 제공한다.

성공적인 실시간 변환에서 체득한 교훈과 다양한 사례를 통해 이 프로젝트가 올바로 문서화되고 매력적인 이점을 제공하는 간단한 프로젝트가 될 수 있다는 점을 확인하게 될 것이다.

4개 파트로 구성된 본 시리즈에서는 ibm.com용 컨텐츠 프로덕션을 지원하기 위해 전 세계 4,000명의 IBM 내부 사용자가 사용하는 업무에 핵심적인 프로덕션 등급의 PHP 인트라넷 애플리케이션에 대한 성공적인 MySQL-DB2 마이그레이션에서 깨달은 교훈을 공유한다.

  • Part 1에서는 마이그레이션 준비에 필요한 단계를 설명한다.
  • Part 2에서는 데이터베이스 마이그레이션에 필요한 단계를 설명한다.
  • Part 3에서는 PHP 코드로 변환하는 데 필요한 단계를 설명한다.
  • Part 4에서는 애플리케이션을 배치 및 지원하는 데 필요한 단계를 설명한다.

학습 내용

본 기사 시리즈의 목표는 MySQL에서 DB2로 PHP 애플리케이션을 마이그레이션하는 데 일반적으로 필요한 사항, 이때 사용 가능한 자원, IBM 프로젝트 팀이 2010년 초에 해당 태스크를 수행한 방법을 소개하는 것이다.

MySQL에서 DB2로의 마이그레이션을 조사해본 적이 있다면, DB2 문서에서 읽은 각종 제품 정보, 성능 벤치마크 및 특징이나 MySQL to DB2 Conversion Guide(참고자료 참조)를 포함하여 이 태스크에 관한 IBM Redbooks®의 비교 자료를 바탕으로, DB2가 제공하는 가치를 이미 이해하고 있을지도 모르겠다.

DB2 Express-C는 Cloud 또는 Amazon EC2에서 IBM Smart Business Development and Test를 사용하여 손쉽게 설치하거나 평가할 수 있고 모든 기능을 갖추고 있는 무료 관계형 데이터 서버라는 사실도 이미 알고 있을지 모르겠다. 이런 오퍼링에 대한 링크는 참고자료 섹션에서 확인할 수 있다.

본 기사 시리즈에서는 ibm.com 웹 사이트의 다양한 섹션에 게시되는 컨텐츠의 일상적 관리 업무를 지원하기 위해 IBM 내부에서 많이 사용되는 PHP 인트라넷 애플리케이션에 대해 2010년에 성공리에 실행된 실제 마이그레이션 프로젝트를 구체적인 사례로 들어 설명한다.

본 시리즈를 모두 읽고 나면, 독자 여러분도 유사한 마이그레이션 사례를 남기고, 실행할 필요가 있는 작업 항목의 실행 시점과 종속 항목을 이해하고, 잠재적 위험을 예상하고, 그 과정에서 이루어지는 각 단계를 지원하기 위해 어느 곳을 살펴봐야 할지 알 수 있을 것이다. 이 모든 지식을 바탕으로, DB2를 선택할 때 더욱 큰 확신을 가지고 현재 MySQL을 바탕으로 빌드되어 있는 PHP 애플리케이션에 DB2를 최선의 방식으로 사용할 수 있을 것이다.

다루지 않는 내용

본 기사 시리즈의 목적은 IBM 내부에서 실시되었던 DB2에서 MySQL로의 마이그레이션 프로젝트에서 배운 점을 공유하고 유사한 프로젝트를 수행할 때 사용 가능한 자원에 관한 정보를 제공하는 것이다. 따라서 본 기사 시리즈가 모든 시나리오에 적용 가능한 포괄적인 마이그레이션 안내서는 아니다.

각자에게 적합한 접근 방식을 결정하려면 MySQL to DB2 Conversion Guide를 참조하거나 SMPO(Software Migration Project Office)에 문의하여 무료로 마이그레이션 평가를 받아보기 바란다. 관련 링크는 참고자료 섹션에서 제공된다.


사례 연구 소개

ibm.com 팀에서는 7여 년 동안 PTT(Project Tracking Tool)를 사용하여 영업 및 유통 사업부의 여러 그룹이 ibm.com에 게시하는 다양한 정보의 라이프사이클을 지원해왔다. 본 사례 연구에서 마이그레이션한 것이 바로 이 애플리케이션이다.

원래는 한 소규모 조직을 지원하는 부서 도구로 개발된 PTT는 이제 전 세계적으로 4,000여 명의 사용자에게 서비스를 제공하는 글로벌 시간 추적 및 프로젝트 관리 애플리케이션으로 유기적으로 성장했다.

PTT는 LAMP(Linux, Apache, MySQL, PHP) 플랫폼에 빌드된 다른 인트라넷 도구와 많은 점에서 유사하다. 이 웹 애플리케이션은 비즈니스 조직에서 사용자 커뮤니티의 성장에 따른 다양하고 새로운 요구에 부응하고 이를 지원하기 위해 빠르게 채택되고 발전되는 솔루션을 간절히 필요로 하고 있다는 점에 착안한 한 열정적인 개발자가 주말 동안 개발한 애플리케이션이었다. 하지만, 처음에 그토록 높은 인기를 누리고 유용성을 크게 인정받은 바로 그런 특성이 나중에는 여러 가지 과제를 안겨주었다.

마이그레이션의 동기 유발

이 애플리케이션은 성능과 변화하는 요구에 대한 응답성이라는 점에서는 이해 관계자에게 매우 훌륭한 가치를 전달했지만, 핵심 비즈니스가 성숙하고 탄탄하며 전략적인 종단 간 프로세스로 굳어가기 시작했다. 이런 중요 시점에서, 이 애플리케이션 자체에 분명한 여러 가지 요구사항, 워크플로우 관리를 위한 검증된 우수 사례 그리고 애플리케이션에 포함된 데이터가 양적인 면과 가치라는 면에서 모두 성장했다. 간단히 말해, PTT는 더 이상 단순히 상황에 따라 편리하게 사용할 수 있는 애플리케이션이 아니라, IBM의 핵심 비즈니스가 기반으로 삼는 지주가 될 만큼의 큰 비중을 차지하게 되었다.

조직의 일상적인 업무 운영에 PTT를 더욱 소중하고 강력한 도구로 만드는 것 외에도, PTT가 상호작용하는 웹 서비스 및 데이터 소스의 에코시스템과 PTT를 더욱 원활하게 통합하기 위해 더 큰 규모의 아키텍처 변화가 필요했다. 이렇듯 업그레이드된 시스템 설계를 뒷받침하기 위해, PTT를 중심으로 종합적인 서비스 지향 아키텍처(SOA)를 공식화하고 PTT에 있는 데이터를 사용하여 운영 효과를 더욱 개선하기 위해 새로운 비즈니스 인텔리전스 도구를 선택했다.

MySQL에서 DB2로 마이그레이션해야 할 중요 동기 요소가 표 1에 나와 있다. 이들의 순서는 이해 관계자에 대한 상대적 중요도에 따른 것이다.


표 1. 예상되는 이점과 동기 요소의 목록
이점설명 중요도
메트릭 도구 성능 및 호환성데이터 볼륨이 Hyperion Brio 데스크탑 메트릭 도구의 능력을 압도했다. IBM이 이 문제점의 해결을 위해 식별한 대안인 Cognos®는 Linux에서 DB2와 호환될 뿐이었다(MySQL은 ODBC를 사용하는 Windows에서만 지원됨). 적절한 시점에 더욱 현명한 의사결정을 내리기 위해서는 마이그레이션할 필요가 있었다.중요
IBM 미들웨어 호환성서비스 지향 아키텍처(SOA)를 지원하기 위해, FileNet®과 같이 비즈니스 프로세스 오케스트레이션을 위한 ILOG JRule 및 컨텐츠 프로덕션을 관리하는 IBM 포트폴리오의 다른 도구 및 애플리케이션과의 잠재적 호환성도 고려했다.높음
사용 가능한 DB2 전문 기술ibm.com 팀은 MySQL과 관련한 많은 경험을 쌓았지만, IBM 내에는 DB2 문서, 경험 및 지원 관련 정보도 풍부하다. 우리는 학계에서도 점점 DB2 경험을 쌓아가는 모습을 보기 시작했으며, 이런 경험이 점차 애플리케이션 지원 담당 직원에게도 소중한 자산이 되기 시작했다. 높음
데이터 무결성IBM의 MySQL 데이터베이스 테이블은 트랜잭션과 무관한 MyISAM 엔진을 기반으로 한 것이었다. 매일같이 트랜잭션 볼륨과 값이 증가하는 상황에서, 트랜잭션, 스토어드 프로시저 및 트리거로의 이동이 데이터 무결성 및 거버넌스의 개선에 필수적이었다. MySQL은 대체 스토리지 엔진에서 이런 기능 중 다수를 제공하지만, DB2의 기능이 더 발전되었다.높음
호스팅 옵션 및 비용우리는 현재 자체 데이터 센터 내부에 애플리케이션을 호스트한다. 다른 IBM 호스팅 제공자로 마이그레이션하거나 미리 구성된 IBM Cloud 서버 이미지를 활용하기로 결정함에 따라 저렴한 지원 비용을 계속 유지하기 위해 테스트로 검증된 공통의 프로파일을 일치시킬 필요가 있었다.중간
라이센싱 비용Oracle의 MySQL 엔터프라이즈 지원 비용은 연간 $600에서 $5,000 수준이다. IBM 직원으로서, DB2 라이센스 비용은 문제가 아니었다. 외부 고객은 Oracle이 제시하는 것보다 낮은 가격으로 DB2 Express 지원 라이센스를 획득할 수 있다. DB2의 약정 기간 라이센스 비용은 약 $2,000 USD이다.낮음

물론, 다음을 비롯하여 DB2로 마이그레이션하는 데 있어 종종 매우 설득력 있어 고려할 만한 다른 이점도 있었다.

  • 자동 튜닝 및 구성
  • 극히 뛰어난 확장성
  • 세부적으로 조정 가능한 보안 설정
  • 기본 XML 스토리지
  • 데이터 압축

마이그레이션 시점에서 이런 고려사항이 우리의 비즈니스 목적에 1차적인 중요성을 띤 것은 아니었다.

비용 편익 분석 평가

마이그레이션 평가에서, 우리는 마이그레이션의 성공적 수행을 위해 전략적 접근이 필요한 몇 가지 위험을 식별했다. 모든 마이그레이션 계획에서는 마이그레이션 여부에 대해 실행 가능한 솔루션으로서 현상 자체를 객관적으로 분석해야 한다. 그래서 자체 애플리케이션 또는 사이트의 컨텍스트에서 식별한 위험이 지닌 잠재적 효과보다 추구하는 이익이 커야 한다.

표 2는 위험 완화 전략 외에도, 마이그레이션에 착수하면서 식별한 발생 확률이 가장 높고 가장 큰 영향을 미치는 몇 가지 위험을 설명한 것이다.


표 2. 마이그레이션에 따른 위험과 이에 대응한 위험 완화 전략의 목록
위험설명위험 완화
안정적인 코드 베이스와 데이터베이스 구조에 오류 발생IBM에서는 거의 8년에 이르는 지속적인 변경 요청을 통해 안정적이고 고도로 사용자 정의된 애플리케이션을 만들었다. 이 애플리케이션은 비록 완벽하지 않고 새로운 기능을 추가할 때 회귀 오류가 가끔 발생하기도 했지만, 꽤 안정적인 편이었고 이해 관계자의 업무를 만족스러운 수준으로 지원했다.중요한 기능을 세심하게 문서화하고 이를 이용해 단위, 컴포넌트 및 사용자 인수 테스트를 준비한다.
기존 하드웨어 및 미들웨어 인프라 변경마이그레이션은 현재의 백업 및 복제 아키텍처에 상당히 큰 변화를 초래하게 된다.새 플랫폼에서 필요로 하는 용량을 파악하고 그에 적합하거나 초과하는 용량을 가진 새로운 인프라를 만든다.
새로운 기능 개발에서 인프라 마이그레이션으로의 자원 전용이 인프라 투자에 더 많은 자원을 사용하다 보면, 새로운 기능을 개발하는 데 투입할 시간이 줄어든다. 기능의 관점에서 애플리케이션의 성숙도를 고려할 때, 이는 중요한 문제가 아니었다.1년 중에 비즈니스 조직에서 해당 시스템을 그렇게 많이 사용하지 않거나 새로 개발한 중요 기능을 필요로 하지 않는 적절한 시기를 선택하여 마이그레이션을 수행한다.

표 3은 만약 IBM이 MySQL을 계속 사용했더라면 영향을 미칠 확률이 높아 그에 대응할 완화 전략을 세워야 했을 위험의 목록을 나타낸 것이다.


표 3. 마이그레이션 필요성의 근거가 되는 위험 목록
위험설명
비즈니스 민첩성을 극대화할 수 없음비즈니스 인텔리전스와 운영 효과를 강화하기 위한 고성능 메트릭 도구가 없다면, 매일같이 데이터 볼륨이 증가하는 상황에서 보고 및 의사결정 프로세스가 점점 길어져 결국 끊임없이 경쟁에서 뒤처질 수밖에 없을 것이다.
데이터 무결성에 대한 위협 증대MySQL에서 트랜잭션 스토리지 엔진을 제공하지만, 이 애플리케이션은 좀 더 경량의 MyISAM 테이블 유형을 바탕으로 빌드되었다. 따라서 데이터 무결성과 거버넌스를 개선하기 위해서는 트랜잭션 스토리지 엔진이나 다른 데이터 서버 공급업체로의 마이그레이션이 매우 중요했다.
Oracle 지원에 대한 의존2009년에 Oracle이 Sun을 인수함에 따라, 향후 MySQL 지원에 대한 불투명성이 높아졌다. 그 밖에도, Oracle은 2007년에 Hyperion Brio 메트릭 도구를 인수했다.

신중하게 위험을 식별하고 이점을 평가하고 IBM에서 사용 가능한 도구 및 문서와 같은 자원을 효과적으로 활용함으로써, DB2로의 마이그레이션에 소중한 시간과 자원을 투자할 가치가 있다는 확신을 가졌다.


팀 구성원 교육

마이그레이션하기로 결정한 후, 우리는 작업 항목 계획, 작업 항목의 종속성 및 스케줄링 파악, 자원 지정에 착수했다. 이런 노력의 핵심은 DB2에 대한 팀 구성원의 지식을 늘리고 마이그레이션 참조 자료를 카탈로그하고 이전 마이그레이션 작업에서 얻은 교훈을 통합하는 것이었다. 또한, 마이그레이션 프로세스를 빠르게 진행하는 데 도움이 되도록 자동화된 마이그레이션 도구나 기타 개발 환경도 평가했다.

우리는 애플리케이션 마이그레이션을 넘어 향후 필요할 소프트웨어 및 하드웨어 인프라 변경 계획을 세웠고, 데이터 티어에 대한 변경을 넘어 PHP 인프라에 대해 다른 개선 작업을 수행할지 결정했다.

이런 초기의 노력을 진행하면서 꽤 정확한 프로젝트 계획을 수립할 수 있었다.

DB2에 대한 팀 구성원의 지식 확충

ibm.com 팀은 PTT 이외의 애플리케이션을 지원하므로, 다수의 팀 구성원이 다른 도구에 가장 흔히 사용되는 데이터베이스 플랫폼인 DB2에 대한 기본적인 지식은 갖추고 있었다. 참고자료 섹션에도 소개되어 있지만, DB2를 새롭게 접하는 팀 구성원에게는 다음과 같은 소개 자료가 초보자로서 DB2 제품을 습득하는 데 큰 도움이 되었다.

  • developerWorks의 Recommended reading list: DB2 for Linux, UNIX, and Windows application development
  • developerWorks의 Recommended reading list: DB2 for Linux, UNIX, and Windows database administration
  • IBM Press에서 발표한 Understanding DB2, Learning Visually with Examples
  • developerWorks의 IBM DB2 e-kit for Database Professionals

강의식 교육 과정과 같이 좀 더 공식적인 학습 기회가 더 도움이 될 수도 있다. 세부사항은 참고자료 섹션을 참조한다.

DB2에 대한 팀 구성원의 지식 확충

다른 애플리케이션 서버, 데이터 서버 및 운영 체제에서 IBM 소프트웨어로의 마이그레이션에 대한 풍부한 정보가 있다. 특히, IBM Redbooks에서는 마이그레이션 안내서 시리즈를 제작한다. 우리의 기본 정보 소스는 새로 개정된 MySQL to DB2 Conversion Guide였다(참고자료 참조). 우리가 처음 마이그레이션 계획을 세운 2009년 12월에 이 무료 안내서가 개정되었다. 이 안내서는 MySQL에서 DB2로의 마이그레이션 관련 정보의 기본 소스 역할을 톡톡히 했다.

PHP 관련 마이그레이션 정보를 수집하기 위해, 우리는 Developing PHP Applications for IBM Data Servers라는 다른 IBM Redbook과 작성자 중 한 명이 독립 소프트웨어 공급업체의 대표적 애플리케이션에 대한 마이그레이션 중에 습득한 경험과 지식을 검토했다. Daniel Krook의 블로그에 있는 Writing SQL for both MySQL and DB2라는 제목의 글에는 그가 관찰한 내용이 세세하게 수록되어 있다(참고자료 참조). 우리는 필독 권장 목록과 다른 DB2 제품 문서도 참조했다.

다른 마이그레이션 프로젝트에는 Software Migration Project Office(참고자료 참조)도 적절한 옵션이 될 수 있겠지만, 다른 프로젝트에서 DB2로 마이그레이션한 경험이 있어 여기에는 관여하지 않았다. SMPO에서는 마이그레이션 시나리오의 무료 평가 서비스를 제공한다.


마이그레이션 도구 평가

IBM Cloud에서의 학습, 실험, 개발 및 테스트

우리가 마이그레이션 프로젝트를 진행하던 시점에서는 IBM Smart Business Development and Test on the IBM Cloud 플랫폼이 여전히 무료 공개 베타 버전으로 제공되고 있었다. 그래서 DB2에 대해 실습을 해가면서 학습하고 이 클라우드에서 미리 구성된 DB2 서버 이미지를 아무런 위험 없이 이리저리 실험할 수 있었다. 현재 이 플랫폼은 애플리케이션 마이그레이션 일정을 단축하기 위한 엔터프라이즈급 플랫폼으로 제공되며, 이 플랫폼을 사용하여 DB2 사용 경험을 빠르게 체득할 수도 있다. 만약 우리가 오늘 마이그레이션을 시도해야 하는 상황이더라도 여전히 이 클라우드가 데이터베이스 및 애플리케이션 마이그레이션 전략의 핵심 파트가 될 것이다.

서비스 옵션 페이지에서 이 클라우드의 기술적 기능과 소프트웨어 패키지에 대해 자세히 알아볼 수 있다.

마이그레이션과 관련된 일반적인 태스크를 파악한 후, 마이그레이션 시간 단축에 도움이 될 몇 가지 자동화된 도구를 평가했다. MySQL-DB2 마이그레이션의 성공에 이르는 경로는 여러 가지가 있으므로, 어떤 경로가 우리에게 가장 적합할지 결정해야 했다. 마침내, IBM Data Movement Tool(DMT)과 Rational® Software Architect(RSA)를 사용하기로 결정했다. InfoSphere™ Data Architect와 Optim™ Development Studio를 포함한 다른 도구를 데이터 모델링 및 프로시저 개발에 사용할 수 있지만, 우리는 위와 같은 도구를 선택한 근거는 특유의 단순성과 우리가 Rational 도구를 사용하는 데 익숙하다는 사실이었다.

IBM Data Movement Tool
자동화된 DDL 내보내기, 데이터베이스 오브젝트 변환 및 데이터 이동을 위한 도구이다. 이 도구는 이전의 Migration Toolkit을 더욱 간단한 워크플로우로 대체한다.
Rational Software Architect
세부적인 비주얼 데이터 모델링, 리버스 엔지니어링 및 미세한 조정 능력이 특징적이다. 이 도구를 사용하여 뷰, 스토어드 프로시저, 사용자 정의 함수 및 트리거를 작성할 수도 있다.

하드웨어, 미들웨어 및 애플리케이션 마이그레이션 평가

애플리케이션 소프트웨어 마이그레이션 고려사항을 넘어, 우리는 하드웨어 업그레이드를 실행하고 PHP 개발 및 프로덕션 환경을 형식화할 기회도 가졌다. 우리는 이전에 사용자 정의 방식으로 구성하고 빌드한 하드웨어를 사용하면서 그래픽 사용자 인터페이스로 지원되고 미리 패키지화된 2진 PHP 배포로 이동하려 했다. Zend Server는 PHP 및 확장 업그레이드 단순화 외에도 캐싱, 모니터링 및 기타 구성 기능을 제공한다. 이 서버는 강력한 Zend Framework를 포함하므로 철저한 테스트를 거친 PHP 라이브러리를 사용하여 더욱 객체 지향적인 모델, 뷰 및 제어기(MVC) 아키텍처를 위한 단계의 역할도 한다.


프로젝트 계획 공식화

자료 수집, 수행할 작업 항목 결정, 타이밍 결정 및 종속 항목 결정 후, 필요한 시간과 자원을 결정하기 위한 프로젝트 계획을 작성했다. 표 4는 상위 레벨 계획을 나타낸 것이다.

우리는 아키텍트 1명, 개발자 2명 및 프로젝트 관리자 1명으로 구성된 팀이 150개의 테이블, 10GB의 데이터 및 수백 개의 PHP 파일을 마이그레이션하는 프로젝트를 실행할 때 약 3개월 정도 걸릴 것으로 예상했다.


표 4. MySQL에서 DB2로의 마이그레이션 상위 레벨 프로젝트 계획
단계태스크시간
준비태스크 목록 및 평가서 작성16
교육 필요사항 계획, 수집 및 수행48
애플리케이션 평가 및 시스템 계획 수행64
데이터베이스 구조 변환새로 채택할 DB2 기능 평가16
마이그레이션할 데이터 구조의 범위 결정16
MySQL에서 DB2로 데이터베이스 DDL 변환40
DB2 데이터베이스 및 오브젝트 작성24
데이터 마이그레이션마이그레이션할 데이터의 범위 검토8
데이터 마이그레이션40
권한 마이그레이션8
애플리케이션 업데이트SQL문 변환32
새로운 동시성 및 커서 옵션 구현16
트랜잭션, 사용자 정의 함수, 스토어드 프로시저 구현16
데이터베이스 함수 이름 및 매개변수 변환40
기능이 정확히 맵핑되지 않는 코드 섹션 확인 및 해결 방법 공식화32
데이터베이스 관리 설정기본 설정된 도구 세트가 명령행인지 GUI인지 확인8
백업 프로시저 맵핑 및 변환16
복제 프로시저 맵핑 및 변환16
자동화된 모든 데이터 보존 규칙 구현16
테스트 및 튜닝기존의 기능을 바탕으로 한 사용자 인수 테스트 작성16
성능 병목 현상 찾기 및 애플리케이션에서 논리 변경 수행24
Design Advisor, Performance Monitor 및 Index Advisor로 데이터베이스 튜닝32
배치PHP 모듈 및 호스팅 환경이 올바로 구성되어 있는지 확인24
통합 테스트 및 사용자 인수 완료40
지속적인 지원기능이 예상대로 작동하는지 확인16
데이터베이스 상태 경보에 대응16
사용자가 보고하는 성능 문제점 해결24


종합하기

프로젝트에서 실행할 필요가 있는 작업과 기간을 파악한 후, 우리 스스로의 재량으로 자원을 프로젝트의 네 단계에 맞춰 준비했다. 표 5에서는 반복적으로 수행된 각각의 순차적 단계를 사용 가능한 게시물, 도구 및 인프라에 연결한 것을 보여준다. 또한, 이 4가지 단계는 본 기사 시리즈의 4개 파트에 각각 해당한다.


표 5. 마이그레이션을 위한 단계와 자원
단계참고자료
준비
  • IBM Press Books
  • SMPO
  • DB2 전문가용 eKit
  • 필독 권장 목록
  • IBM Smart Business Development and Test on the IBM Cloud
데이터 마이그레이션
  • 데이터 이동 도구
  • Rational Software Architect
  • DB2 전문가용 eKit
  • 필독 권장 목록
  • IBM Smart Business Development and Test on the IBM Cloud
코드 마이그레이션
  • PHP 확장 문서
  • PHP Redbook
  • ISV의 경험
  • 필독 권장 목록
  • IBM Smart Business Development and Test on the IBM Cloud
배치
  • 비용 감축 전략
  • developerWorks 시리즈 활용
  • 필독 목록
  • 필독 권장 목록
  • IBM Smart Business Development and Test on the IBM Cloud

그림 1은 표 5를 그림으로 나타낸 것이다.


그림 1. MySQL에서 DB2로의 마이그레이션을 위한 단계와 자원 맵핑
MySQL에서 DB2로의 마이그레이션을 위한 단계와 자원 맵핑

마이그레이션 결과 미리보기: 스포일러 경보!

2009년 말, 우리는 MySQL에서 DB2로의 애플리케이션 마이그레이션을 진행하기 위해 이 계획을 최종 확정했다. 어떤 상황에서는 오히려 더 합리적인 다른 옵션도 많이 있지만, 다행히도 마이그레이션 경로가 올바로 문서화되어 있다. MySQL to DB2 Conversion Guide와 같은 다른 참고자료에서 이런 대안에 대해 알아볼 수 있다. 이 기사에서는 우리가 실행했던 계획과 성공에 도움이 된 도구를 설명한다.

2010년에 애플리케이션이 성공적으로 마이그레이션되었고 이는 IBM의 비즈니스 조직에서 수행하는 작업의 양적, 질적 향상에 도움이 되어 고객 만족도 상승으로 이어졌다.

우리 입장에서는, 우리가 수행한 마이그레이션이 대다수 일반 사용자에게는 그 영향이 전혀 느껴지지 않을 정도로 원활했다는 사실이 얼마나 성공적인 마이그레이션이었는지 잘 보여주는 지표였다. 항상 그랬듯이 이 애플리케이션은 계속 작동하지만, 이제는 데이터 무결성이 개선되고 데이터에 대한 정확한 정보를 바탕으로 비즈니스 조직의 대응 능력이 향상되었으며, IBM 인프라에 애플리케이션을 통합할 수 있는 가능성을 높여 미래에 활용할 소프트웨어의 다양성을 확대했다.


결론

본 기사 시리즈의 목표는 IBM의 프로젝트 팀이 MySQL에서 DB2로 PHP 애플리케이션을 마이그레이션한 시나리오를 소개하는 것이다. 또한, 같은 태스크를 수행하는 데 사용 가능한 자원은 무엇이고 2010년 초에 이 태스크를 어떻게 성공적으로 수행했는지도 학습했다.

이번 첫 시리즈 기사에서 살펴본 내용은 다음과 같다.

  • IBM 인트라넷 애플리케이션 변환 사례 연구의 동기, 위험 및 이점에 대해 학습했다.
  • 우리의 경험과 수집한 자료로부터 DB2에 대해 학습하고 MySQL 마이그레이션에 필요한 사항을 파악했다.
  • 마이그레이션 수행에 도움이 될 수 있는 도구를 살펴보았다.
  • 이 모든 자료를 활용하여 프로젝트의 각 단계를 수행하는 방법을 관찰했다.

본 시리즈의 다음 파트에서는 데이터베이스 구조를 변환하고 데이터 마이그레이션을 실행한 방법을 학습할 것이다.

감사의 인사

본 기사의 작성자 일동은 Leons Petrazickis와 Ambrish Bhargava가 기사를 검토하고 의견을 주신 데 대해 감사의 말씀을 드린다.


참고자료

교육

제품 및 기술

토론

필자소개

Daniel Krook은 뉴욕시 권역에서 활동하는 IBM/Open Group 마스터 인증 IT 전문가이다. 그는 웹 애플리케이션 개발 분야에서 10여 년의 경력을 보유하고 있고 현재는 Java EE, DB2, REST 및 모바일 기술을 사용하여 IBM을 위한 클라우드 인프라를 빌드하는 프로젝트에 참여하고 있다. 그는 PHP, Java EE, BlackBerry, DB2,Solaris에 관한 다양한 인증 자격 보유자이다. 그리고 IBM developerWorks에 PHP 관련 기사를 기고하고 있으며 IBM Redbook "Developing PHP Applications for IBM Data Servers"를 공동 집필했다.

Yan Li Mu는 중국 다롄에서 일하는 IT 아키텍트이다. 그는 웹 애플리케이션 개발 분야에서 8여 년의 경험을 보유하고 있고, Java EE 기술, PHP 및 데이터베이스 개발에 주력하고 있다.

잘못된 도움말 신고

부정사용 신고

감사합니다. 이 항목은 운영자가 관심을 표시했습니다.


잘못된 도움말 신고

부정사용 신고

제출실패 신고. 나중에 다시 실행해주세요.


디벨로퍼웍스 로그인


IBM ID가 필요하세요?
IBM ID를 잊으셨습니까?


비밀번호를 잊으셨습니까?
비밀번호 변경

developerWorks 이용 약관에 동의하시는 경우 제출을 클릭하십시오. 이용 약관.

 


developerWorks에 처음 로그인하면 developerWorks프로파일이 생성됩니다.귀하의 프로파일에서 동의하신 내용이 공개되지만 이 사항은 언제든지 변경 가능합니다. 귀하의 성명(숨김으로 체크되어 있어도 표시됩니다)과 디스플레이 이름은 게시한 컨텐츠나 사이트 엑세스시 표시됩니다.

화면상에 보여지는 닉네임을 정하세요.

처음 developerWorks에 로그인할 때 프로파일이 작성되므로, 이를 위해 디스플레이 이름을 선택해야 합니다. 선택하신 디스플레이 이름은 developerWorks에 게시한 컨텐츠에 표시됩니다.

3글자 이상 31글자 이하의 길이로 사용 가능합니다. dW커뮤니티 내에서는 보안상 이메일주소를 제외한 다른 이름을 지정하셔야 합니다.

3개의 &이나 대쉬를 포함해주시고 31글자내로 제한해주세요.


developerWorks 이용 약관에 동의하시는 경우 제출을 클릭하십시오. 이용 약관.

 


아티클 순위

의견

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=20
Zone=Information Management, 오픈 소스
ArticleID=783589
ArticleTitle=MySQL에서 DB2로 PHP 애플리케이션 이동, Part 1: 마이그레이션 준비
publish-date=01022012

태그

Help
검색 필드를 사용하여 My developerWorks 내에서 해당 태그가 사용된 모든 종류의 컨텐츠를 검색하십시오.

태그를 더 많이 보거나 적게 보기 위해 슬라이더 막대를 사용하십시오.

인기 태그는 특정 컨텐츠 존(예를 들어, 자바, 리눅스, WebSphere)의 최고 인기 태그를 보여줍니다.

내 태그는 특정 컨텐츠 존(예를 들어, 자바, 리눅스, WebSphere)의 귀하의 태그를 보여줍니다.

검색 필드를 사용하여 My developerWorks 내에서 해당 태그가 사용된 모든 종류의 컨텐츠를 검색하십시오. 인기 태그는 특정 컨텐츠 존(예를 들어, 자바, 리눅스, WebSphere)의 최고 인기 태그를 보여줍니다. 내 태그는 특정 컨텐츠 존(예를 들어, 자바, 리눅스, WebSphere)의 귀하의 태그를 보여줍니다.