데이터베이스를 언로드/로드하는 목적은 다음과 같다.
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 | --datafile-per-class
cubrid unloaddb 유틸리티의 리턴 값은 다음과 같다.
이러한 스키마, 객체, 인덱스, 트리거 파일은 같은 디렉터리에 생성된다.
다음은 cubrid unloaddb 유틸리티와 함께 사용할 수 있는 옵션을 정리한 표이다. 대소문자를 구별해서 사용해야 한다.
옵션 |
설명 |
---|---|
-i |
인수로 지정된 입력 파일에 지정된 클래스를 대상으로 데이터베이스를 언로드한다. |
-O |
스키마와 객체 파일이 생성될 디렉터리를 지정한다. 옵션이 지정되지 않으면 현재 디렉터리에 생성된다. |
-s |
데이터 파일은 생성하지 않고, 스키마 파일만 생성한다. |
-d |
스키마 파일은 생성하지 않고, 데이터 파일만 생성한다. |
-v |
언로드되는 데이터베이스의 상세 정보를 화면에 출력한다. |
-S |
독립 모드에서 데이터베이스를 언로드한다. |
-C |
클라이언트/서버 모드에서 데이터베이스를 언로드한다. |
--include-reference |
-i 옵션과 함께 사용되며, 객체 참조도 함께 생성한다. |
--input-class-only |
-i 옵션과 함께 사용되며, 입력 파일에 포함된 테이블에 관한 스키마 파일만 생성한다. |
--lo-count |
한 디렉터리에 생성될 큰 객체(LO) 데이터 파일의 수를 설정한다. |
--estimated-size |
예상되는 레코드 수를 지정한다. |
--cached-pages |
메모리에 캐시할 객체 테이블의 수를 설정한다. |
--output-prefix |
스키마와 객체 파일명 앞에 붙이는 prefix를 지정한다. |
--hash-file |
해시 파일의 이름을 지정한다. |
--datafile-per-class |
각 테이블의 데이터 파일을 별도로 생성한다. |
언로드할 테이블 목록이 포함된 입력 파일(-i 또는 --input-class-file)
다음은 입력 파일 table_list.txt의 예이다.
table_1
table_2
..
table_n
-i 옵션은 데이터베이스의 일부 클래스만 언로드하기 위하여, 언로드할 테이블 목록이 저장된 입력 파일을 지정한다.
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
테이블별로 데이터 파일을 생성(--datafile-per-class)
--datafile-per-clas 옵션은 언로드 작업으로 생성되는 데이터 파일을 각 테이블별로 생성되도록 지정하는 옵션이다. 파일 이름은 <데이터베이스 이름>_<테이블 이름>_objects로 생성된다. 단, 객체 타입의 컬럼 값은 모두 NULL로 언로드되며, 언로드된 파일에는 %id class_name class_id 부분이 작성되지 않는다. 자세한 내용은 가져오기용 파일 작성 방법을 참고한다.
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