데이터베이스 내보내기(unload)
데이터베이스를 언로드/로드하는 목적은 다음과 같다.
- 데이터베이스 볼륨을 재구성하여 데이터베이스 재구축
- 시스템이 다른 환경에서 마이그레이션 수행
- 버전이 다른 DBMS에서 마이그레이션 수행
구문
cubrid unloaddb [ options ] database_name
[ options ]
-i | -O | -s | -d | -v | -S | -C |
--input-class-file | --output-path | --schema-only | --data-only | --verbose | --SA-mode | --CS-mode | --include-reference | --input-class-only | --lo-count | --estimated-size | --cached-pages | --output-prefix | --hash-file | --use-delimiter
- cubrid : CUBRID 서비스 및 데이터베이스 관리를 위한 통합 유틸리티이다.
- unloaddb : 데이터베이스를 아스키 파일로 생성하는 유틸리티로 시스템 교체, 제품 버전 업그레이드, 또는 데이터베이스 볼륨의 재구성을 위해 cubrid loaddb 유틸리티와 함께 사용된다. 독립 모드 및 클라이언트/서버 모드에서 모두 사용할 수 있으며, 해당 데이터베이스가 운영 중일 때에도 데이터를 언로드할 수 있다.
- options : 단축 옵션은 -와 함께 지정해야 하고, 전체 옵션은 --와 함께 지정해야 한다. 대소문자에 유의한다.
- database_name : 언로드할 데이터베이스의 이름을 지정한다.
반환 값
cubrid unloaddb 유틸리티의 반환 값은 다음과 같다.
생성 파일
- 스키마 파일(database-name_schema) : 해당 데이터베이스에 정의된 스키마 정보를 포함하는 파일이다.
- 객체 파일(database-name_objects) : 해당 데이터베이스에 포함된 인스턴스 정보를 포함하는 파일이다.
- 인덱스 파일(database-name_indexes) : 해당 데이터베이스에 정의된 인덱스 정보를 포함하는 파일이다.
- 트리거 파일(database-name_trigger) : 해당 데이터베이스에 정의된 트리거 정보를 포함하는 파일이다. 만약 데이터를 로딩하는 동안 트리거가 구동되는 것을 원치 않는다면, 데이터 로딩을 완료한 후에 트리거 정의를 로딩하면 된다.
이러한 스키마, 객체, 인덱스, 트리거 파일은 같은 디렉터리에 생성된다.
옵션
다음은 cubrid unloaddb 유틸리티와 함께 사용할 수 있는 옵션을 정리한 표이다. 대소문자를 구별해서 사용해야 한다.
옵션
|
설명
|
-i
--input-class-file
|
인수로 지정된 입력 파일에 지정된 클래스를 대상으로 데이터베이스를 언로드한다.
|
-O
--output-path
|
스키마와 객체 파일이 생성될 디렉터리를 지정한다. 옵션이 지정되지 않으면 현재 디렉터리에 생성된다.
|
-s
--schema-only
|
데이터 파일은 생성하지 않고, 스키마 파일만 생성한다.
|
-d
--data-only
|
스키마 파일은 생성하지 않고, 데이터 파일만 생성한다.
|
-v
--verbose
|
언로드되는 데이터베이스의 상세 정보를 화면에 출력한다.
|
-S
--SA-mode
|
독립 모드에서 데이터베이스를 언로드한다.
|
-C
--CS-mode
|
클라이언트/서버 모드에서 데이터베이스를 언로드한다.
|
--include-reference
|
-i 옵션과 함께 사용되며, 객체 참조도 함께 생성한다.
|
--input-class-only
|
-i 옵션과 함께 사용되며, 입력 파일에 포함된 테이블에 관한 스키마 파일만 생성한다.
|
--lo-count
|
한 디렉터리에 생성될 큰 객체(LO) 데이터 파일의 수를 설정한다.
디폴트 값 : 0
|
--estimated-size
|
예상되는 인스턴스 수를 지정한다.
|
--cached-pages
|
메모리에 캐시할 객체 테이블의 수를 설정한다.
디폴트 값 : 100
|
--output-prefix
|
스키마와 객체 파일명 앞에 붙이는 prefix를 지정한다.
|
--hash-file
|
해시 파일의 이름을 지정한다.
|
--use-delimiter
|
속성 이름을 따옴표로 감싸서 출력한다.
|
- 언로드할 테이블 목록이 포함된 입력 파일(-i 또는 --input-class-file)
- -i는 데이터베이스의 일부 클래스만 언로드하기 위하여, 언로드할 테이블 목록이 저장된 입력 파일을 지정하는 옵션이다. 이때, 입력 파일의 마지막에는 반드시 개행문자(\n)가 포함되어야 한다.
cubrid unloaddb -i table_list.txt demodb
- -i 옵션은 --input-class-only와 함께 결합될 수 있으며, 이는 입력 파일에 포함된 테이블에 관한 스키마 파일만 생성되도록 하는 명령이다.
cubrid unloaddb --input-class-only -i table_list.txt demodb
- -i 옵션은 --include-reference와 함께 결합될 수 있으며, 이는 객체 참조도 함께 생성되도록 하는 명령이다.
cubrid unloaddb --include-reference -i table_list.txt demodb
- 생성 파일이 저장되는 디렉터리 지정(-O 또는 --output-path)
- -O 옵션은 언로드 작업을 통해 생성되는 출력 파일이 저장되는 디렉터리를 지정하기 위한 옵션이다. 만약, -O 옵션이 지정되지 않으면 현재 작업 디렉터리에 출력 파일이 생성된다.
cubrid unloaddb -O ./CUBRID/Databases/demodb demodb
- 지정된 디렉터리가 존재하지 않는 경우 다음과 같은 에러 메시지가 출력된다.
unloaddb: No such file or directory.
- 스키마 파일만 생성(-s 또는 --schema-only)
- -s 옵션은 언로드 작업을 통해 생성되는 출력 파일 중 스키마 파일만 생성되도록 지정하는 옵션이다.
cubrid unloaddb -s demodb
- 데이터 파일만 생성(-d 또는 --data-only)
- -d 옵션은 언로드 작업을 통해 생성되는 출력 파일 중, 데이터 파일만 생성되도록 지정하는 옵션이다.
cubrid unloaddb -d demodb
- 언로드 상태 정보 출력(-v 또는 --verbose)
- -v 옵션은 언로드 작업이 진행되는 동안 언로드되는 데이터베이스의 테이블 및 인스턴스에 관한 상세 정보를 화면에 출력하는 옵션이다.
cubrid unloaddb -v demodb
- 독립 모드(-S 또는 --SA-mode)
- -S 옵션은 지정된 데이터베이스에 독립 모드로 접근하여 언로드 작업을 수행하는 옵션이다.
cubrid unloaddb -S demodb
- 클라이언트/서버 모드(-C 또는 --CS-mode)
- -C 옵션은 지정된 데이터베이스에 클라이언트/서버 모드로 접근하여 언로드 작업을 수행하는 옵션이다.
cubrid unloaddb -C demodb
- 예상되는 인스턴스 수(--estimated-size)
- --estimated-size 옵션은 언로드할 데이터베이스의 인스턴스 저장을 위한 해시 메모리를 사용자 임의로 할당하기 위한 옵션이다. 만약 --estimated-size 옵션이 지정되지 않으면 최근의 통계 정보를 기반으로 데이터베이스의 인스턴스 수를 결정하게 되는데, 만약 최근 통계 정보가 갱신되지 않았거나 해시 메모리를 크게 할당하고 싶은 경우 이 옵션을 이용할 수 있다. 따라서, 옵션의 인수로 너무 적은 인스턴스 개수를 정의한다면 해시 충돌로 인해 언로드 성능이 저하된다.
cubrid unloaddb --estimated-size 1000 demodb
- 캐시되는 페이지 수(--cached-pages)
- --cached-pages는 메모리에 캐시되는 테이블의 페이지 수를 지정하기 위한 옵션이다. 각 페이지는 4,096 바이트이며, 관리자는 메모리의 크기와 속도를 고려하여 캐시되는 페이지 수를 지정할 수 있다. 만약, 이 옵션이 지정되지 않으면 디폴트 값은 100페이지가 된다.
cubrid unloaddb --cached-pages 500 demodb
- 생성 파일명의 프리픽스 지정(--output-prefix)
- --output-prefix는 언로드 작업에 의해 생성되는 스키마 파일과 객체 파일의 이름 앞에 붙는 prefix를 지정하기 위한 옵션이다. 예제를 수행하면 스키마 파일명은 abcd_schema가 되고, 객체 파일명은 abcd_objects가 된다. 만약, --output-prefix 옵션을 지정하지 않으면 언로드할 데이터베이스 이름이 prefix로 사용된다.
cubrid unloaddb --output-prefix abcd demodb