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 :

[{-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]

[--log-page-size=size]

[{-s | --page-size=} size]

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

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

 옵션

설명

-p
--pages

생성될 데이터베이스 볼륨(generic)의 페이지 수를 지정한다.
디폴트 값 : 5000 페이지

-F
--file-path

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

-L
--log-path

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

-r
--replace

생성될 데이터베이스의 이름이 기존 데이터베이스 이름과 중복되는 경우, 덮어쓰기를 허용한다.
디폴트 값 : 비활성화

-o
--output-file

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

-v
--verbose

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

-l
--log-page-count

로그 볼륨의 페이지 수를 지정한다.
디폴트 값 : -p 옵션으로 지정된 범용 볼륨의 페이지 수

--log-page-size

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

-s
--page-size

바이트 단위로 데이터베이스 페이지 크기를 지정한다.
디폴트 값 : 4096(4kbyte)

--comment

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

--server-name

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

--more-volume-file

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

--user-definition-file

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

--csql-initialization-file

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

페이지 수(-p)

10,000 페이지가 할당된 testdb라는 이름의 데이터베이스를 생성하는 구문이다.

-p는 데이터베이스의 응용 프로그램을 위한 데이터베이스 페이지 수를 지정하기 위한 옵션으로서, 디폴트 값은 5,000이다.

cubrid createdb -p 10000 testdb

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

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

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

cubrid createdb -F /dbtemp/new_db/ testdb

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

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

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

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

덮어쓰기(-r)

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

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

cubrid createdb -r testdb

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

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

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

cubrid createdb -o db_output testdb

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

testdb라는 데이터베이스를 생성하면서 이에 관한 상세한 연산 정보를 화면에 출력하는 구문이다.

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

cubrid createdb -v testdb

로그 페이지(-l)

testdb라는 이름의 데이터베이스를 생성하고, testdb의 로그 볼륨 페이지 수를 1,000으로 지정하는 구문이다.

-l 옵션은 생성되는 데이터베이스의 로그 볼륨 페이지 수를 지정하는 옵션으로서, 디폴트 값은 -p 옵션에 의해 지정된 범용(generic) 볼륨의 페이지 수와 같다. 데이터 변경 처리량과 트랜잭션 지속 시간에 따라 요구되는 로그 볼륨의 페이지 수가 달라지지만, 최소한 데이터베이스 볼륨의 페이지 수와 동일하거나 그 보다 2배 정도 큰 것이 적당하다.

cubrid createdb -l 1000 testdb

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

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

--log-page-size 옵션은 생성되는 데이터베이스의 로그 볼륨 페이지 크기를 지정하는 옵션으로서, 디폴트 값은 데이터 페이지 크기와 같다. 로그 페이지 크기는 트랜잭션 간격, 로그 용량 및 운영체제의 I/O 페이지 크기를 고려하여 설정되어야 한다. 트랜잭션 커밋 주기가 짧아 디스크로 내려쓰기(flush)되는 로그 용량이 적은 환경에서 이 옵션 값을 너무 크게 설정하면 불필요한 디스크 I/O비용이 증가할 수 있다.

cubrid createdb –log-page-size 8192 testdb

데이터 페이지 크기(-s)

testdb의 범용(generic) 볼륨의 데이터 페이지 크기를 8192바이트로 지정하는 구문이다.

-s 옵션은 데이터베이스 페이지의 크기를 1024, 2048, 4096, 8192, 16384바이트 중 하나의 값으로 지정하는 옵션이며, 디폴트 값은 4096이다. 만약, 이러한 값이 아닌 다른 숫자를 지정할 경우에는 시스템이 올림값으로 페이지 크기를 지정한다. -s 옵션을 통해 데이터베이스 볼륨의 페이지 크기를 변경하면, 이와 연관된 데이터베이스 파라미터 data_buffer_pages, sort_buffer_pageslog_buffer_pages에도 영향을 미치므로 주의해야 한다.

cubrid createdb -s 8192 testdb

주석(--comment)

testdb라는 이름의 데이터베이스를 생성하면서, 데이터베이스 볼륨에 이에 관한 주석을 추가하는 구문이다.

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

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

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

testdb라는 이름의 데이터베이스를 aa_host 호스트 상에 생성 및 등록하는 구문이다.

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

cubrid createdb --server-name aa_host testdb

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

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

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

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 : 추가 생성되는 볼륨의 페이지 수이다. 볼륨 페이지 수에 관한 명세는 생략할 수 없으며, 반드시 지정해야 한다.

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

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

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

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

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

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

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

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