Open Source RDBMS - Seamless, Scalable, Stable and Free

한국어 | Login |Register

Versions available for this page: CUBRID 8.2.1 |  CUBRID 8.3.0 |  CUBRID 8.3.1 |  CUBRID 8.4.0 |  CUBRID 8.4.1 | 

데이터베이스 생성

설명

cubrid createdb 유틸리티는 CUBRID 시스템에서 사용할 데이터베이스를 생성하고 미리 만들어진 CUBRID 시스템 테이블을 초기화한다. 데이터베이스에 권한이 주어진 초기 사용자를 정의할 수도 있다. 일반적으로 데이터베이스 관리자만이 cubrid createdb 유틸리티를 사용한다. 로그와 데이터베이스의 위치도 지정할 수 있다.

구문

cubrid createdb options database_name

options :

[--db-volume-size=size] [--db-page-size=size] [--log-volume-size=size] [--log-page-size=size] [--comment=comment] [{-F |--file-path=}path] [{-L |--log-path=}path] [{-B |--lob-base-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]

  • cubrid : CUBRID 서비스 및 데이터베이스 관리를 위한 통합 유틸리티이다.
  • createdb : 새로운 데이터베이스를 생성하기 위한 명령이다.
  • options : 단축 옵션은 -와 함께 지정해야 하고, 전체 옵션은 --와 함께 지정해야 한다.
  • database_name : 데이터베이스가 생성될 디렉터리 경로명을 포함하지 않고, 생성하고자 하는 데이터베이스의 이름을 고유하게 부여한다. 이 때, 지정한 데이터베이스 이름이 이미 존재하는 데이터베이스 이름과 중복되는 경우, CUBRID는 기존 파일을 보호하기 위하여 데이터베이스 생성을 더 이상 진행하지 않는다.
옵션

다음은 cubrid createdb유틸리티와 함께 사용할 수 있는 옵션을 정리한 표이다. 대소문자를 구별해서 사용해야 한다.

옵션

설명

--db-volume-size

첫 번째로 생성되는 데이터베이스 볼륨의 크기를 바이트 단위로 지정한다.
기본값 : 시스템 파라미터 db_volume_size의 값

--db-page-size

데이터베이스 페이지의 크기를 바이트 단위로 지정한다.
기본값 : 16K

--log-volume-size

로그 볼륨의 크기를 지정한다.

--log-page-size

로그 볼륨의 페이지 크기를 바이트 단위로 지정한다.
기본값 : 데이터베이스 페이지의 크기

--comment

생성될 데이터베이스에 관한 정보를 주석으로 기록한다.

-F
--file-path

데이터베이스가 생성될 디렉터리 경로를 지정한다.
기본값 : 현재 작업 디렉터리

-L
--log-path

로그 파일이 저장되는 디렉터리 경로를 지정한다.
기본값 : -F 옵션으로 지정된 디렉터리 경로

-B
--lob-base-path

LOB 데이터 파일이 저장되는 디렉터리 경로를 지정한다.
기본값 : <데이터베이스 볼륨이 생성되는 디렉터리>/lob

--server-name

접속할 서버 호스트의 이름을 지정한다.
기본값 : 로컬호스트

-r
--replace

생성될 데이터베이스의 이름이 기존 데이터베이스 이름과 중복되면 덮어쓴다.
기본값 : 비활성화

--more-volume-file

데이터베이스의 추가 볼륨을 생성하기 위한 명세를 포함하는 파일을 지정한다.

--user-definition-file

사용자 정의를 포함하는 파일을 지정한다.

--csql-initialization-file

csql 초기화를 위한 파일을 지정한다.

-o
--output-file

데이터베이스 생성에 관한 출력 메시지가 저장되는 파일을 지정한다.

-v
--verbose

데이터베이스 생성에 관한 상세 메시지가 화면 출력된다.
기본값 : 비활성화

첫 번째 데이터베이스 볼륨 크기(--db-volume-size)

--db-volume-size 옵션은 데이터베이스를 생성할 때 첫 번째 데이터베이스 볼륨의 크기를 지정하는 옵션으로, 기본값은 cubrid.conf에 지정된 시스템 파라미터 db_volume_size의 값이다. 최소값은 20M이다. K, M, G, T로 단위를 설정할 수 있으며, 각각 KB(kilobytes), MB(megabytes), GB(gigabytes), TB(terabytes)를 의미한다. 단위를 생략하면 바이트 단위가 적용된다.

다음은 첫 번째로 생성되는 testdb의 볼륨 크기를 512MB로 지정하는 구문이다.

cubrid createdb --db-volume-size=512M testdb

데이터베이스 페이지 크기(--db-page-size)

--db-page-size 옵션은 데이터베이스 페이지 크기를 지정하는 옵션으로서, 기본값은 16K, 최소값은 4K, 최대값은 16K이다. K는 KB(kilobytes)를 의미한다.

데이터베이스 페이지 크기는 4K, 8K, 16K 중 하나의 값이 된다. 4K와 16K 사이의 값을 지정할 경우 지정한 값의 올림값으로 설정되며, 4K보다 작으면 4K로 설정되고 16K보다 크면 16K로 설정된다.

다음은 testdb를 생성하고, testdb의 데이터베이스 페이지 크기를 16K로 지정하는 구문이다.

cubrid createdb --db-page-size=16K testdb

로그 볼륨 크기(--log-volume-size)

--log-volume-size 옵션은 생성되는 데이터베이스의 로그 볼륨 크기를 지정하는 옵션으로, 기본값은 데이터베이스 볼륨 크기와 같으며 최소값은 20M이다. K, M, G, T로 단위를 설정할 수 있으며, 각각 KB(kilobytes), MB(megabytes), GB(gigabytes), TB(terabytes)를 의미한다. 단위를 생략하면 바이트 단위가 적용된다.

다음은 testdb를 생성하고, testdb의 로그 볼륨 크기를 256M로 지정하는 구문이다.

cubrid createdb --log-volume-size=256M testdb

로그 페이지 크기(--log-page-size)

--log-page-size 옵션은 생성되는 데이터베이스의 로그 볼륨 페이지 크기를 지정하는 옵션으로, 기본값은 데이터 페이지 크기와 같다. 최소값은 4K, 최대값은 16K이다. K는 KB(kilobytes)를 의미한다.

데이터베이스 페이지 크기는 4K, 8K, 16K 중 하나의 값이 된다. 4K와 16K 사이의 값을 지정할 경우 지정한 값의 올림값으로 설정되며, 4K보다 작으면 4K로 설정되고 16K보다 크면 16K로 설정된다.

다음은 testdb를 생성하고, testdb의 로그 볼륨 페이지 크기를 8kbyte로 지정하는 구문이다.

cubrid createdb -log-page-size=8K testdb

주석(--comment)

--comment 옵션은 데이터베이스의 볼륨 헤더에 지정된 주석을 포함하는 옵션으로, 문자열에 공백이 포함되면 큰 따옴표로 감싸주어야 한다.

다음은 testdb를 생성하고, 데이터베이스 볼륨에 이에 대한 주석을 추가하는 구문이다.

cubrid createdb --comment "a new database for study" testdb

데이터베이스 디렉터리 경로(-F)

-F 옵션은 새로운 데이터베이스가 생성되는 디렉터리의 절대 경로를 지정하는 옵션으로, -F 옵션을 지정하지 않으면 현재 작업 디렉터리에 새로운 데이터베이스가 생성된다.

다음은 testdb라는 이름의 데이터베이스를 /dbtemp/new_db라는 디렉터리에 생성하는 구문이다.

cubrid createdb -F "/dbtemp/new_db/" testdb

로그 파일 디렉터리 경로(-L)

-L 옵션은 데이터베이스의 로그 파일이 생성되는 디렉터리의 절대 경로를 지정하는 옵션으로, -L 옵션을 지정하지 않으면 -F 옵션에서 지정한 디렉터리에 생성된다. -F 옵션과 -L 옵션을 둘 다 지정하지 않으면 데이터베이스와 로그 파일이 현재 작업 디렉터리에 생성된다.

다음은 testdb라는 이름의 데이터베이스를 /dbtemp/newdb라는 디렉터리에 생성하고, 로그 파일을 /dbtemp/db_log 디렉터리에 생성하는 구문이다.

cubrid createdb -F "/dbtemp/new_db/" -L "/dbtemp/db_log/" testdb

LOB 데이터 파일 저장소의 디렉터리 경로(-B)

--lob-base-path 옵션은 BLOB/CLOB 데이터를 사용하는 경우, LOB 데이터 파일이 저장되는 디렉터리의 경로를 지정하는 옵션으로, 이 옵션을 지정하지 않으면 <데이터베이스 볼륨이 생성되는 디렉터리>/lob 디렉터리에 LOB 데이터 파일이 저장된다.

다음은 testdb를 현재 작업 디렉터리에 생성하고, LOB 데이터 파일이 저장될 디렉터리를 로컬 파일 시스템의 "/home/data1" 로 지정하는 구문이다.

cubrid createdb --lob-base-path "file:/home1/data1" testdb

서버 호스트 이름(--server-name)

--server-name 옵션은 CUBRID의 클라이언트/서버 버전을 사용할 때 특정 데이터베이스에 대한 서버가 지정한 호스트 상에 구동되도록 하는 옵션이다. 이 옵션으로 지정된 서버 호스트의 정보는 데이터베이스 위치 정보 파일(databases.txt)에 기록된다. 이 옵션이 지정되지 않으면 기본값은 현재 로컬 호스트이다.

다음은 testdb를 aa_host 호스트 상에 생성 및 등록하는 구문이다.

cubrid createdb --server-name aa_host testdb

덮어쓰기(-r)

-r은 지정된 데이터베이스 이름이 이미 존재하는 데이터베이스 이름과 중복되더라도 새로운 데이터베이스를 생성하고, 기존의 데이터베이스를 덮어쓰도록 하는 옵션이다. -r 옵션을 지정하지 않으면 더 이상 데이터베이스 생성을 진행하지 않는다.

다음은 testdb라는 이름의 데이터베이스가 이미 존재하더라도 기존의 testdb를 덮어쓰기하고 새로운 testdb를 생성하는 구문이다.

cubrid createdb -r testdb

데이터베이스 볼륨 추가(--more-volume-file)

--more-volume-file 옵션은 데이터베이스가 생성되는 디렉터리에 추가 볼륨을 생성하는 옵션으로 지정된 파일에 저장된 명세에 따라 추가 볼륨을 생성한다. 이 옵션을 이용하지 않더라도, cubrid addvoldb 유틸리티를 이용하여 볼륨을 추가할 수 있다.

다음은 testdb를 생성함과 동시에 vol_info.txt에 저장된 명세를 기반으로 볼륨을 추가 생성하는 구문이다.

cubrid createdb --more-volume-file vol_info.txt testdb

다음은 위 구문으로 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

  • volname : 추가 생성될 볼륨의 이름으로 Unix 파일 이름 규약을 따라야 하고, 디렉터리 경로를 포함하지 않는 단순한 이름이어야 한다. 볼륨명에 관한 명세는 생략할 수 있으며, 이 경우 시스템에 의해 "생성될 데이터베이스 이름_볼륨 식별자"로 볼륨명이 생성된다.
  • volcmnts : 볼륨 헤더에 기록되는 주석 문장으로, 추가 생성되는 볼륨에 관한 정보를 임의로 부여할 수 있다. 볼륨 주석에 관한 명세 역시 생략할 수 있다.
  • volpurp : 볼륨 저장의 목적으로, data, index, temp, generic 중 하나여야 한다. 볼륨 목적에 관한 명세는 생략할 수 있으며, 이 경우 기본값은 generic이다.
  • volnpgs : 추가 생성되는 볼륨의 페이지 수이다. 볼륨 페이지 수에 관한 명세는 생략할 수 없으며, 반드시 지정해야 한다.

사용자 정보 파일(--user-definition-file)

--user-definition-file 옵션은 생성하고자 하는 데이터베이스에 대해 권한이 있는 사용자를 추가하는 옵션으로, 파라미터로 지정된 사용자 정보 파일에 저장된 명세에 따라 사용자를 추가한다. --user-definition-file 옵션을 이용하지 않더라도 CREATE USER 구문을 이용하여 사용자를 추가할 수 있다.

다음은 testdb를 생성함과 동시에 user_info.txt에 정의된 사용자 정보를 기반으로 testdb에 대한 사용자를 추가하는 구문이다.

cubrid createdb --user-definition-file user_info.txt testdb

사용자 정보 파일의 구문은 아래와 같다.

USER user_name [ groups_clause | members_clause ]

groups_clause
:
 [ GROUPS group_name [ { group_name }... ] ]

members_clause
:
 [ MEMBERS member_name [ { member_name }... ] ]

  • user_name은 데이터베이스에 대해 권한을 가지는 사용자 이름이며, 공백이 포함되지 않아야 한다.
  • GROUPS 절은 옵션이며, group_name은 지정된 user_name을 포함하는 상위 그룹의 이름이다. 이 때, group_name은 하나 이상이 지정될 수 있으며, USER로 미리 정의되어야 한다.
  • MEMBERS 절은 옵션이며, member_name은 지정된 user_name에 포함되는 하위 멤버의 이름이다. 이 때, member_name은 하나 이상이 지정될 수 있으며, USER로 미리 정의되어야 한다.

사용자 정보 파일에서는 주석을 사용할 수 있으며, 주석 라인은 연속된 하이픈(--)으로 시작된다. 공백 라인은 무시된다.

다음 예제는 그룹 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

CSQL 구문 저장 파일(--csql-initialization-file)

--csql-initialization-file 옵션은 생성하고자 하는 데이터베이스에 대해 CSQL 인터프리터에서 구문을 실행하는 옵션으로, 파라미터로 지정된 파일에 저장된 SQL 구문에 따라 스키마를 생성할 수 있다.

다음은 testdb를 생성함과 동시에 table_schema.sql에 정의된 SQL 구문을 CSQL 인터프리터에서 실행시키는 구문이다.

cubrid createdb --csql-initialization-file table_schema.sql testdb

출력 메시지를 파일에 저장(-o)

-o 옵션은 데이터베이스 생성에 관한 메시지를 파라미터로 지정된 파일에 저장하는 옵션이며, 파일은 데이터베이스와 동일한 디렉터리에 생성된다. -o 옵션이 지정되지 않으면 메시지는 콘솔 화면에 출력된다. -o 옵션은 데이터베이스가 생성되는 중에 출력되는 메시지를 지정된 파일에 저장함으로써 특정 데이터베이스의 생성 과정에 관한 정보를 활용할 수 있게 한다.

다음은 testdb를 생성하면서 이에 관한 유틸리티의 출력을 콘솔 화면이 아닌 db_output 파일에 저장하는 구문이다.

cubrid createdb -o db_output testdb

버보스(Verbose) 출력(-v)

-v 옵션은 데이터베이스 생성 연산에 관한 모든 정보를 화면에 출력하는 옵션으로서, -o 옵션과 마찬가지로 특정 데이터베이스 생성 과정에 관한 정보를 확인하는데 유용하다. 따라서, -v 옵션과 -o 옵션을 함께 지정하면, -o 옵션의 파라미터로 지정된 출력 파일에 cubrid createdb 유틸리티의 연산 정보와 생성 과정에 관한 출력 메시지를 저장할 수 있다.

다음은 testdb를 생성하면서 이에 관한 상세한 연산 정보를 화면에 출력하는 구문이다.

cubrid createdb -v testdb