백업과 복구의 이해
- 백업: 데이터베이스 및 구성 파일의 복사본을 만들어 두는 것
- 복구: 장애가 발생했을 때 백업한 파일을 활용하여 데이터베이스를 복구하는 것
- DB 장애 발생에 대비하여 데이터베이스를 정상적으로 복구할 수 있도록 주기적으로 데이터베이스를 백업해야 함
데이터베이스 볼륨이 호환되는 경우
- cubrid backupdb 명령어와 cubrid restoredb 명령어를 사용해 볼륨 파일을 백업하고 복구
- 데이터베이스 볼륨이 호환되는 경우에만 백업과 복구를 할 수 있음
백업
- cubrid backupdb 명령을 이용한 백업은 데이터의 볼륨 파일을 그대로 읽어 저장
- 데이터베이스 페이지들, 제어 파일들, 데이터베이스를 백업 시 상태로 복구하기 위해 필요한 로그 레코드들을 복사
- backupdb 유틸리티로 데이터베이스 백업
- HA 환경에서 백업하는 경우 [@hostname]을 지정 (독립 모드에서는 생략)
$ cubrid backupdb [options] database_name[@hostname]
증분 백업
- 먼저 수행된 백업 이후의 변경된 사항만을 선택적으로 백업하는 방식
- 전체 백업보다 백업 볼륨이 적고, 백업 소요 시간이 짧음
- 전체 백업(0 level backup): 데이터베이스의 모든 페이지를 백업
- 1차 증분 백업(1 level backup): 전체 백업 이후에 변경 사항만 저장하는 백업
- 전체 백업이 선행되어야 함
- 1차 증분 백업이 여러 번 수행될 경우, 매번 전체 백업을 기준으로 수행됨
- 1차 증분 파일이 존재할 경우, 기존의 파일을 덮어쓰기함
- 2차 증분 백업(2 level backup): 1차 증분 백업 이후 변경 사항만 저장하는 백업
- 1차 증분 백업이 선행되어야 함
- 2차 증분 백업이 여러 번 수행될 경우, 매번 1차 증분 백업을 기준으로 수행됨
- 2차 증분 파일이 존재할 경우, 기존의 파일을 덮어쓰기함
복구
- 동일 버전의 CUBRID 환경에서 수행된 백업 작업에 의해 생성된 백업 파일, 활성 로그 및 보관 로그를 이용하여 특정 시점의 데이터베이스로 복구
$ cubrid restoredb [options] database_name
백업/복구와 unload/load의 차이점
백업/복구
- 백업/복구는 동일한 운영체제 및 동일한 버전의 CUBRID가 설치된 환경에서 가능
- 바이너리 이미지를 그대로 복사하므로 loaddb보다 복구 속도가 빠름
unload/load
- 언로드, 로드는 데이터를 텍스트 형식으로 내려받아 볼륨에 올리는 것
- 다른 버전의 cubrid 또는 다른 시스템 환경에서 마이그레이션 수행할 때 사용