cubrid createdb 유틸리티는 CUBRID 시스템에서 사용할 데이터베이스를 생성하고 미리 만들어진 CUBRID 시스템 클래스를 초기화한다. 데이터베이스에 권한이 주어진 초기 사용자를 정의할 수도 있다. 일반적으로 데이터베이스 관리자만이 cubrid createdb 유틸리티를 사용한다. 로그와 데이터베이스의 위치도 지정할 수 있다.
cubrid createdb options database_name
options :[{-p|--pages=}number] [--comment] [{-F|--file-path=}path] [{-L|--log-path=}path] [--server-name=host ]
[{-r | --replace} ] [--more-volume-file=file] [--user-definition-file=file] [ --csql-initialization-file=file] [{-o|--output-file=} file] [{-v | --verbose}]
[{-l | --log-page-count=} number] [ {-s | --page-size=} size]
다음은 cubrid createdb유틸리티와 함께 사용할 수 있는 옵션을 정리한 표이다. 대소문자를 구별해서 사용해야 한다.
옵션 |
설명 |
---|---|
-p |
생성될 데이터베이스 볼륨(generic)의 페이지 수를 지정한다. |
-F |
데이터베이스가 생성될 디렉터리 경로를 지정한다. |
-L |
로그 파일이 저장되는 디렉터리 경로를 지정한다. |
-r |
생성될 데이터베이스의 이름이 기존 데이터베이스 이름과 중복되는 경우, 덮어쓰기를 허용한다. |
-o |
데이터베이스 생성에 관한 출력 메시지가 저장되는 파일을 지정한다. |
-v |
데이터베이스 생성에 관한 상세 메시지가 화면 출력된다. |
-l |
로그 볼륨의 페이지 수를 지정한다. |
-s |
바이트 단위로 데이터베이스 페이지 크기를 지정한다. |
--comment |
생성될 데이터베이스에 관한 정보를 주석으로 기록한다. |
--server-name |
접속할 서버 호스트의 이름을 지정한다. |
--more-volume-file |
데이터베이스의 추가 볼륨을 생성하기 위한 명세를 포함하는 파일을 지정한다. |
--user-definition-file |
사용자 정의를 포함하는 파일을 지정한다. |
--csql-initialization-file |
csql 초기화를 위한 파일을 지정한다. |
cubrid createdb -p 10000 testdb
10,000 페이지가 할당된 testdb라는 이름의 데이터베이스를 생성하는 구문이다.
-p는 데이터베이스의 응용 프로그램을 위한 데이터베이스 페이지 수를 지정하기 위한 옵션으로서, 디폴트 값은 5,000이다.
cubrid createdb -F /dbtemp/new_db/ testdb
testdb라는 이름의 데이터베이스를 /dbtemp/new_db라는 디렉터리에 생성하는 구문이다.
-F는 새로운 데이터베이스가 생성되는 디렉터리의 절대 경로를 지정하는 옵션으로, -F 옵션을 지정하지 않는 경우에는 현재 작업 디렉터리에 새로운 데이터베이스가 생성된다.
cubrid createdb -F /dbtemp/new_db/ -L /dbtemp/db_log/ testdb
testdb라는 이름의 데이터베이스를 /dbtemp/newdb라는 디렉터리에 생성하고, 로그 파일을 /dbtemp/db_log 디렉터리에 생성하는 구문이다.
-L은 데이터베이스의 로그 파일이 생성되는 디렉터리의 절대 경로를 지정하는 옵션으로, -L 옵션을 지정하지 않는 경우에는 -F 옵션에서 지정한 디렉터리에 생성된다. 만약, -F 옵션과 -L 옵션을 둘 다 지정하지 않는 경우에는 데이터베이스와 로그 파일이 현재 작업 디렉터리에 생성된다.
cubrid createdb -r testdb
testdb라는 이름의 데이터베이스가 이미 존재하더라도 기존의 testdb를 덮어쓰기하고 새로운 testdb를 생성하라는 구문이다.
-r은 지정된 데이터베이스 이름이 이미 존재하는 데이터베이스 이름과 중복되더라도 새로운 데이터베이스를 생성하고, 기존의 데이터베이스를 덮어쓰도록 하는 옵션이다. 만약, -r 옵션을 지정하지 않으면 더 이상 데이터베이스 생성을 진행하지 않는다.
cubrid createdb -o db_output testdb
testdb라는 데이터베이스를 생성하면서 이에 관한 유틸리티의 출력을 콘솔 화면이 아닌 db_output 파일에 저장하는 구문이다.
-o 옵션은 데이터베이스 생성에 관한 메시지를 파라미터로 지정된 파일에 저장하는 옵션이며, 파일은 데이터베이스와 동일한 디렉터리에 생성된다. -o 옵션이 지정되지 않으면 메시지는 콘솔 화면에 출력된다. -o 옵션은 데이터베이스가 생성되는 중에 출력되는 메시지를 지정된 파일에 저장함으로써 특정 데이터베이스의 생성 과정에 관한 정보를 활용할 수 있게 한다.
cubrid createdb -v testdb
testdb라는 데이터베이스를 생성하면서 이에 관한 상세한 연산 정보를 화면에 출력하는 구문이다.
-v 옵션은 데이터베이스 생성 연산에 관한 모든 정보를 화면에 출력하는 옵션으로서, -o 옵션과 마찬가지로 특정 데이터베이스 생성 과정에 관한 정보를 확인하는데 유용하다. 따라서, -v 옵션과 -o 옵션을 함께 지정하면, -o 옵션의 파라미터로 지정된 출력 파일에 cubrid createdb 유틸리티의 연산 정보와 생성 과정에 관한 출력 메시지를 저장할 수 있다.
cubrid createdb -l 1000 testdb
testdb라는 이름의 데이터베이스를 생성하고, testdb의 로그 볼륨 페이지 수를 1,000으로 지정하는 구문이다.
-l 옵션은 생성되는 데이터베이스의 로그 볼륨 페이지 수를 지정하는 옵션으로서, 디폴트 값은 -p 옵션에 의해 지정된 범용(generic) 볼륨의 페이지 수와 같다. 데이터 변경 처리량과 트랜잭션 지속 시간에 따라 요구되는 로그 볼륨의 페이지 수가 달라지지만, 최소한 데이터베이스 볼륨의 페이지 수와 동일하거나 그 보다 2배 정도 큰 것이 적당하다.
cubrid createdb -s 8192 testdb
testdb라는 데이터베이스 볼륨의 페이지 크기를 8192바이트로 지정하는 구문이다.
-s 옵션은 데이터베이스 페이지의 크기를 1024, 2048, 4096, 8192, 16384바이트 중 하나의 값으로 지정하는 옵션이다. 만약, 이러한 값이 아닌 다른 숫자를 지정할 경우에는 시스템이 올림값으로 페이지 크기를 지정한다. -s 옵션을 통해 데이터베이스 볼륨의 페이지 크기를 변경하면, 이와 연관된 데이터베이스 파라미터 data_buffer_pages, sort_buffer_pages, log_buffer_pages에도 영향을 미치므로 주의해야 한다.
cubrid createdb --comment "a new database for study" testdb
testdb라는 이름의 데이터베이스를 생성하면서, 데이터베이스 볼륨에 이에 관한 주석을 추가하는 구문이다.
--comment 옵션은 데이터베이스의 볼륨 헤더에 지정된 주석을 포함하는 옵션으로 문자열에 공백이 포함되는 경우에는 큰 따옴표로 감싸주어야 한다.
cubrid createdb --server-name aa_host testdb
testdb라는 이름의 데이터베이스를 aa_host 호스트 상에 생성 및 등록하는 구문이다.
--server-name 옵션은 CUBRID의 클라이언트/서버 버전을 사용할 때 특정 데이터베이스에 대한 서버가 지정한 호스트 상에 구동되도록 하는 옵션이다. 이 옵션으로 지정된 서버 호스트의 정보는 데이터베이스 위치 정보 파일(databases.txt)에 기록된다. 만약, 이 옵션이 지정되지 않으면 디폴트 값은 현재 로컬 호스트이다.
cubrid createdb --more-volume-file vol_info.txt testdb
testdb를 생성함과 동시에 vol_info.txt에 저장된 명세를 기반으로 볼륨을 추가 생성하는 구문이다.
--more-volume-file 옵션은 데이터베이스가 생성되는 디렉터리에 추가 볼륨을 생성하는 옵션으로 지정된 파일에 저장된 명세에 따라 추가 볼륨을 생성한다. 이 옵션을 이용하지 않더라도, cubrid addvoldb 유틸리티를 이용하여 볼륨을 추가할 수 있다.
다음은 vol_info.txt에 저장된 추가 볼륨에 관한 명세이다. 각 볼륨에 관한 명세는 라인 단위로 작성되어야 한다.
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# NAME volname COMMENTS volcmnts PURPOSE volpurp NPAGES volnpgs
NAME data_v1 COMMENTS "데이터 정보 볼륨" PURPOSE data NPAGES 1000
NAME data_v2 COMMENTS "데이터 정보 볼륨" PURPOSE data NPAGES 1000
NAME data_v3 PURPOSE data NPAGES 1000
NAME index_v1 COMMENTS "인덱스 정보 볼륨" PURPOSE index NPAGES 500
NAME temp_v1 COMMENTS "임시 정보 볼륨" PURPOSE temp NPAGES 500
NAME generic_v1 COMMENTS "일반 정보 볼륨" PURPOSE generic NPAGES 500
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
예제 파일에서와 같이 각 볼륨에 관한 명세는 다음과 같이 구성된다.
NAME volname COMMENTS volcmnts PURPOSE volpurp NPAGES volnpgs
cubrid createdb --csql-initialization-file table_schema.sql testdb
testdb를 생성함과 동시에 table_schema.sql에 정의된 SQL 구문을 CSQL 인터프리터에서 실행시키는 구문이다.
--csql-initialization-file 옵션은 생성하고자 하는 데이터베이스에 대해 CSQL 인터프리터에서 구문을 실행하는 옵션으로, 파라미터로 지정된 파일에 저장된 SQL 구문에 따라 스키마를 생성할 수 있다.
cubrid createdb --user-definition-file user_info.txt testdb
testdb를 생성함과 동시에 user_info.txt에 정의된 사용자 정보를 기반으로 testdb에 대한 사용자를 추가하는 구문이다.
--user-definition-file 옵션은 생성하고자 하는 데이터베이스에 대해 권한이 있는 사용자를 추가하는 옵션으로, 파라미터로 지정된 사용자 정보 파일에 저장된 명세에 따라 사용자를 추가한다. --user-definition-file 옵션을 이용하지 않더라도 CREATE USER 구문을 이용하여 사용자를 추가할 수 있다.
사용자 정보 파일의 구문은 아래와 같다.
USER user_name [ groups_clause | members_clause ]
groups_clause:
[ GROUPS group_name [ { group_name }... ] ]
members_clause:
[ MEMBERS member_name [ { member_name }... ] ]
사용자 정보 파일에서는 주석을 사용할 수 있으며, 주석 라인은 연속된 하이픈(--)으로 시작된다. 공백 라인은 무시된다.
다음 예제는 그룹 sedan에 granduer와 sonata가, 그룹 suv에 tuscan이, 그룹 hatchback에 i30가 포함되는 것을 정의하는 사용자 정보 파일이다. 사용자 정보 파일명은 user_info.txt로 예시한다.
--
-- 사용자 정보 파일의 예1
--
USER sedan
USER suv
USER hatchback
USER granduer GROUPS sedan
USER sonata GROUPS sedan
USER tuscan GROUPS suv
USER i30 GROUPS hatchback
위 예제와 동일한 사용자 관계를 정의하는 파일이다. 다만, 아래 예제에서는 MEMBERS 절을 이용하였다.
--
-- 사용자 정보 파일의 예 2
--
USER granduer
USER sonata
USER tuscan
USER i30
USER sedan MEMBERS sonata granduer
USER suv MEMBERS tuscan
USER hatchback MEMBERS i30