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 8.4.3 |  CUBRID 9.0.0 | 

다른 서버로의 데이터베이스 복구

다음은 A 서버에서 demodb를 백업하고, 백업된 파일을 기반으로 B 서버에서 demodb를 복구하는 방법이다.

백업 환경과 복구 환경

A 서버의 /home/cubrid/db/demodb 디렉터리에서 demodb를 백업하고, B 서버의 /home/cubrid/data/demodb 디렉터리에 demodb를 복구하는 것으로 가정한다.

recovery_environment.png

  1. A 서버에서 백업
    • A 서버에서 demodb를 백업한다. 이전에 백업을 수행하였다면 이후 변경된 부분만 증분 백업을 수행할 수 있다. 백업 파일이 생성되는 디렉터리는 -D 옵션에 의해 지정하지 않으면, 기본적으로 로그 볼륨이 저장되는 위치에 생성된다. 다음은 권장되는 옵션을 결합한 백업 명령이며, 옵션에 관한 보다 자세한 내용은 데이터베이스 백업을 참조한다.
    • cubrid backupdb -z -t demodb
  2. B 서버에서 데이터베이스 위치 정보 파일 편집
    • 동일한 서버에서 백업 및 복구 작업이 이루어지는 일반적인 시나리오와는 달리, 타 서버 환경에서 백업 파일을 복구하는 시나리오에서는 B 서버의 데이터베이스 위치 정보 파일(databases.txt)에서 데이터베이스를 복구할 위치 정보를 추가해야 한다. 위 그림에서는 B 서버(호스트명은 pmlinux)의 /home/cubrid/data/demodb 디렉터리에 demodb를 복구하는 것을 가정하였으므로, 이에 따라 데이터베이스 위치 정보 파일을 편집하고, 해당 디렉터리를 B 서버에서 생성한다.
    • 데이터베이스 위치 정보는 한 라인으로 작성하고, 각 항목은 공백으로 구분한다. 한 라인은 [데이터베이스명] [데이터볼륨경로] [호스트명] [로그볼륨경로]의 형식으로 작성한다. 따라서 다음과 같이 demodb의 위치 정보를 작성한다.
    • demodb /home/cubrid/data/demodb pmlinux /home/cubrid/data/demodb
  3. B 서버로 백업 파일 및 로그 파일 전송
    • 복구를 위해서는 대상 데이터베이스의 백업 파일(예: demodb_bk0v000) 및 백업 정보 파일(예:demodb_bkvinf)이 필수적으로 준비되어야 하고, 마지막 커밋 시점까지 전체 데이터를 복구하기 위해서는 활성 로그(예: demodb_lgat) 및 보관 로그(예: demodb_lgar000)가 준비되어야 한다. 따라서, A 서버에서 생성된 백업 파일, 백업 정보 파일, 활성 로그 파일, 보관 로그 파일을 B 서버에 전송한다. 즉, B 서버의 임의 디렉터리(예: /home/cubrid/temp)에는 백업 파일, 백업 정보 파일, 활성 로그 파일, 보관 로그 파일이 위치해야 한다.
  4. B 서버에서 복구
    • B 서버로 전송한 백업 파일, 백업 정보 파일, 활성 로그 파일, 보관 로그 파일이 있는 디렉터리에서 cubrid restoredb 유틸리티를 호출하여 데이터베이스 복구 작업을 수행한다. -u 옵션에 의해 databases.txt에 지정된 디렉터리 경로에 demodb가 복구된다.
    • cubrid restoredb -u demodb
    • 만약, 다른 위치에서 cubrid restoredb 유틸리티를 호출하려면, 다음과 같이 -B 옵션을 이용하여 백업 파일이 위치하는 디렉터리 경로를 지정해야 한다.
    • cubrid restoredb -u -B /home/cubrid/temp demodb
  5. B 서버에서 복구한 데이터베이스를 다시 백업
    • 대상 데이터베이스의 복구가 완료되면, 해당 데이터베이스를 구동하여 정상적으로 복구되었는지를 확인한다. 또한, 복구한 데이터베이스를 안정적으로 관리하기 위해서는 B 서버 환경에서 대상 데이터베이스를 새로 백업하는 것이 좋다.