Background Image
조회 수 23223 추천 수 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

  1. join update 처리방법입니다.(연관성 있는 테이블을 조인하여 처리하는 UPDATE 구문)

    Date2012.11.30 Category질의작성 By권호일 Views20565
    Read More
  2. MySQL+XE를 CUBRID+XE로 운영하기 – mysqldump파일과 CMT사용

    Date2012.11.13 Category마이그레이션 Bycubebridge Views23223
    Read More
  3. CUBRID와 CUBRID Web Manager설치, 그리고 XE의설치 및 연동까지

    Date2012.11.13 CategoryCUBRID 매니저 Bycubebridge Views18262
    Read More
  4. CUBRID-PHP-Driver 연동가이드

    Date2012.11.13 Category응용개발 Bycubebridge Views17432
    Read More
  5. MySQL에서 CUBRID로 갈아탈 때 알아야 할 것

    Date2012.11.13 Category마이그레이션 Bycubebridge Views22892
    Read More
  6. 오라클 to CUBRID로 마이그레이션 수행 시 주의사항

    Date2012.11.12 Category응용개발 Bycubebridge Views16848
    Read More
  7. 오라클의 order by 시 first와 last 대체 사용법

    Date2012.11.12 Category마이그레이션 Bycubebridge Views20782
    Read More
  8. CUBRID에서의 BLOB/CLOB 사용시 백업 및 복구에 대한 주의 점

    Date2012.09.18 Category운영관리 Bycubebridge Views33293
    Read More
  9. 전자정부 표준프레임워크 CUBRID 사용 방법 문의 참조

    Date2012.09.17 Category기타 Bycubebridge Views20786
    Read More
  10. Windows 서버에서 [장치에 쓰기 캐싱 사용] 설정/해제에 따른 성능 차이

    Date2012.06.30 Category운영관리 By이용미 Views20355
    Read More
  11. 데이터 입력 중 디스크 공간 부족 오류가 발생하였을 때, 복구 방법

    Date2012.06.30 Category운영관리 By이용미 Views14472
    Read More
  12. 게시판 응용 중 조회수로 정렬하는 경우 인덱스 생성 방법

    Date2012.06.23 Category질의작성 By손승일 Views14032
    Read More
  13. 문자(char, varchar)로 설계한 날짜데이타 검증하기

    Date2012.04.27 Category질의작성 By권호일 Views17974
    Read More
  14. CUBRIDManager의 접속 정보 이관

    Date2012.04.14 CategoryCUBRID 매니저 Bycubebridge Views12565
    Read More
  15. CUBRID Migration Tookit 8.4.1

    Date2012.04.14 Category마이그레이션 Bycubebridge Views11256
    Read More
  16. CUBRID 에서의 사용자 권한관리 방법

    Date2012.04.14 Category운영관리 Bycubebridge Views23861
    Read More
  17. 데이터베이스 마이그레이션(unloaddb & loaddb) 의 효과적인 수행방법

    Date2012.04.14 Category마이그레이션 Bycubebridge Views24720
    Read More
  18. 세부내역과 소계를 한개의 쿼리문장으로 수행하는 SQL

    Date2012.03.31 Category질의작성 By권호일 Views14235
    Read More
  19. 한건의 데이타를 여러건으로 조회하는 쿼리입니다.

    Date2012.03.30 Category질의작성 By권호일 Views9568
    Read More
  20. 여러건의 코드명을 한건으로 조회하는 쿼리입니다.

    Date2012.03.30 Category질의작성 By권호일 Views10947
    Read More
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