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 인프라에 대해 다른 개선 작업을 수행할지 결정했다.
이런 초기의 노력을 진행하면서 꽤 정확한 프로젝트 계획을 수립할 수 있었다.
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
강의식 교육 과정과 같이 좀 더 공식적인 학습 기회가 더 도움이 될 수도 있다. 세부사항은 참고자료 섹션을 참조한다.
다른 애플리케이션 서버, 데이터 서버 및 운영 체제에서 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에서는 마이그레이션 시나리오의 무료 평가 서비스를 제공한다.
마이그레이션과 관련된 일반적인 태스크를 파악한 후, 마이그레이션 시간 단축에 도움이 될 몇 가지 자동화된 도구를 평가했다. 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. 마이그레이션을 위한 단계와 자원
| 단계 | 참고자료 |
|---|---|
| 준비 |
|
| 데이터 마이그레이션 |
|
| 코드 마이그레이션 |
|
| 배치 |
|
그림 1은 표 5를 그림으로 나타낸 것이다.
그림 1. 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가 기사를 검토하고 의견을 주신 데 대해 감사의 말씀을 드린다.
교육
- RSS 피드를 사용하여 곧 공개될 이 시리즈 기사에 대한 소식을 요청하자. (developerWorks 컨텐츠의 RSS 피드에 관해 자세히 확인해보자.)
- IBM Redbooks에서 무료로 제공하는
MySQL to DB2 Conversion Guide를 사용하여 마이그레이션을 계획하고 실행해보자.
- 무료로 제공되는 Developing PHP Applications for
IBM Data Servers IBM Redbook을 참조하여 샘플 애플리케이션을 사용해 DB2에서 PHP 애플리케이션을 구성, 실행 및 테스트하는 방법을 파악하자.
- MySQL에서 DB2로의 데이터베이스 오브젝트 및 데이터 마이그레이션에 도움이 될 수 있는
무료 IBM Data Movement Tool을 다운로드하고 학습해보자.
- DB2로의 ISV 애플리케이션 마이그레이션에 대해 Daniel Krook이 블로그에 올린
Writing SQL for both MySQL and DB2라는 글을 읽어보자.
- 특정 개발 주제에 대한 자세한 정보는
Recommended reading list: DB2 for
Linux, UNIX, and Windows application development를 참조한다.
- 특정 관리 주제에 대한 자세한 정보는
Recommended reading list: DB2 for
Linux, UNIX, and Windows database administration을 참조한다.
- Raul F. Chong, Xiaomei Wang, Michael Dang 및 Dwaine R. Snow가 공동 집필하여 IBM Press에서 발표한
Understanding DB2: Learning Visually with Examples, 2nd Edition을
참조하여 DB2를 익히고 그 기능을 심층 학습해보자.
- George Baklarz와 Paul C. Zikopoulos가 공동 집필하여 IBM Press에서 발표한
DB2 9 for Linux, UNIX, and
Windows: DBA Guide, Reference, and Exam Prep, 6th Edition을 참조하여 DB2 애플리케이션 개발 및 관리에 대해 자세히 알아보자.
- Leverage MySQL skills to learn DB2
Express: DB2 versus MySQL backup and recovery로 데이터를 안전하게 보존할 수 있는 전략을 알아보자.
- Leverage MySQL skills to learn DB2
Express: DB2 versus MySQL administration and basic tasks를 참조하여 도구, SQL 구문, 동시성 옵션 및 권한을 얻자.
- Leverage MySQL skills to learn DB2
Express: DB2 versus MySQL data movement를 탐색하여 MySQL 및 DB2 내에서 사용 가능한 가져오기 및 내보내기 도구에 대해 알아보자.
- Leverage MySQL skills to learn DB2
Express: DB2 versus MySQL graphical user interface에서 데이터베이스 시스템 관리를 위한 시각적 도구에서 사용 가능한 기능을
비교해보자.
- IBM DB2 functions in the official
PHP documentation 및 PDO driver에서 PHP에 권장되는 2개의 DB2 인터페이스에 대해 알아보자.
-
정보 관리 우수 사례에서는 본 기사의 사례 연구에서 사용된
Information Modeling with Rational Data Architect Version 7과
같이 사용 가능한 도구를 최선으로 활용하는 방법과 공통 해결 과제에 대한 최적의 해결책을 제시하는 논문 시리즈를 확인할 수 있다.
- IBM Smart Business Development and
Test on the IBM Cloud를 빠르게 살펴보자.
- Best practices for DB2 for Linux,
UNIX, and Windows: Cost reduction strategies with DB2에서 DB2 성능 최적화에 대한 개론을 읽어보자.
- Migration station에서는
다른 데이터베이스, 애플리케이션 서버 및 운영 체제에서 IBM 소프트웨어로의 마이그레이션에 대한 자세한 정보를 확인할 수 있다.
- developerWorks Information Management
영역에서는 Information Management에 대한 정보를 제공한다. 기술 자료, 사용법 기사, 교육, 다운로드, 제품 정보 등을 찾아볼 수 있다.
- developerWorks 기술 행사 및 웹 캐스트를 통해 최신 정보를 얻을 수 있다.
- Twitter의 developerWorks 페이지를 살펴보자.
제품 및 기술
- IBM DB2 e-kit for
Database Professionals를 다운로드하여 DB2 기능을 학습하고 기존 데이터베이스 관리 및 애플리케이션 개발 스킬을 활용하고 DB2 커뮤니티에 참여하고
인증 시험을 준비하자.
- Software Migration Project Office DB2 migration team을
통해 무료 마이그레이션 평가를 받을 수 있다.
- DB2 on Amazon EC2를 평가해보자.
- Linux, Windows 또는 IBM i에서 높은 수준의 신뢰성, 성능 및 보안이 요구되는
PHP 애플리케이션을 실행하고 관리하기 위한 완벽한 엔터프라이즈급 웹 애플리케이션 서버에 대한 자세한 내용은
Zend Server를 확인해보자.
- Zend Server에는 DB2 드라이버가 포함되지만, 고유의 PHP 구성을 가진 경우
PECL 또는
Windows binaries on SourceForge에서 드라이버 확장
소스를 찾을 수 있다.
- DB2 training and certification에
대해 자세히 알아보거나 Information Management
bootcamp에 참석하자.
- 무료로 제공되는 DB2 Express-C
데이터 서버를 다운로드하여 설치하자.
- Rational Software Architect
또는 InfoSphere Data Architect를 사용하여 논리 및 실제 데이터 모델링을 수행할 수 있다.
- Optim Development Studio를
사용하여 DB2 기반 애플리케이션을 개발하고 최적화할 수 있다.
- developerWorks에서 직접 다운로드할 수 있는
IBM 시험판 소프트웨어를 사용하여 후속 개발 프로젝트를 구현해 보자.
토론
- 포럼에 참여하기.
- PHP forum: Developing PHP
applications with IBM Information Management products (DB2 and Informix)에서 질문을 검색, 모니터링 및 제출할 수 있다.
- DB2 Application Enablement
포럼에서 IBM Data Management Tool에 대한 질문을 제출할 수 있다.
- developerWorks 포럼 & 블로그를 통해
developerWorks 커뮤니티에 참여하자.
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"를 공동 집필했다.