운영관리

데이터베이스를 다른 머신으로 옮기는 방법

by admin posted Nov 21, 2008
 내용은 큐브리드 2008이상을 기준으로 하였고 이전버전에서는 DB설정파일명 및 위치가 다르다.

운영중인 큐브리드를 다른 머신으로 이전하는 방법에는
1. unloaddb/loaddb 유틸을 사용
2. DB 볼륨파일을 복사
3. 백업파일을 사용
로 나눌 수 있는데 DB 볼륨파일 복사 방법과 백업 파일을 이용하여 이전하는 경우에는 원본 DB의 OS와 복사하고자 하는 DB의 OS가 동일해야 한다.
즉 원본이 Linux였다면 타겟도 Linux여야 하고 원본이 Windows 이면 타겟도 Windows여야 한다. 또한 큐브리드의 버전도 일치해야 한다.
원본과 타켓의 OS가 다르고 큐브리드 버전도 다른 경우에는 unloaddb/loaddb 유틸을 사용하여 이전해야만 한다.

각 사용법은 다음과 같다. 예를 위해 대상 DB명을 demodb를 사용한다.
복사대상 서버에 큐브리드가 설치되어 있는 상태에서 작업을 수행한다.

1. unloaddb/loaddb 유틸사용
가. cubrid spacedb demodb 를 수행하여 운영 중인 볼륨 구성 상태를 확인한다.
나. cubrid server stop demodb 를 수행하여 DB 서버를 중단시킨다.(windows 경우에는 큐브리드 메니저를 통해서만 DB를 start/stop 할 수 있다.)
다. cubrid unloaddb -S demodb 를 수행하면 실행한 디렉토리에 demodb_schema, demodb_objects, demodb_index 파일이 생성된다.
라. 이전 대상서버에서 빈 DB를 생성한다.
    cubrid createdb -p 10000 -l 10000 demodb
    cubrid addvoldb -S -p data demodb 100000
    cubrid addvoldb -S -p index demodb 50000
    cubrid addvoldb -S -p temp demodb 50000 등과 같이 createdb와 addvoldb 명령을 사용하여 spacedb를 통해 확인한 기존 DB 볼륨과 동일하게 볼륨을 구성한다.
마. cubrid loaddb demodb -u dba -s demodb_schema를 수행하여 스키마를
    cubrid loaddb demodb -u dba -d demodb_objects를 수행하여 데이터를
    cubrid loaddb demodb -u dba -i demodb_index를 수행하여 인덱스 순으로 load작업을 수행한다.
    이때 load하고자 하는 데이터가 대용량 데이터인 경우에는 다음의 옵션들을 사용하여 기본 작업들의 수행을 취소하여 load 작업 수행시간을 줄인다.
    -l (문법 체크 없이 로드만 수행)
    -c (commit 주기. commit 주기(예 200000) 단위로 commit 수행)
    ---no-oid (OID 사용하지 않음. DB 내에서 OID가 사용되고 있지 않을 경우에만 사용, 즉 관계형으로만 설계된 경우)
바. 기존 DB 설정 파일인 cubrid.conf, cubrid_broker.conf을 이전 대상 서버에 복사한다.
사. cubrid optimizedb demodb를 수행하여 통계정보를 갱신한다.

2. DB 볼륨파일을 복사
가. stop_server demodb를 수행하여 DB 서버를 중단시킨다.
나. 기존 DB 볼륨과 동일한 경로에 DB 볼륨파일을 복사한다.
다. 현재 서버의 $CUBRID_DATABASES/databases.txt를 복구대상에 복사한다.
    databases.txt를 열어서 호스트명(예 host2)을 현재 서버의 호스트명을 입력한다.
    demodb /home/cubrid/demodb host2 /home/cubrid/demodb
라. 기존 DB 설정 파일인 cubrid.conf, cubrid_broker.conf을 이전 대상 서버에 복사한다.

3. 백업파일을 사용
백업파일을 다른 서버에서 복구하려면 복구하고자 하는 서버에서 다음 작업을 수행한다.
가. 백업파일을 복구대상서버에 원래 서버와 동일한 위치에 복사한 후 기존 DB볼륨이 존재하던 경로와 동일하게 디렉토리를 생성한다.
    백업 파일은 full backup을 수행하여 생성된 백업파일이어야 한다.
나. 현재 서버의 $CUBRID_DATABASES/databases.txt를 복구대상에 복사한다.
    databases.txt를 열어서 호스트명(예 host2)을 현재 서버의 호스트명을 입력한다.
    demodb /home/cubrid/demodb host2 /home/cubrid/demodb
다. cubrid restoredb dbmodb를 수행하여 백업파일을 복구한다.
라. 기존 DB 설정 파일인 curid.conf, cubrid_broker.conf을 이전 대상 서버에 복사한다.

큐브리드 매니저를 통해서도 위의 작업을 수행 할 수 있다.

Articles

5 6 7 8 9 10 11 12 13 14