2. DBMS이야기/04. CUBRID

06. CUBRID 사용자, Database 파일, 백업

OSSW(Open Source System SoftWare 2014. 11. 11. 22:45

안녕하세요~ 

오늘은 농민의 날이네요~ 가래떡은 많이 받으셨나요?

이번 화에는 CUBRID 사용자, Databases 파일, 백업에 대해 알아볼게요~


CUBRID 데이터베이스 사용자로는 그룹과 사용자로 나뉩니다.

사용자에게 권한 A가 부여되면, 해당 사용자에게 속하는 모든 멤버에게도 권한 A도 동일하게 부여됩니다.

한 마디로, 사용자와 그에 속한 멤버를 그룹이라고 하고,

멤버가 없는 사용자를 사용자라고 합니다.


CUBRID에는 DBA와 PUBLIC이라는 사용자를 기본으로 제공해요.

- DBA는 모든 사용자의 멤버가 되며, 따라서 데이터베이스의 모든 객체에 접근할 수 있는 최고 권한 사용자예요

   DBA만 데이터베이스 사용자를 추가, 편집, 삭제할 수 있는 권한이 있어요

- DBA를 포함한 모든 사용자는 PUBLIC의 멤버가 되므로, 모든 데이터베이스 사용자는 PUBLIC에 부여된

   권한을 가져요

   PUBLIC에 권한 B를 추가하면, 모든 사용자가 권한 B가 부여됩니다.


Oracle의 Control File에 해당 하는 CUBRID의 데이터베이스의 위치 정보는 databases.txt 파일에 저장합니다.

이러한 데이터베이스 위치 정보 파일은 데이터베이스의 생성, 이름 변경, 삭제 및 복사에 관한 유틸리티를

수행하거나 각 데이터베이스를 구동할 때에 사용되며, 

기본으로는 설치 디렉터리의 databases 디렉터리에 위치하고,CUBRID_DATABASES 환경 변수로 디렉터리 위치를 지정할 수 있어요~


데이터베이스 위치 정보 파일의 라인별 형식은 구문에 정의된 바와 같으며, 데이터베이스 이름, 데이터베이스 경로, 서버 호스트 및 로그 파일의 경로에 관한 정보를 저장합니다.


 #db-name vol-path db-host log-path lob-base-path

demodb C:\CUBRID\DATABA~1\demodb localhost C:\CUBRID\DATABA~1\demodb  file:C:\CUBRID\databases\demodb/lob


CUBRID_DATABASES=C:\CUBRID\DATABA~1

만약 CUBRID_DATABASES 환경 변수에서 유효하지 않은 디렉터리 경로가 설정되는 경우에는 에러가 발생하며, 설정된 디렉터리 경로는 유효하나 데이터베이스 위치 정보 파일이 존재하지 않는 경우에는 새로운 위치 정보 파일을 생성한다. 또한, CUBRID_DATABASES 환경 변수가 아예 설정되지 않은 경우에는 현재 작업 디렉터리에서 위치 정보 파일을 검색합니다~



데이터베이스 백업

데이터베이스 백업은 CUBRID 데이터베이스 볼륨, 제어 파일, 로그 파일을 저장하는 작업으로 cubrid backupdb 유틸리티 또는 CUBRID 매니저를 이용하여 수행되요

DBA 는 저장 매체의 오류 또는 파일 오류 등의 장애에 대비하여 데이터베이스를 정상적으로 복구할 수 있도록 주기적으로 데이터베이스를 백업해야 하는데,

복구 환경은 백업 환경과 동일한 운영체제 및 동일한 버전의 CUBRID가 설치된 환경이어야 합니다

이러한 이유로 데이터베이스를 새로운 버전으로 마이그레이션한 후에는 즉시 새로운 버전의 환경에서 백업을 수행해야 해요


cubrid backupdb 유틸리티는 모든 데이터베이스 페이지들, 제어 파일들, 데이터베이스를 백업 시와 일치된 상태로 복구하기 위해 필요한 로그 레코드들을 복사합니다


온라인 백업

온라인 백업(또는 핫 백업)은 운영 중인 데이터베이스에 대해 백업을 수행하는 방식으로, 특정 시점의 데이터베이스 이미지의 스냅샷을 제공합니다.

운영 중인 데이터베이스를 대상으로 백업을 수행하기 때문에 커밋되지 않은 데이터가 저장될 우려가 있고, 다른 데이터베이스 운영에도 영향을 줄 수 있습니다.

온라인 백업을 하려면 cubrid backupdb -C 명령어를 사용해요


오프라인 백업

오프라인 백업(또는 콜드 백업)은 정지 상태인 데이터베이스에 대해 백업을 수행하는 방식으로 특정 시점의 데이터베이스 이미지의 스냅샷을 제공합니다

오프라인 백업을 하려면 cubrid backupdb -S 명령어를 사용해요


증분 백업

증분 백업(incremental backup)은 전체 백업에 종속적으로 수행되는 백업으로 이전에 수행된 백업 이후의 변경된 사항만을 선택적으로 백업하는 방식으로, 전체 백업보다 백업 볼륨이 적고, 백업 소요 시간이 짧다는 장점이 있습니다.

CUBRID는 0, 1, 2의 백업 수준을 제공하며, 낮은 백업 수준으로 백업을 수행한 이후에만 순차적으로 다음 수준의 백업을 수행할 수 있어요

증분 백업을 하려면 cubrid backupdb -l LEVEL 명령어를 사용해요


전체 백업(백업 수준 0): 백업 수준 0은 모든 데이터베이스 페이지를 포함하는 전체 백업이며,

데이터베이스에 최초 시도되는 백업 수준은 당연히 수준 0이 됩니다. 기존에 받은 정보가 없으니까요~

DBA 는 복구 상황을 대비하여 정기적으로 전체 백업을 수행해야 해요


1차 증분 백업(백업 수준 1): 백업 수준 1은 수준 0의 전체 백업 이후의 변경 사항만 저장하는 증분 백업으로서, 이를 "1차 증분 백업"이라 합니다


압축 백업 모드

압축 백업(compress backup)은 데이터베이스를 압축하여 백업을 수행하기 때문에 백업 볼륨의 크기가 줄어들어 디스크 I/O 비용을 감소시킬 수 있고, 디스크 공간을 절약할 수 있는 장점이 있어요

압축 백업을 하려면 cubrid backupdb -z | --compress 명령어를 사용하면 됩니다


병렬 백업 모드

병렬 백업 또는 다중 백업(multi-thread backup)은 지정된 스레드 개수만큼 동시 백업을 수행하기 때문에 백업 시간을 크게 단축시켜 줍니다. 기본적으로 시스템의 CPU 수만큼 스레드를 부여하게 되요

병렬 백업을 하려면 cubrid backupdb -t | --thread-count 명령어를 사용하면 됩니다


다음 시간에는 복구에 대해 알아볼게요~



출처: 큐브리드 메뉴얼                                                      (By. 진준호 2014.11.11)

'2. DBMS이야기 > 04. CUBRID' 카테고리의 다른 글

08. CUBRID DB 체크하기  (0) 2014.12.28
07. CUBRID 복구하기  (0) 2014.12.10
05. CUBRID 기동과 정지  (0) 2014.10.20
04. CUBRID 시스템 카탈로그 & SQL  (0) 2014.10.05
04. CUBRID의 카탈로그와 테이블  (0) 2014.09.26