Background Image
조회 수 23069 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부

 운영 중인 MySQL기반의XE사이트를 CUBRID로 전환하고 싶을 때 CUBRID Migration Tookit을 사용하여 마이그레이션 하는 가이드를 소개 한다.

 

1. 설치 환경 준비

 [그림1]과 같이 타겟 장비의 환경을 구축하기 위해 순서대로 수행한다.

1.jpg

 

[그림1] 로컬 장비와 타겟 장비의 환경

 

① CUBRID엔진 설치 및 DB 생성하기

             타겟 장비에는 CUBRID 최신 버전을 설치한다.(Linux에서 CUBRID 설치하기 매뉴얼)

CUBRID Engine 다운로드 하기 à http://ftp.cubrid.org/CUBRID_Engine/

그리고 로컬 장비에 설치된 CUBRID Manager{이하 CM}를 사용하여 운영할 데이터베이스

(xe_db)를 생성한다(CUBRIDManager에서 생성하기 메뉴얼)

 

 웹서버 + PHP + CUBRID-PHP-Driver 설치하기

             타겟장비에 웹서버와 PHP를 설치하고 phpinfo()함수를사용한 페이지를 생성한다.

             CUBRID-PHP-Driver를 추가 설치 한 후 phpinfo()페이지에서 [그림2]를 확인한다.

             (하기 / 설치에서부터 하기 매뉴얼)

CUBRID_php_driver확인.jpg

[그림2] CUBRID-PHP-Driver 설치 후 phpinfo() 확인

 

2. 마이그레이션 도구

MySQL의 스키마/데이터를CUBRID로 이관하기 위해서 CUBRID Migration Toolkit(이하 CMT) 이라는 도구를 사용한다.

이는 Java 기반의 GUI도구이며,CUBRID 공식 페이지 또는 FTP서버에서 다운로드 한다.

(CUBRID 공식 홈페이지에서 다운로드 하기FTP서버에서 다운로드 하기)

 

3. MySQL 데이터를 XML포맷으로 덤프하기

MySQL XML 덤프 파일을만들기 위해 아래와 같은 명령어를 실행한다.

 

  C:Program FilesMySQLMySQL Server 5.5bin> mysqldump --xml --databases xe_db 

  -u root -p --hex-blob > xe_db.xml
  Enter password: *******

 

 

4. CMT XML파일을 로딩하여CUBRID로 스키마/데이터를 마이그레이션하기

CMT를 시작하며 [마이그레이션]à[마이그레이션마법사]선택한다마법사[1단계]에서는 생성해 놓았던 MySQL XML

덤프파일(xe_db.xml)을 선택하고 파일을 등록한 후 [Next>]를 선택한다.

  1step원본데이터소스선택.jpg

 

[그림3] 1단계 마법사 : 원본데이터 소스 선택

 

[2단계]에서 대상 데이터베이스를선택하는데이번 시나리오는 [온라인(JDBC사용)]을 선택하여 진행한다.

때문에 생성해 두었던 xe_db가 구동 중인지 확인하고 정지 중일 경우 시작한 후 [신규]를선택하며 [그림5]

참고하여 등록한다.

2step대상데이터선택.jpg

 [그림4] 2단계 마법사 온라인 마이그레이션 하기 위한 대상 데이터베이스선택

 

타겟 장비에 대한 호스트 주소(IP)와 연결포트(브로커포트), 데이터베이스 정보를 입력한다.

2step대상데이터선택_DB연결.jpg

 [그림5] 2단계 마법사 : 새 데이터베이스 연결

 

[3단계]에서 마이그레이션 객체를 선택하고, [4단계]에서는 객체 맵핑을 한 후 [5단계]에서 [시작하기]를 선택한다.

 

 CMT의 마이그레이션 과정 요약

XML 덤프 파일 로딩 à SQL구문으로해석(시간소요à 객체 선택à 타입 맵핑

à CUBRID 데이터베이스에 접속 à 테이블 생성à 데이터 삽입 à 인덱스 생성à 완료

 

 마이그레이션 확인

              보고서 확인 à 마이그레이션 실패 건수가 있지는 않는지 확인한다. 

마이그레이션_리포트.jpg

 [그림5] 마이그레이션 Report

원본 소스DB에서 중복 데이터가 있는 경우최종 단계에서 인덱스 생성에 실패할 수 있기 때문에 리포트에서 인덱스 실패가 나는 경우가 종종 발생한다따라서 리포트에 실패가 있는지 반드시 확인하고인덱스를 추가 생성한다아래는 마이그레이션 결과를 추가로 확인 하는 방법이다.

-      테이블 개수 확인 à XE 특정모듈이 동작을 안 할 수 있다(SHOWTABLE 매뉴얼)

-      데이터 개수 확인 à 데이터 불일치할 수 있다(COUNT(*)얼)

-      인덱스 개수 확인 à 원본 MySQL 데이터에서 기본 키 컬럼에 중복 데이터가 있는 경우인덱스누락이 발생할 수 있다이 경우, XE를 운영할 때검색 속도에 문제가 될 수 있으므로 반드시 추가 인덱스를 생성한다(SHOWINDEX 얼)

-            

5. XE어플리케이션을 CUBRID 운영서버가 있는 환경으로 이관하기

MySQL기반으로 운영되던 XE사이트는 타겟 장비의 웹서버에 그대로복사한다그런 다음 아래와 같이 설정을 수정해준다.

 

 

 웹서버의 운영 권한 확인하기

웹서버의 설정파일에서(httpd.conf) 운영권한을 확인하여 운영할 XE사이트의 [File]모듈의 권한을 웹서버

운영권한과 동일하게 수정해준다.

 [root@~]# vi /root/was_source/httpd-2.2.22/docs/conf/httpd.conf
  -----------------------------------------------------------------------------------------------------------------
  64line  # running httpd, as with most system services.
  65line  #
  66line  User nobody
  67line  Group nobody
  68line
  69line  </IfModule>
  70line  </IfModule>
  -----------------------------------------------------------------------------------------------------------------
  [root@~]# cd /usr/local/server/apache/htdocs/so_xe
  [root@~]# chown nobody:nobody -R files/
  [root@~]#ls –al
  -rw-r--r--   1  root    root      1545 Feb 14  2011 fblogo.gif
  drwxr-xr-x  9 nobody nobody    4096 Apr 10 13:59 files



② XE에서 접속할 DB정보를 CUBRID로 수정하기

  [root@~]#cd /usr/local/server/apache/htdocs/so_xe
  [root@~]# vi files/config/db.config.php
  -----------------------------------------------------------------------------------------------------------------
  <?php if(!defined("__ZBXE__")) exit();
  $db_info->time_zone = '+0900';
  $db_info->use_rewrite = 'Y';
  $db_info->default_url = 'http://your_domain.com/so_xe'; 
  $db_info->use_optimizer = 'N';
  $db_info->qmail_compatibility = 'N';
  $db_info->use_ssl = 'N';
  $db_info->use_db_session = 'N';
  $db_info->use_sso = 'N';
  $db_info->use_mobile_view = 'Y';
  $db_info->use_template_cache = 'N';
  $db_info->use_html5 = 'N';
  $db_info->master_db = array('db_type' => 'cubrid','db_port' => '33000','db_hostname' =>'localhost','db_password' => '1234','db_database' => 'xe_db','db_userid' =>'dba','db_table_prefix' => 'xe_');
  $db_info->slave_db = array('db_type' => 'cubrid','db_port' => '33000','db_hostname' =>'localhost','db_password' => '1234','db_database' => 'xe_db','db_userid' =>'dba','db_table_prefix' => 'xe_');
//DB 이중화를 하는 경우, slave DB 접속 정보를 입력한다. 
//그렇지 않은 경우 master_db와 동일한 정보를 입력한다.
?>

 

 

 

③ 최종 관리자모드에서 캐시파일 재생성 하기

도메인서버에서 새로운 CUBRID 운영 서버의 IP주소를 등록한후브라우저에서 주소창에 Default_url

(http://your_domain.com/so_xe)를입력한 후 최종 관리자로 로그인을 한다관리자 페이지 가장하단에

있는 [캐시파일 재생성]을 선택한다.

xe최종관리자모드_캐시파일재생성.jpg

 

 

 

 사이트 링크를 위한 설정하기

사이트내에 링크가 걸린 항목들이 XE의 ‘rewrite’모듈로인해 운영되기 때문에 이 모듈이 정상 운영을

하도록 httpd.conf파일에서 아래와 같이 수정한다.

 [root@~]# vi /root/was_source/httpd-2.2.22/docs/conf/httpd.conf
  -----------------------------------------------------------------------------------------------------------------
  152line AllowOverride all
  -----------------------------------------------------------------------------------------------------------------
  [root@~]# /etc/init.d/httpd restart

※참고 : 위 설정은 전역을 기준으로 설정하였으며 보안을 위해 필요한 곳만 지정하여 설정할수도 있다.

 

⑤ 이런 에러가 났을때 조치하는 방법

[330, ERR_CONTENT_DECODING_FAILED : 알수 없는 오류]

http://your_domain.com/so_xe 와 같은 XE사이트로 접속 시 [그림]과 같이

[330, ERR_CONTENT_DECODING_FAILED : 알수 없는 오류] 메시지 처럼 컨텐츠 인코딩 오류가 발생할

경우다음과 같은 조치 사항을 참고한다 

xe페이지오류ERR_CONTENT_DECONDING_FAILED.jpg

 [그림7 XE사이트의 페이지 오류]

 

 [root@~]# vi classes/display/DisplayHandler.class.php
  -----------------------------------------------------------------------------------------------------------------
  //gz 압축 전송 옵션을 끄기
  31line      ) $this->gz_enabled = false;  // (ture를 false로 수정)

 

 

기존 사이트와 출력 형태가 다르다.

IE html doc type을 인식하지 못해 페이지의 디자인 정렬이 다르게 출력 되었을 경우는 PHP태그의

짧은 스타일때문에 발생한 문제이다이때는 아래와 같이 php.ini파일에서‘short_open_tag’ On으로

설정해주고 웹서버를재시작한다.

 

 [root@~]# vi /usr/local/server/apache/conf/php.ini
  -----------------------------------------------------------------------------------------------------------------
  141line short_open_tag = On
  -----------------------------------------------------------------------------------------------------------------
  [root@~]# /etc/init.d/httpd restart

  큐브리드 공부하기 까페 참조: http://cafe.naver.com/studycubrid/902

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
199 질의작성 join update 처리방법입니다.(연관성 있는 테이블을 조인하여 처리하는 UPDATE 구문) 권호일 2012.11.30 20383
» 마이그레이션 MySQL+XE를 CUBRID+XE로 운영하기 – mysqldump파일과 CMT사용 file cubebridge 2012.11.13 23069
197 CUBRID 매니저 CUBRID와 CUBRID Web Manager설치, 그리고 XE의설치 및 연동까지 file cubebridge 2012.11.13 18097
196 응용개발 CUBRID-PHP-Driver 연동가이드 file cubebridge 2012.11.13 17135
195 마이그레이션 MySQL에서 CUBRID로 갈아탈 때 알아야 할 것 cubebridge 2012.11.13 22592
194 응용개발 오라클 to CUBRID로 마이그레이션 수행 시 주의사항 cubebridge 2012.11.12 16635
193 마이그레이션 오라클의 order by 시 first와 last 대체 사용법 file cubebridge 2012.11.12 20561
192 운영관리 CUBRID에서의 BLOB/CLOB 사용시 백업 및 복구에 대한 주의 점 cubebridge 2012.09.18 33156
191 기타 전자정부 표준프레임워크 CUBRID 사용 방법 문의 참조 cubebridge 2012.09.17 20588
190 운영관리 Windows 서버에서 [장치에 쓰기 캐싱 사용] 설정/해제에 따른 성능 차이 이용미 2012.06.30 20231
189 운영관리 데이터 입력 중 디스크 공간 부족 오류가 발생하였을 때, 복구 방법 이용미 2012.06.30 14329
188 질의작성 게시판 응용 중 조회수로 정렬하는 경우 인덱스 생성 방법 1 손승일 2012.06.23 13897
187 질의작성 문자(char, varchar)로 설계한 날짜데이타 검증하기 권호일 2012.04.27 17822
186 CUBRID 매니저 CUBRIDManager의 접속 정보 이관 file cubebridge 2012.04.14 12380
185 마이그레이션 CUBRID Migration Tookit 8.4.1 file cubebridge 2012.04.14 11079
184 운영관리 CUBRID 에서의 사용자 권한관리 방법 file cubebridge 2012.04.14 23640
183 마이그레이션 데이터베이스 마이그레이션(unloaddb & loaddb) 의 효과적인 수행방법 file cubebridge 2012.04.14 24534
182 질의작성 세부내역과 소계를 한개의 쿼리문장으로 수행하는 SQL 권호일 2012.03.31 14086
181 질의작성 한건의 데이타를 여러건으로 조회하는 쿼리입니다. 권호일 2012.03.30 9410
180 질의작성 여러건의 코드명을 한건으로 조회하는 쿼리입니다. 1 권호일 2012.03.30 10750
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 14 Next
/ 14

Contact Cubrid

대표전화 070-4077-2110 / 기술문의 070-4077-2113 / 영업문의 070-4077-2112 / Email. contact_at_cubrid.com
Contact Sales