데이터베이스 로드는 다음과 같은 경우에 cubrid loaddb 유틸리티를 이용하여 수행된다.
일반적으로 cubrid loaddb 유틸리티는 cubrid unloaddb 유틸리티가 생성한 파일(스키마 정의 파일, 객체 입력 파일, 인덱스 정의 파일)을 사용한다.
cubrid loaddb [ options ] database_name
[ options ]
-u | -p | -l | -v | -c | -s | -i | -d |
--user | --password | --load-only | --verbose | --periodic-commit | --schema-file | --index-file | --data-file | --data-file-check-only | --estimated-size | --no-oid | --no-statistics | --ignore-class-file | --error-control-file |
cubrid loaddb 유틸리티의 리턴 값은 다음과 같다.
다음은 cubrid loaddb 유틸리티와 결합할 수 있는 옵션을 정리한 표이다. 대소문자를 구별해서 사용해야 한다.
옵션 |
설명 |
---|---|
-u |
데이터베이스 사용자의 계정을 입력한다. 디폴트 값은 PUBLIC이다. |
-p |
데이터베이스 사용자의 암호를 입력한다. |
-l |
객체 파일에 포함된 구문과 데이터 타입 검사를 생략하고 레코드를 로드한다. |
-v |
데이터 로딩 상태에 관한 상세 정보를 화면에 출력한다. |
-c |
지정된 개수의 레코드가 입력될 때마다 트랜잭션을 커밋한다. |
-s |
언로드 작업에 의해 생성된 스키마 파일을 지정하여, 스키마 로딩을 수행한다. |
-i |
언로드 작업에 의해 생성된 인덱스 파일을 지정하여, 인덱스 로딩을 수행한다. |
-d |
언로드 작업에 의해 생성된 데이터 파일을 지정하여, 레코드 로딩을 수행한다. |
--data-file-check-only |
데이터 파일에 포함된 구문과 데이터 타입 검사만 수행하고, 레코드 로딩은 수행하지 않는다. |
--estimated-size |
예상되는 레코드 수를 지정한다. |
--no-oid |
데이터 파일에 포함된 OID 참조 관계를 무시하고 레코드를 로딩한다. |
--no-statistics |
데이터베이스에 관한 통계 정보를 갱신하지 않는다. |
--ignore-class-file |
지정된 파일에 포함된 클래스를 제외하고 로딩 작업을 수행한다. |
--error-control-file |
데이터 로딩 중에 발생하는 특정 에러의 처리 방식을 명세한 파일을 지정한다. |
사용자 계정 입력(-u 또는 --user)
-u는 레코드를 로딩할 데이터베이스의 사용자 계정을 지정하는 옵션이다. 옵션을 지정하지 않으면 디폴트 값은 PUBLIC이 된다.
cubrid loaddb -u admin -d demodb_objects newdb
암호 입력(-p 또는 --password)
-p는 레코드를 로딩할 데이터베이스의 사용자 암호를 지정하는 옵션이다. 옵션을 지정하지 않으면 암호 입력을 요청하는 프롬프트가 출력된다.
cubrid loaddb -p admin -d demodb_objects newdb
구문을 확인하지 않고 레코드 로딩(-l 또는 --load-only)
-l은 로딩할 데이터의 구문을 확인하지 않고 곧바로 데이터를 로딩하는 옵션이다. 다음은 demodb_objects에 포함된 데이터를 newdb로 로딩하는 구문이다.
-l 옵션을 사용하면 demodb_objects에 포함된 데이터의 구문을 확인하지 않고 곧바로 데이터를 로딩하기 때문에 속도는 빠르지만, 오류가 발생할 수도 있다.
cubrid loaddb -l -d demodb_objects newdb
로딩 상태 정보 출력(-v 또는 --verbose)
데이터베이스 로딩 작업이 진행되는 동안, 로딩되는 데이터베이스의 테이블 및 레코드에 관한 상세 정보를 화면에 출력하는 구문이다. -v 옵션을 이용하여 진행되는 단계, 로딩되는 클래스, 입력된 레코드의 개수와 같은 상세 정보를 확인할 수 있다.
cubrid loaddb -v -d demodb_objects newdb
커밋 주기 설정(-c 또는 --periodic-commit)
-c 옵션을 이용하여 100개의 레코드가 newdb로 입력될 때마다 커밋을 주기적으로 실행하는 명령이다. 만약, -c 옵션을 지정하지 않으면 demodb_objects에 포함된 모든 레코드가 newdb로 로딩된 후에 트랜잭션이 커밋된다. 또한, -c 옵션이 -s 옵션이나 -i 옵션과 함께 사용하는 경우에는 100개의 DDL문이 로딩될 때마다 커밋을 주기적으로 실행한다.
권장되는 커밋 주기는 로딩되는 데이터에 따라 다른데, 스키마 로딩의 경우에는 -c의 인수를 50으로 설정하고, 레코드로딩의 경우에는 1,000으로 설정하며, 인덱스 로딩의 경우에는 1로 설정하는 것이 바람직하다.
cubrid loaddb -c 100 -d demodb_objects newdb
스키마 로딩(-s 또는 --schema-file)
demodb에 정의된 스키마 정보를 새로 생성한 newdb에 로딩하는 구문이다. demodb_schema 파일은 언로드 작업에 의해 생성된 파일이며, 언로드된 데이터베이스의 스키마 정보를 포함한다. -s 옵션을 이용하여 스키마 정보를 먼저 로딩한 후, 실제 레코드를 로딩할 수 있다.
cubrid loaddb -u dba -s demodb_schema newdb
Start schema loading.
Total 86 statements executed.
Schema loading from demodb_schema finished.
Statistics for Catalog classes have been updated.
인덱스 로딩(-i 또는 --index-file)
demodb에 정의된 인덱스 정보를 새로 생성한 newdb에 로딩하는 명령이다. demo_indexes 파일은 언로드 작업에 의해 생성된 파일이며, 언로드된 데이터베이스의 인덱스 정보를 포함한다. -d 옵션을 이용하여 레코드를 로딩한 후, -i 옵션을 이용하여 인덱스를 생성할 수 있다.
cubrid loaddb -u dba -i demodb_indexes newdb
데이터 로딩(-d 또는 --data-file)
-d 옵션을 이용하여 데이터 파일 또는 사용자 정의 객체 파일을 지정함으로써 레코드 정보를 newdb로 로딩하는 명령이다. demodb_objects 파일은 언로드 작업에 의해 생성된 객체 파일이거나, 사용자가 대량의 데이터 로딩을 위하여 작성한 사용자 정의 객체 파일 중 하나이다.
cubrid loaddb -u dba -d demodb_objects newdb
로딩될 데이터의 구문 체크만 수행(--data-file-check-only)
--data-file-check-only 옵션을 이용하여 demodb_objects에 포함된 데이터의 구문을 확인만 하는 명령이다. 따라서, 위 명령을 수행하여도 newdb에는 레코드가 로딩되지 않는다.
cubrid loaddb --data-file-check-only -d demodb_objects newdb
예상되는 레코드 수(--estimated-size)
--estimated-size 옵션은 언로드할 레코드의 수가 디폴트 값인 5,000개보다 많은 경우 로딩 성능 향상을 위해 사용할 수 있는 옵션이다. 즉, 이 옵션을 통해 레코드 저장을 위한 해시 메모리를 크게 할당함으로써 로드 성능을 향상시킬 수 있다.
cubrid loaddb --estimated-size 8000 -d demodb_objects newdb
참조 관계 무시하고 레코드 로딩(--no-oid)
demodb_objects에 포함된 OID를 무시하고 레코드를 newdb로 로딩하는 명령이다.
cubrid loaddb --no-oid -d demodb_objects newdb
통계 정보를 갱신하지 않고 레코드 로딩(--no-statistics)
demodb_objects를 로딩한 후 newdb의 통계 정보를 갱신하지 않는 명령이다. 특히, 대상 데이터베이스의 데이터 용량에 비해 매우 적은 데이터만 로딩할 경우 이 옵션을 이용하여 로드 성능을 향상시킬 수 있다.
cubrid loaddb --no-statistics -d demodb_objects newdb
제외 대상 클래스 지정(--ignore-class-file)
로딩 작업 중 무시할 클래스 목록을 명세한 파일을 지정하는 옵션이다. 지정된 파일에 포함된 클래스를 제외한 나머지 클래스의 레코드만 로딩된다.
cubrid loaddb --ignore-class-file=skip_class_list -d demodb_objects newdb
에러 정보 파일 지정(--error-control-file)
데이터베이스 로드 작업 중에 발생하는 에러 중 특정 에러를 처리하는 방식에 관해 명세한 파일을 지정하는 옵션이다.
cubrid loaddb --error-control-file=error_test -d demodb_objects newdb