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 데이터베이스 볼륨, 제어 파일, 로그 파일을 저장하는 작업으로 cubrid backupdb 유틸리티 또는 CUBRID 매니저를 이용하여 수행된다. DBA는 저장 매체의 오류 또는 파일 오류 등의 장애에 대비하여 데이터베이스를 정상적으로 복구할 수 있도록 주기적으로 데이터베이스를 백업해야 한다. 이 때 복구 환경은 백업 환경과 동일한 운영체제 및 동일한 버전의 CUBRID가 설치된 환경이어야 한다. 이러한 이유로 데이터베이스를 새로운 버전으로 마이그레이션한 후에는 즉시 새로운 버전의 환경에서 백업을 수행해야 한다.

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

구문

cubrid backupdb [ options ] database_name
[ options ]
-D | -r | -l | -o | -S | -C | -t | -z | -e |
--destination-path | --remove-archive | --level | --output-file | --SA-mode | --CS-mode | --thread-count | --compress | --except-active-log | --no-check

  • cubrid : CUBRID 서비스 및 데이터베이스 관리를 위한 통합 유틸리티이다.
  • backupdb : 지정한 데이터베이스를 백업하는 명령이며, 결합되는 옵션에 따라 온라인 백업, 오프라인 백업, 증분 백업, 압축 백업, 병렬 백업을 수행할 수 있다. 또한, 백업 권한을 가진 사용자(예: DBA)만 수행할 수 있다.
  • options : 단축 옵션은 대시(-)와 결합하여 지정되어야 하고, 전체 옵션은 이중 대시(--)와 결합하여 지정되어야 한다. 대소문자 사용에 주의한다.
  • database_name : 백업할 데이터베이스의 이름을 지정한다.
리턴 값
  •  0 : 성공
  •  Non-zero : 실패
옵션

다음은 cubrid backupdb 유틸리티와 결합할 수 있는 옵션을 정리한 표이다. 대소문자가 구분됨을 주의한다.

옵션

설명

-D
--destination-path

백업 볼륨을 생성하고자 하는 디렉터리 경로명이나 장치 이름을 지정한다.
기본값은 데이터베이스가 생성되었을 때, 데이터베이스 위치 정보 파일(databases.txt)에 지정된 log_path 위치

-r
--remove-archive

백업 수행한 후, 복구에 필요하지 않은 보관 로그를 삭제한다.

-l
--level

0, 1, 2 중에서 백업 수준을 설정한다.
기본값은 전체 백업(0)이다.

-o
--output-file

진행 정보를 출력할 파일 이름을 지정한다.

-S
--SA-mode

독립 모드에서 백업 수행한다.
기본값은 시스템 파라미터 CUBRID_MODE의 설정값이다.

-C
--CS-mode

클라이언트/서버 모드에서 백업 수행한다.
기본값은 시스템 파라미터 CUBRID_MODE의 설정값이다.

-t
--thread-count

병렬 백업 시 허용되는 스레드의 최대 개수를 지정한다.
기본값은 시스템의 CPU 개수이다.

-z
--compress

압축 백업을 수행한다.

-e
--except-active-log

백업 시 활성 로그 볼륨을 포함하지 않도록 설정한다.

--no-check

백업 전에 데이터베이스 일관성 점검을 수행하지 않는다.

-sp
--safe-page-id

복제를 구성하는 환경에서 -r 옵션과 함께 설정되는 옵션이다. -r 옵션과 -sp 옵션을 함께 사용해야만, 복제 수행 시 필요한 정보를 제외한 나머지 불필요한 보관 로그가 삭제된다.

백업 파일이 저장될 디렉터리를 지정하여 백업 수행(-D 또는 --destination-path)

-D 옵션을 이용하여 지정된 디렉터리에 백업 파일이 저장되도록 하는 명령이며, 현재 존재하는 디렉터리가 지정되어야 한다. 그렇지 않으면 지정한 이름의 백업 파일이 생성된다. -D 옵션이 지정되지 않으면 백업 파일은 해당 데이터베이스의 위치 정보를 저장하는 파일인 databases.txt에 명시된 디렉터리에 생성된다.

cubrid backupdb -D /home/cubrid/backup demodb

-D 옵션을 이용하여 현재 디렉터리에 백업 파일이 저장되도록 하는 구문이다. -D 옵션의 인수로 "."을 입력하면 현재 디렉터리가 지정된다.

cubrid backupdb -D . demodb

백업 후 보관 로그를 삭제(-r 또는 --remove-archive)

데이터베이스 관련 파라미터 중 media_failure_support 파라미터의 설정값이 1이면, 활성 로그(active log)가 꽉 찼을 때 활성 로그를 새로운 보관 로그 파일에 기록한다. 이때 백업을 수행하여 백업 볼륨이 생성되면, 백업 시점 이전의 보관 로그는 추후 복구 작업에 필요 없다. -r 옵션은 백업을 수행한 후에, 추후 복구 작업에 더 이상 사용되지 않을 보관 로그 파일을 제거하는 옵션이다.

-r 옵션은 백업 시점 이전의 불필요한 보관 로그만 제거하므로 복구 작업에는 영향을 끼치지 않지만, 관리자가 백업 시점 이후의 보관 로그까지 제거하는 경우 전체 복구가 불가능할 수도 있다. 따라서 보관 로그를 제거할 때에는 추후 복구 작업에 필요한 것인지 반드시 검토해야 한다.

-r 옵션을 사용하여 증분 백업(백업 수준 1 또는 2)을 수행하는 경우, 추후 데이터베이스의 정상 복구가 불가능할 수도 있으므로 -r 옵션은 전체 백업 수행 시에만 사용하는 것을 권장한다.

cubrid backupdb -r demodb

복제에 필요한 페이지 정보를 저장(-sp 또는 --safe-page-id)

-sp 옵션은 복제 환경에서 -r 옵션과 함께 사용되는 옵션이다. 이 옵션이 지정되어야, 복제를 수행한 마지막 로그 페이지 ID를 제외하고 이보다 작은 로그 페이지 ID를 가지는 보관 로그만 안전하게 삭제한다. 즉, 복제에 필요한 보관 로그를 제외하고 -r 옵션이 수행되는 것이다. 이 옵션의 인자로 복제 스크립트 중 하나인 'repl_safe_page DB_NAME'을 지정해야 한다.

cubrid backupdb -r -sp 'repl_safe_page demodb' demodb

백업 수준을 지정하여 증분 백업 수행(-l 또는 --level)

-l 옵션을 이용하여 지정된 백업 수준으로 증분 백업을 수행하는 구문이다. -l 옵션이 지정되지 않으면 전체 백업이 수행된다. 백업 수준에 대한 자세한 내용은 증분 백업을 참조한다.

cubrid backupdb -l 1 demodb

지정된 파일에 백업 진행 정보 저장(-o 또는 --output-file)

-o 옵션을 이용하여 대상 데이터베이스의 백업에 관한 진행 정보를 info_backup이라는 파일에 기록하는 구문이다.

cubrid backupdb -o info_backup demodb

다음은 info_backup 파일 내용의 예시로서, 스레드 개수, 압축 방법, 백업 시작 시간, 영구 볼륨의 개수, 백업 진행 정보, 백업 완료 시간 등의 정보를 확인할 수 있다.

[ Database(demodb) Full Backup start ]
- num-threads: 1
- compression method: NONE
- backup start time: Mon Jul 21 16:51:51 2008
- number of permanent volumes: 1
- backup progress status
-----------------------------------------------------------------------------
 volume name                  | # of pages | backup progress status    | done
-----------------------------------------------------------------------------
 demodb_vinf                  |          1 | ######################### | done
 demodb                       |      25000 | ######################### | done
 demodb_lginf                 |          1 | ######################### | done
 demodb_lgat                  |      25000 | ######################### | done
-----------------------------------------------------------------------------
# backup end time: Mon Jul 21 16:51:53 2008
[Database(demodb) Full Backup end]

독립 모드에서 백업 수행 (-S 또는 --SA-mode)

-S 옵션에 의해 독립모드에서 백업을 수행하는 구문으로서, demodb를 오프라인 백업한다. -S 옵션이 지정되지 않으면 CUBRID_MODE 환경 변수에 의해 설정된 모드에서 백업이 수행된다.

cubrid backupdb -S demodb

클라이언트/서버 모드에서 백업 수행(-C 또는 --CS-mode)

-C 옵션에 의해 클라이언트/서버 모드에서 백업을 수행하는 구문으로서, demodb를 온라인 백업한다. -C 옵션이 지정되지 않으면 CUBRID_MODE 환경 변수에 의해 설정된 모드에서 백업이 수행된다.

cubrid backupdb -C demodb

병렬 백업(-t 또는 --thread-count)

-t 옵션을 이용하여 관리자가 임의로 스레드의 개수를 지정함으로써 병렬 백업을 수행하는 명령이다. -t 옵션의 인수를 지정하지 않더라도 시스템의 CPU 개수만큼 스레드를 자동 부여하여 병렬 백업을 수행한다.

cubrid backupdb -t 4 demodb

압축 백업(-z 또는 --compress)

-z 옵션을 이용하여 대상 데이터베이스를 압축하여 백업 파일에 저장하는 구문이다. -z 옵션을 사용하면, 백업 파일의 크기 및 백업 시간을 단축시킬 수 있다.

cubrid backupdb -z demodb

활성 로그 볼륨 비포함 활성화(-e 또는 --except-active-log)

-e 옵션을 이용하여 대상 데이터베이스의 활성 로그(active log)를 포함하지 않고 백업을 수행하는 구문이다. -e 옵션을 이용하면 활성 로그를 생성하지 않고 백업이 이루어지므로 백업 시간을 단축시킬 수 있으나, 백업 시점 이후 최근 시점까지의 데이터를 복구할 수 없으므로 상당한 주의를 요한다.

cubrid backupdb -e demodb

데이터베이스 일관성 점검 비활성화(--no-check)

--no-check 옵션을 이용하여 대상 데이터베이스의 일관성을 체크하지 않고, 바로 백업을 수행하는 명령이다.

cubrid backupdb --no-check demodb