데이터베이스 백업은 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 backupdb 유틸리티와 결합할 수 있는 옵션을 정리한 표이다. 대소문자가 구분됨을 주의한다.
옵션 |
설명 |
---|---|
-D |
백업 볼륨을 생성하고자 하는 디렉터리 경로명이나 장치 이름을 지정한다. |
-r |
백업 수행한 후, 복구에 필요하지 않은 보관 로그를 삭제한다. |
-l |
0, 1, 2 중에서 백업 수준을 설정한다. |
-o |
진행 정보를 출력할 파일 이름을 지정한다. |
-S |
독립 모드에서 백업 수행한다. |
-C |
클라이언트/서버 모드에서 백업 수행한다. |
-t |
병렬 백업 시 허용되는 스레드의 최대 개수를 지정한다. |
-z |
압축 백업을 수행한다. |
-e |
백업 시 활성 로그 볼륨을 포함하지 않도록 설정한다. |
--no-check |
백업 전에 데이터베이스 일관성 점검을 수행하지 않는다. |
백업 파일이 저장될 디렉터리를 지정하여 백업 수행(-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
백업 수준을 지정하여 증분 백업 수행(-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