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 restoredb 유틸리티 또는 CUBRID 매니저를 사용한다.

cubrid restoredb 유틸리티는 백업이 수행된 이후에 모든 보관 및 활동 로그들에 기록된 정보들을 이용하여 데이터베이스 백업으로부터 데이터베이스를 복구한다.

구문

cubrid restoredb [ options ] database_name
[ options ]
-d | -B | -l | -p | -o | -u |
--up-to-date | --backup-file-path | --level | --partial-recovery | --output-file | --replication-mode | --use-database-location-path | --list

  • cubrid : CUBRID서비스 및 데이터베이스 관리를 위한 통합 유틸리티이다.
  • restoredb : 지정한 데이터베이스를 복구하는 명령이며, 정상적인 복구를 위해서는 백업 파일, 활성 로그 파일, 보관 로그 파일이 준비되어야 한다. 또한, 독립 모드(standalone)에서만 수행 가능하다.
  • options : 단축 옵션은 대시(-)와 결합하여 지정되어야 하고, 전체 옵션은 이중 대시(--)와 결합하여 지정되어야 한다. 대소문자 사용에 주의한다.
  • database_name : 복구하려는 데이터베이스의 이름을 지정한다.
리턴 값
  •  0 : 성공
  •  Non-zero : 실패
옵션

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

옵션

설명

-d
--up-to-date

데이터베이스를 복구할 시간을 직접 지정하거나, backuptime 키워드를 지정한다.

-B
--backup-file-path

백업 파일이 위치하는 디렉터리 경로명이나 장치명을 지정한다.

-l
--level

0, 1, 2 중에서 복구할 수준을 설정한다.
디폴트 값은 전체 복구(0)이다.

-p
--partial-recovery

부분 복구를 수행한다.

-o
--output-file

복구 작업에 관한 진행 정보를 출력할 파일 이름을 지정한다.

-u
--use-database-location-path

데이터베이스 위치 정보 파일(databases.txt)에 지정된 경로로 대상 데이터베이스를 복구한다.

--list

대상 데이터베이스의 백업 볼륨에 관한 정보를 화면 출력한다.

복구 시점을 지정하여 복구 수행(-d 또는 --up-to-date)

demodb를 복구하는 명령이며, 어떠한 옵션도 지정되지 않은 경우 기본적으로 마지막 커밋 시점까지 demodb가 복구된다. 만약, 마지막 커밋 시점까지 복구하기 위해 필요한 활성 로그/보관 로그 파일이 없다면 마지막 백업 시점까지만 부분 복구된다.

cubrid restoredb demodb

-d 옵션을 이용하여 복구 날짜 및 시간을 지정하는 구문으로 demodb를 해당 시점까지 복구한다. 사용자는 dd-mm-yyyy:hh:mi:ss(예: 14-10-2008:14:10:00)의 형식으로 복구 시점을 직접 지정할 수 있다. 만약 지정한 복구 시점까지 복구하기 위해 필요한 활성 로그/보관 로그 파일이 없다면 마지막 백업 시점까지만 부분 복구된다.

cubrid restoredb -d 14-10-2008:14:10:00 demodb

-d 옵션 및 backuptime이라는 키워드를 이용하여 복구 시점을 지정하는 구문으로 demodb를 마지막 백업이 수행된 시점까지 복구한다.

cubrid restoredb -d backuptime demodb

백업 파일이 위치하는 디렉터리 경로를 지정하여 복구 수행(-B 또는 --backup-file-path)

-B 옵션을 이용하여 백업 파일이 위치하는 디렉터리를 지정할 수 있다. 만약, 이 옵션이 지정되지 않으면 시스템은 데이터베이스 위치 정보 파일인 databases.txt에 지정된 log_path 디렉터리에서 대상 데이터베이스를 백업했을 때 생성된 백업 정보 파일(dbname_bkvinf)을 검색하고, 백업 정보 파일에 지정된 디렉터리 경로에서 백업 파일을 찾는다. 그러나, 백업 정보 파일이 손상되거나 백업 파일의 위치 정보가 삭제된 경우라면 시스템이 백업 파일을 찾을 수 없으므로, 관리자가 -B 옵션을 이용하여 백업 파일이 위치하는 디렉터리 경로를 직접 지정해야 한다.

cubrid restoredb -B /home/cubrid/backup demodb

demodb의 백업 파일이 현재 디렉터리에 있는 경우, 관리자는 -B 옵션을 이용하여 백업 파일이 위치하는 디렉터리를 지정할 수 있다.

cubrid restoredb -B . demodb

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

-l 옵션은 대상 데이터베이스의 백업 수준(0, 1, 2)을 지정하여 복구를 수행한다. 백업 수준에 대한 자세한 내용은 증분 백업을 참조한다.

cubrid restoredb -l 1 demodb

부분 복구 수행(-p 또는 --partial-recovery)

-p 옵션은 사용자 응답을 요청하지 않고 부분 복구를 수행하라는 명령이다. 백업 시점 이후에 기록된 활성 로그나 보관 로그가 완전하지 않을 때, 기본적으로 시스템은 로그 파일이 필요하다는 것을 알리면서 실행 옵션을 입력하라는 요청 메시지를 출력하는데, -p 옵션을 이용하면 이러한 요청 메시지의 출력 없이 직접 부분 복구를 수행할 수 있다. 따라서, -p 옵션을 이용하여 복구를 수행하면 언제나 마지막 백업 시점까지 데이터가 복구된다.

cubrid restoredb -p demodb

-p 옵션이 지정되지 않은 경우, 사용자에게 실행 옵션을 선택하라는 요청 메시지는 다음과 같다.

***********************************************************

Log Archive /home/cubrid/test/log/demodb_lgar002

 is needed to continue normal execution.

   Type

   -  0 to quit.

   -  1 to continue without present archive. (Partial recovery)

   -  2 to continue after the archive is mounted/loaded. 

   -  3 to continue after changing location/name of archive.

***********************************************************

  • 옵션 0 : 복구 작업을 더이상 진행하지 않을 경우, 0을 입력한다.
  • 옵션 1 : 로그 파일 없이 부분 복구를 진행하려면, 1을 입력한다.
  • 옵션 2 : 복구 작업을 진행하기 위해 관리자는 현재 장치에 보관 로그를 위치시킨 후 2를 입력한다.
  • 옵션 3 : 복구 작업을 계속하기 위해 관리자는 로그 위치를 변경한 후 3을 입력한다.

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

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

cubrid restoredb -o info_restore demodb

데이터베이스 위치 정보 파일에 지정된 디렉터리로 데이터를 복구(-u 또는 --use-database-location-path)

-u 옵션을 이용하여 데이터베이스 위치 정보 파일(databases.txt)에 지정된 경로에서 대상 데이터베이스를 복구하는 구문이다. -u 옵션은 A 서버에서 백업을 수행하고 B 서버에서 백업 파일을 복구하고자 할 때 사용할 수 있는 유용한 옵션이다.

cubrid restoredb -u demodb

대상 데이터베이스의 백업 정보 확인하기(--list)

--list 옵션을 이용하여 대상 데이터베이스의 백업 파일에 관한 정보를 화면 출력하는 구문으로 복구는 수행하지 않는다.

cubrid restoredb --list demodb

다음은 --list 옵션에 의해 출력되는 백업 정보의 예로서, 복구 작업을 수행하기 이전에 대상 데이터베이스의 백업 파일이 최초 저장된 경로와 백업 수준을 검증할 수 있다.

*** BACKUP HEADER INFORMATION ***
Database Name: /local1/testing/demodb
 DB Creation Time: Mon Oct 1 17:27:40 2008
         Pagesize: 4096
Backup Level: 1 (INCREMENTAL LEVEL 1)
        Start_lsa: 513|3688
         Last_lsa: 513|3688
Backup Time: Mon Oct 1 17:32:50 2008
 Backup Unit Num: 0
Release: 8.1.0
     Disk Version: 8
Backup Pagesize: 4096
Zip Method: 0 (NONE)
        Zip Level: 0 (NONE)
Previous Backup level: 0 Time: Mon Oct 1 17:31:40 2008
(start_lsa was -1|-1)
Database Volume name: /local1/testing/demodb_vinf
     Volume Identifier: -5, Size: 308 bytes (1 pages)
Database Volume name: /local1/testing/demodb
     Volume Identifier: 0, Size: 2048000 bytes (500 pages)
Database Volume name: /local1/testing/demodb_lginf
     Volume Identifier: -4, Size: 165 bytes (1 pages)
Database Volume name: /local1/testing/demodb_bkvinf
     Volume Identifier: -3, Size: 132 bytes (1 pages)

--list 옵션을 이용하여 출력된 백업 정보를 확인하면, 백업 파일이 백업 수준 1로 생성되었고, 이전 백업 수준 0의 전체 백업이 수행된 시점을 확인할 수 있다. 따라서, 예시된 데이터베이스의 복구를 위해서는 백업 수준 0인 백업 파일과 백업 수준 1인 백업 파일이 준비되어야 한다.