업그레이드

업그레이드 시 주의 사항

변경

10.2 버전과의 동작 차이에 대해서는 릴리스 노트의 11.0 변경사항을 반드시 참고한다.

기존 환경 설정 파일 보관

  • 기존 버전의 $CUBRID/conf 디렉터리의 환경 설정 파일(cubrid.conf, cubrid_broker.conf, cm.conf)과 $CUBRID_DATABASES 디렉터리의 DB 위치 정보 파일(databases.txt)을 보관한다.

새로 추가된 예약어 검사

  • CUBRID 설치 패키지에 포함 또는 http://ftp.cubrid.org/CUBRID_Engine/11.0/에서 배포되는 CUBRID 11.0 버전용 예약어 검출 스크립트인 check_reserved.sql을 이용하여 예약어 사용 여부를 검사할 수 있으며, 예약어로 지정된 식별자를 사용하고 있을 경우 식별자를 수정해야 한다. 식별자 절을 참고한다.

환경 변수 CUBRID_MSG_LANG 설정

  • CUBRID_LANGCUBRID_CHARSET 환경 변수는 더 이상 사용되지 않으며, 데이터베이스를 생성할 때 언어 및 문자셋을 반드시 지정해야 한다. 유틸리티 메시지 및 오류 메시지를 출력할 때는 CUBRID_MSG_LANG 환경 변수를 사용하며 설정하지 않으면 데이터베이스를 생성할 때 지정한 언어 및 문자셋을 따른다.

스키마 변환

  • 9.0 Beta 미만 버전에서 ISO-8859-1이 아닌 EUC-KR, UTF-8 문자셋을 사용하던 사용자는 스키마를 반드시 변경해야 한다. 9.0 Beta 미만 버전에서는 CHAR, VARCHAR 의 자릿수(precision)를 바이트 크기로 지정했으나 9.0 Beta 버전부터는 글자의 개수로 지정한다.

로캘 추가/유지

  • 추가하고 싶은 로캘이 있는 경우 $CUBRID/conf/cubrid_locales.txt 파일에 해당 로캘을 추가한 후 make_locale 스크립트를 실행한다. 로캘 설정을 참고한다.

  • 기존 버전의 로캘을 유지하고 싶은 경우에도 $CUBRID/conf/cubrid_locales.txt 파일에 기존 버전의 로캘을 추가하고 make_locale 스크립트를 실행한 후 cubrid createdb 명령 실행 시 기존 로캘을 지정한다.

DB 마이그레이션

  • CUBRID 11.0는 CUBRID 10.2 및 이전 버전들과 DB 볼륨이 호환되지 않으므로, cubrid unloaddb/loaddb 유틸리티를 이용해서 마이그레이션을 해야 한다. 자세한 절차는 DB 마이그레이션 을 참고하면 된다.

  • CUBRID 2008 R3.1부터 GLO를 지원하지 않으며 LOB 타입이 GLO 기능을 대체하게 되었으므로, GLO를 이용한 응용 및 스키마는 LOB 타입에 맞게 수정해야 한다.

Note

2008 R4.0 이하 버전에서 TIMESTAMP ‘1970-01-01 00:00:00’(GMT)는 TIMESTAMP의 최소값이지만, 2008 4.1 이상 버전에서는 zerodate로 인식되며 TIMESTAMP ‘1970-01-01 00:00:01’(GMT)이 TIMESTAMP의 최소값이다.

복제 또는 HA 환경 재구성

  • CUBRID 2008 R4.0부터는 복제 기능을 더 이상 지원하지 않으므로, 예전의 복제 기능을 사용하는 시스템에서는 DB 마이그레이션 이후 HA 환경으로 재구성할 것을 권장한다. 또한, CUBRID 2008 R2.0 및 R2.1에서 제공된 Linux Heartbeat 기반의 HA 기능을 사용하는 시스템도 보다 안정적인 운영을 위해 DB 마이그레이션 이후 CUBRID Heartbeat 기반의 HA 환경으로 재구성해야 한다. (아래의 HA 환경에서 DB 마이그레이션 참고)

  • HA 환경 구성은 매뉴얼의 CUBRID HA를 참고하여 재설정해야 한다.

Java 저장 함수/프로시저

CUBRID 9.2/9.3/10.0/10.1/10.2 에서 CUBRID 11.0 으로 업그레이드하기

CUBRID 9.2/9.3/10.0/10.1/10.2 버전을 사용 중인 사용자는 다른 디렉터리에 11.0를 설치하고 데이터베이스를 11.0로 마이그레이션한 후 이전 환경 설정 파일에서 파라미터 값을 수정해야 한다.

DB 마이그레이션

다음 표는 http://ftp.cubrid.org/CUBRID_Engine/11.0/ 에서 제공되는 예약어 검출 스크립트인 check_reserved.sql와 cubrid unloaddb/loaddb 유틸리티를 사용하여 마이그레이션을 수행하는 방법을 보여준다. (unloaddbloaddb 참고)

단계

Linux 환경

Windows 환경

Step C1: CUBRID Service 종료

% cubrid service stop

CUBRID Service Tray 를 종료한다

Step C2: 예약어 검출 스크립트

실행

예약어 검출 스크립트가 위치하는 디렉토리에서 아래 명령을 실행한다.

검출 결과를 확인하여 마이그레이션 진행 또는 식별자 수정 작업을 진행한다. (허가된 식별자에 대해)

% csql -S -u dba -i check_reserved.sql testdb

Step C3: 이전 버전 DB 언로드

이전 버전의 databases.txt 및 설정 파일을 별도의 디렉토리에 보관한다. (C3a)

cubrid unload 유틸리티를 실행하고 이 때 생성된 파일을 별도 디렉토리에 보관한다.(C3b)

% cubrid unloaddb -S testdb

이전 DB 를 제거 한다. (C3c)

% cubrid deletedb testdb

이전 버전의 큐브리드를 언인스톨한다.

Step C4: 새 버전을 인스톨한다.

다음을 참고한다. 설치와 실행

Step C5: DB 생성 및 데이터 로딩

원하는 DB 생성 디렉토리로 이동 후 DB 생성한다. 이 때 로캘 세팅에 주의한다.(*). (C5a)

% cd $CUBRID/databases/testdb

% cubrid createdb testdb en_US

(C3b)에서 생성한 파일을 가지고cubrid loaddb 유틸리티를 실행한다. (C5b)

% cubrid loaddb -s testdb_schema -d testdb_objects -i testdb_indexes testdb

Step C6: 새 버전의 DB 백업

% cubrid backupdb -S testdb

Step C7: CUBRID 환경 설정 및

CUBRID Service 구동

환경 설정 파일을 수정한다. 이 때 (C3a)에서 보관한 이전 버전의 환경 설정 파일을 새 버전에 맞게 수정한다.

(시스템 파라미터 설정은 다음을 참조 파라미터 설정시스템 설정)

% cubrid service start

% cubrid server start testdb

CUBRID Service Tray > [Service Start] 를 선택하여 서비스를 시작한다.

명령 프롬프트 창에서 DB 서버를 구동한다.

% cubrid server start testdb

파라미터 설정

cubrid.conf

  • log_buffer_size 의 최소값이 48KB(3*1page, 16KB=1page)에서 2MB(128*1page, 16KB=1page)로 변경되었으므로, 이 값을 설정한 경우 변경된 최소값보다 크게 설정해야 한다.

CUBRID 9.1에서 CUBRID 11.0으로 업그레이드하기

CUBRID 9.1 버전을 사용 중인 사용자는 다른 디렉터리에 11.0를 설치하고 데이터베이스를 11.0로 마이그레이션한 후 이전 환경 설정 파일에서 파라미터 값을 수정해야 한다.

DB 마이그레이션

DB 마이그레이션 를 참고한다.

파라미터 설정

cubrid.conf

  • log_buffer_size 의 최소값이 48KB(3*1page, 16KB=1page)에서 2MB(128*1page, 16KB=1page)로 변경되었으므로, 이 값을 설정한 경우 변경된 최소값보다 크게 설정해야 한다.

  • sort_buffer_size 의 최대값을 2G로 제한되므로 sort_buffer_size 의 값은 2G 보다 크게 설정하지 않아야 한다.

  • 다음 표의 기존 파라미터는 더 이상 지원하지 않을 예정이며 신규 파라미터 사용을 권장한다. 괄호 안의 값이 생략된 경우 기본 적용되는 단위이며, 신규 파라미터는 단위 지정이 가능하다. 자세한 내용은 시스템 설정 에서 각 파라미터 설명을 참고한다.

    기존 파라미터(단위)

    신규 파라미터(단위)

    lock_timeout_in_secs(sec)

    lock_timeout(msec)

    checkpoint_every_npages(page_count)

    checkpoint_every_size(byte)

    checkpoint_interval_in_mins(min)

    checkpoint_interval(msec)

    max_flush_pages_per_second(page_count)

    max_flush_size_per_second(byte)

    sync_on_nflush(page_count)

    sync_on_flush_size(byte)

    sql_trace_slow_msecs(msec)

    sql_trace_slow(msecs)

cubrid_broker.conf

  • KEEP_CONNECTION 에서 OFF 설정이 제거되었으므로 기존 버전에서 OFF로 설정한 경우 ON 또는 AUTO로 변경해야 한다.

  • SELECT_AUTO_COMMIT 이 제거되었으므로 기존 버전에서 이 파라미터의 설정을 제거해야 한다.

  • APPL_SERVER_MAX_SIZE_HARD_LIMIT 의 최대값을 2,097,151으로 제한되므로 이 값보다 크게 설정하지 않아야 한다.

환경 변수

  • CUBRID_CHARSET 이 제거되고, DB 생성 시 데이터베이스의 언어 및 문자셋을, CUBRID_MSG_LANG 으로 유틸리티 메시지 및 오류 메시지의 언어 및 문자셋을 설정하게 되었다.

    Warning

    데이터베이스를 생성할 때 언어 및 문자셋을 반드시 지정해야 하며, 문자셋에 따라 문자열 타입의 크기, 문자열 비교 연산 등에 영향을 끼친다. 데이터베이스 생성 시 지정된 문자셋은 변경할 수 없으므로 지정에 주의해야 한다.

    문자셋, 로캘 및 콜레이션 설정과 관련된 자세한 내용은 다국어 개요을 참고한다.

CUBRID 2008 R4.1/R4.3/R4.4에서 CUBRID 11.0으로 업그레이드하기

CUBRID 2008 R4.1, R4.3 또는 R4.4 버전을 사용 중인 사용자는 다른 디렉터리에 11.0를 설치하고 데이터베이스를 11.0로 마이그레이션한 후 기존 환경 설정 파일에서 파라미터 값을 수정해야 한다.

DB 마이그레이션

DB 마이그레이션 를 참고하여 마이그레이션을 수행한다.

(*): CUBRID 2008 R4.x 이하 버전 사용자는 로캘(언어와 문자셋) 결정에 특히 주의해야 한다. 예를 들어 언어는 ko_KR(한국어)이고 문자셋은 utf8을 사용하던 2008 R4.3 사용자가 10.0 으로 마이그레이션을 진행하는 경우, “cubrid createdb testdb ko_KR.utf8”과 같이 로캘을 지정해야 한다. 지정하려는 로캘이 시스템 내장 로캘이 아닌 경우, 먼저 make_locale(.sh) 명령을 실행해야 한다. 로캘 설정을 참고한다.

  • 멀티바이트 문자에 대한 저장 공간 변화에 주의해야 한다. 예를 들어 2008 R4.3에서 CHAR(6) 은 6바이트 CHAR 타입을 의미하지만 9.3에서 CHAR(6) 은 6글자 CHAR 타입을 의미한다. utf8 문자셋에서 한글은 한 글자 당 3바이트를 차지하므로, CHAR(6) 은 18바이트를 차지한다. 따라서 이전 버전보다 더 많은 디스크 공간을 필요로 한다.

  • CUBRID 2008 R4.x 이하 버전에서 utf8 문자셋을 사용했다면, “cubrid createdb” 수행 시 반드시 utf8 문자셋으로 지정해야 한다. 그렇지 않을 경우 검색 또는 문자열 함수가 제대로 동작하지 않는다.

파라미터 설정

cubrid.conf

  • log_buffer_size 최소값이 48KB(3*1page, 16KB=1page)에서 2MB(128*1page, 16KB=1page)로 변경되었으므로, 이 값을 설정한 경우 변경된 최소값보다 크게 설정해야 한다.

  • sort_buffer_size 의 최대 크기를 2G로 제한했으므로 이 값보다 크게 설정하지 않아야 한다.

  • single_byte_compare 파라미터는 더 이상 사용하지 않으므로 삭제해야 한다.

  • intl_mbs_support 파라미터는 더 이상 사용하지 않으므로 삭제해야 한다.

  • lock_timeout_message_type 파라미터는 더 이상 사용하지 않으므로 삭제해야 한다.

  • 다음 표의 기존 파라미터들은 더 이상 지원하지 않을 예정이며, 앞으로 신규 파라미터의 사용을 권장한다. 괄호 안의 값이 단위 생략된 경우 기본 적용되는 단위이며, 신규 파라미터들은 단위 지정이 가능하다. 자세한 내용은 시스템 설정 의 각 파라미터 설명을 참고한다.

    기존 파라미터(단위)

    신규 파라미터(단위)

    lock_timeout_in_secs(sec)

    lock_timeout(msec)

    checkpoint_every_npages(page_count)

    checkpoint_every_size(byte)

    checkpoint_interval_in_mins(min)

    checkpoint_interval(msec)

    max_flush_pages_per_second(page_count)

    max_flush_size_per_second(byte)

    sync_on_nflush(page_count)

    sync_on_flush_size(byte)

    sql_trace_slow_msecs(msec)

    sql_trace_slow(msecs)

cubrid_broker.conf

  • KEEP_CONNECTION 에서 OFF 설정이 제거되었으므로 기존 버전에서 OFF로 설정한 경우 ON 또는 AUTO로 변경해야 한다.

  • SELECT_AUTO_COMMIT 이 제거되었으므로 기존 버전에서 이 파라미터의 설정을 제거해야 한다.

  • APPL_SERVER_MAX_SIZE_HARD_LIMIT 의 최대값을 2,097,151으로 제한했으므로 이 값보다 크게 설정하지 않아야 한다.

cubrid_ha.conf

  • ha_apply_max_mem_size 파라미터의 값을 500보다 크게 설정한 사용자는 이 값을 500 이하로 설정해야 한다.

환경 변수

  • CUBRID_LANG 이 제거되고, DB 생성 시 데이터베이스의 언어 및 문자셋을, CUBRID_MSG_LANG 으로 유틸리티 메시지 및 오류 메시지의 언어 및 문자셋을 설정하게 되었다.

    Warning

    데이터베이스를 생성할 때 언어 및 문자셋을 반드시 지정해야 하며, 문자셋에 따라 문자열 타입의 크기, 문자열 비교 연산 등에 영향을 끼친다. 데이터베이스 생성 시 지정된 문자셋은 변경할 수 없으므로 지정에 주의해야 한다.

    문자셋, 로캘 및 콜레이션 설정과 관련된 자세한 내용은 다국어 개요을 참고한다.

CUBRID 2008 R4.0 이하 버전에서 CUBRID 11.0으로 업그레이드하기

CUBRID 2008 R4.0 이하 버전 사용자는 CUBRID 11.0 버전을 별도의 디렉터리에 설치한 후 데이터베이스를 11.0로 마이그레이션한 후 기존의 환경 설정 파일에서 파라미터들의 값을 변경해야 한다.

DB 마이그레이션

DB 마이그레이션과 동일한 절차대로 수행한다. 단, CUBRID 2008 3.1 이하 버전의 GLO 클래스 사용자가 마이그레이션하는 경우, CUBRID 2008 R3.1부터는 GLO 클래스를 지원하지 않으므로 BLOB 또는 CLOB 타입을 사용하도록 응용과 스키마를 변경해야 한다. 변경 작업이 용이하지 않다면 마이그레이션을 보류할 것을 권장한다.

파라미터 설정

cubrid.conf

  • log_buffer_size 최소값이 48KB(3*1page, 16KB=1page)에서 2MB(128*1page, 16KB=1page)로 변경되었으므로, 이 값을 설정한 경우 변경된 최소값보다 크게 설정해야 한다.

  • sort_buffer_size 의 최대 크기를 2G로 제한했으므로 이 값보다 크게 설정하지 않아야 한다.

  • single_byte_compare 파라미터는 더 이상 사용하지 않으므로 삭제해야 한다.

  • intl_mbs_support 파라미터는 더 이상 사용하지 않으므로 삭제해야 한다.

  • lock_timeout_message_type 파라미터는 더 이상 사용하지 않으므로 삭제해야 한다.

  • thread_stacksize 의 기본값이 100K에서 1M으로 변경되었으므로, 이 값을 설정하지 않은 사용자는 CUBRID 관련 프로세스들의 메모리 사용량을 살펴볼 것을 권장한다.

  • data_buffer_size 의 최소값이 64K에서 16M으로 변경되었으므로, 이 값을 16M 미만으로 설정한 사용자는 16M 이상으로 설정해야 한다.

  • 다음 파라미터 중 기존 파라미터들은 더 이상 사용하지 않을 예정(deprecated)이며, 앞으로 신규 파라미터의 사용을 권장한다. 괄호 안의 값은 단위 생략 시 기본 적용되는 단위이며, 신규 파라미터들은 단위 지정이 가능하다. 자세한 내용은 시스템 설정 의 각 파라미터 설명을 참고한다.

    기존 파라미터(단위)

    신규 파라미터(단위)

    lock_timeout_in_secs(sec)

    lock_timeout(msec)

    checkpoint_every_npages(page_count)

    checkpoint_every_size(byte)

    checkpoint_interval_in_mins(min)

    checkpoint_interval(msec)

    max_flush_pages_per_second(page_count)

    max_flush_pages_per_second(page_count)

    sync_on_nflush(page_count)

    sync_on_flush_size(byte)

cubrid_broker.conf

  • KEEP_CONNECTION 에서 OFF 설정값이 제거되었으므로 기존 버전에서 OFF 로 설정한 경우 ON 또는 AUTO 로 변경해야 한다.

  • SELECT_AUTO_COMMIT 이 제거되었으므로 기존 버전에서 이 파라미터를 설정한 경우 제거해야 한다.

  • APPL_SERVER_MAX_SIZE_HARD_LIMIT 의 최대값을 2,097,151으로 제한했으므로 이 값보다 크게 설정하지 않아야 한다.

  • APPL_SERVER_MAX_SIZE_HARD_LIMIT 의 최소값이 1024M이다. APPL_SERVER_MAX_SIZE 의 값을 설정하는 사용자는 APPL_SERVER_MAX_SIZE_HARD_LIMIT 의 값보다 작게 설정할 것을 권장한다.

  • CCI_DEFAULT_AUTOCOMMIT 의 기본값이 ON으로 변경되었으므로, 이를 설정하지 않은 응용 프로그램 사용자가 기존과 같은 자동 커밋 모드를 유지하고 싶다면 OFF 로 설정해야 한다.

cubrid_ha.conf

  • ha_apply_max_mem_size 파라미터의 값을 500 이상으로 설정한 사용자는 이 값을 500 이하로 설정해야 한다.

환경 변수

  • CUBRID_LANG 이 제거되고, DB 생성 시 데이터베이스의 언어 및 문자셋을, CUBRID_MSG_LANG 으로 유틸리티 메시지 및 오류 메시지의 언어 및 문자셋을 설정하게 되었다.

    Warning

    데이터베이스를 생성할 때 언어 및 문자셋을 반드시 지정해야 하며, 문자셋에 따라 문자열 타입의 크기, 문자열 비교 연산 등에 영향을 끼친다. 데이터베이스 생성 시 지정된 문자셋은 변경할 수 없으므로 지정에 주의해야 한다.

    문자셋, 로캘 및 콜레이션 설정과 관련된 자세한 내용은 다국어 개요을 참고한다.

HA 환경에서 DB 마이그레이션

CUBRID 2008 R2.2 이상 버전에서 CUBRID 11.0 으로 HA 마이그레이션

아래는 브로커, 마스터 DB, 슬레이브 DB를 각각 별도 서버에 구축한 환경에서 현재 서비스를 중지하고 업그레이드를 수행하기 위한 절차이다.

단계

설명

Steps C1-C6: DB 마이그레이션 실행

마스터 노드에서 CUBRID 업그레이드 및 DB 마이그레이션을 수행하고 새 버전의 DB를 백업한다.

Step C7: 슬레이브 노드에 CUBRID 새 버전 설치

슬레이브 노드에서 이전 버전의 DB는 삭제하고, 새 버전을 설치한다.

상세 정보는 다음을 참고한다. 설치와 실행.

Step C8: 마스터 노드 백업본을 슬레이브 노드에서 복구

C6 단계에서 생성된 마스터 노드의 새 버전 DB 백업본(예: testdb_bk*)을 슬레이브 노드에서 복구한다.

% scp user1@master:$CUBRID/databases/databases.txt $CUBRID/databases/.

% cd ~/DB/testdb

% scp user1@master:~/DB/testdb/testdb_bk0v000 .

% scp user1@master:~/DB/testdb/testdb_bkvinf .

% cubrid restoredb testdb

Step C9: HA 환경 재구성 후 HA모드 구동

마스터 및 슬레이브 노드에서 CUBRID 환경 설정 파일(cubrid.conf) 및 HA 환경 설정 파일(cubrid_ha.conf)을 설정한다.

다음을 참고한다. 데이터베이스 생성 및 서버 설정.

Step C10: 브로커 서버에 새 버전 설치 및 브로커 구동

설치 상세 정보는 다음을 참고한다. 설치와 실행.

브로커 서버에 있는 브로커를 시작한다. 다음을 참고한다. 브로커 설정, 시작 및 확인.

% cubrid broker start

CUBRID 2008 R2.0 또는 R2.1에서 CUBRID 11.0 으로 HA 마이그레이션

CUBRID 2008 R2.0 또는 R2.1의 HA 기능을 사용하는 경우, 서버 버전 업그레이드, DB 마이그레이션을 수행하고 HA 환경을 새롭게 구축한 후 해당 버전에서 사용되었던 Linux Heartbeat 자동 시작 설정을 변경해야 한다. (Linux Heartbeat 패키지가 불필요한 경우 삭제한다.)

위의 C1~C10 단계를 수행한 후, 아래의 C11 단계를 수행한다.

단계

설명

C11 단계: 기존 Linux heartbeat 자동 시작 설정 변경

이하의 작업은 마스터 및 슬레이브 서버에서 root 계정으로 수행한다.

[root@master ~]# chkconfig –del heartbeat // 슬레이브 서버에서 동일 작업 수행