db 의 데이터를 다른곳에서 똑 같이 만들려고 하는데요..
-
?
현재 사용되는 데이터베이스를 다른 서버에 구성 방법은 언로드/로드로 권장 합니다.
-
?
언로드/로드 방법은 아래와 같습니다.
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를 수행하여 통계정보를 갱신한다. -
?
아래의 각각의 시나리오에 대해서 설명을 드리겠습니다.
1. 1번 서버의 DB A를 2번 서버에 DB A로 생성할 경우
- 2번 서버는 1번 서버와 동일한 OS, 동일한 CUBRDI버전이 설치되어 있다.
- 2번 서버와 1번 서버에 DB가 설치될 경로는 동일하다.
- 위의 상황을 전제로 1번 서버의 backup파일을 이용 2서버로 데이터를 옮기는 것이 가능합니다.
방법1: 1번 서버의 backup파일을 2번 서버의 동일한 위치에 옮긴 후 2번 서버에서 복구(cubrid restoredb)를 합니다.
방법2: 1번 서버의 DB를 중단한 체로 작업을 한다면 중단 후 DB관련 파일을 그대로 2번 서버로 복사한 후 경로와 databases.txt파일의 hostname을 변경하면 됩니다.
2. 1번 서버의 DB A를 2번 서버의 DB C로 변경할 경우
* DB이름을 제외하고 모든 것은 동일하다면 첫번째 시나리오대로 데이터를 옮긴 후 cubrid renamedb를 이용하여 C로 DB이름을 변경합니다.
- 1번과 2번서버의 OS와 CUBRID버전이 다른 경우.
- 2번 서버의 경로도 다른 경우
- 위의 상황이라면 unload/load를 이용한 데이터 이전을 해야합니다.
방법: unload는 on/offline에서 작업을 할 수 있으나 서비스 중 online unload는 서버에 부하를 주기 때문에 권장하지 않습니다. DB를 중단 한 후 cubrid unloaddb명령어를 이용하여 데이터를 받은 후 이를 2번 서버로 옮긴 후 loaddb를 이용하여 작업을 하시면 됩니다. unload/load에 대한 작업 방법은 메뉴얼을 참조하시기 바랍니다.
+ cubrid manager에서 복구나 load가 활성화 되지 않는 이유는 현재 DB가 구동되어 있기 때문입니다. DB가 구동되어 있을 때에는 복구나 cubrid laoddb를 수행할 수 없습니다. 2번 서버로의 이전 시에도 복구나 load작업을 위해서는 받드시 DB를 중단 시켜주셔야 합니다. 작업 전 백업은 필수입니다. 작업 관련하여 아래의 링크를 참조하세요.
좋은 하루 되세요.
-
CUBRID 사용자를 위한 DBeaver 도구 출시 안내
-
SQLGate for CUBRID 영구 무료 라이선스 제공
-
파티션 테이블에 대해서..
-
The size of data received from server is different from the expected
-
큐브리드 매니저에서 서브쿼리 날리면 값이 안나오는 문제
-
Oracle --> Cubrid 쿼리 변경 질문입니다!
-
CUBRID 공간데이터 타입 기대해도 되나요?
-
데이트타입 컬럼의 주를 구하는 함수는?
-
cubrid_prepare 오류 질문드립니다
-
Oledb 문자열 값 가져오기 실패 문의입니다.
-
윈도우 큐브리드 메니저로 리눅스 접속
-
아카이브 로그 자동 삭제 및 볼륨 자동 생성 문의
-
linux demodb구동시 에러
-
CUBRID 매니저 서버 연결 오류
-
온라인 메뉴얼이 firefox에서 동작이 안되네요.
-
브로커 타임아웃 설정 가능여부 문의
-
ODBC를 사용해서 디비작업이 안되요
-
CUBRID DB 32bit에서 64bit 변경 방법
-
serial 또는 auto increment 현재값 수정
-
큐브리드 메니저 2.2 에서 엑셀파일 임포트는 어떻게?
-
Java SP 질문
-
GRANT 주기 [Cannot issue GRANT/REVOKE to owner of a class] 에러 발생