데이터베이스가 삭제되었거나, 다른 서버에 데이터베이스를 복사하고자 할때 백업파일만을 이용하여 데이터베이스를 복구할 수가 있다.
이경우 몇가지 전제조건이 필요하다.
1. 백업당시와 동일한 DBMS 버젼
2. 원본 데이터베이스와 동일한 디렉토리 구성
* 편의를 위하여 unix(linux 동일) 환경으로 설명하며, 윈도우 환경과 다른점은 아래와 같다.
- 데이터베이스 등록정보 화일 명
- databases.txt
- 화일 패스
- UNIX : 예) /database/demodb
- WINDOWS : 예) D:databasedemodb
- 환경 변수
- UNIX : 예) $CUBRID
- WINDOWS : 예) %CUBRID%
백업화일만을 이용하여 데이터베이스를 복구하는 순서는 다음과 같다.
0. 예를 위하여 다음의 경우로 가정한다.
- 데이터베이스 : CUBRID
- 서버이름 : db_server
서버이름 얻는 법
- UNIX(LINUX), WINDOWS : hostname 의 수행 결과
- 데이터베이스 이름 : demodb
- 설치 위치 : /database/demodb, 로그는 /database/demodb/log
여러 위치에 분산되어 있는 경우라도 문제없음.
1. 백업당시와 동일한 DBMS 버젼 환경 마련
이미 설치되어 있다면 상관없고, 그렇지 않다면 제품을 설치한다.
2. 원 데이터베이스가 있던 위치와 동일한 디렉토리를 구성한다.
% mkdir /database
% mkdir /database/demodb
% mkdir /database/demodb/log
* UNIX(LINUX) 의 경우 적절한 권한을 주어야 할 수도 있다.
3. 데이터베이스 등록정보 화일을 편집하여 데이터베이스 정보를 입력한다.
이 정보는 원 데이터베이스의 위치 정보이며, 원 데이터베이스가 있던 서버의 $CUBRID_DATABASESES/databases 의 내용을 그대로 옮기면 되며, 다만 서버가 달라지는 경우 앞에서 세번째 내용이 서버이름이므로 이 값만 현재 서버의 서버이름으로 적으면 된다.
% vi $CUBRID_DATABASES/databases.txt
demodb /database/demodb db_server /database/demodb/log
4. 데이터베이스 백업화일을 임의의 위치에 복사한다. 이때 가장 마지막 백업본을 사용한다. 단 마지막 백업이 풀(level 0) 백업이 아닌 경우 현재 레벨 이전의 모든 백업본이 필요하다. 예를 들어 현재 백업본이 level 2 라면 level 0, level 1 모두 필요하다.
디폴트로 백업시 백업화일명은 demodb_bk0v000 형식이며, 이때 bk 다음 v 앞의 숫자가 level 이다. 0v 이면 level 0 백업 화일이다.
/tmp 아래에 복사한 것으로 가정.
5. 데이터베이스 복구 명령을 수행한다. 마지막 백업이 level 0 일 경우에는 아래와 같이 수행한다.
% cubrid restoredb -B /tmp -p demodb
만약 마지막 백업이 level 2 라면 아래와 같이 수행한다.
% restoredb -l 2 -B /tmp -p demodb
6. csql 를 수행하여 정상 복구 여부를 확인한다.
% csql -S demodb
csql> ;exit
이경우 몇가지 전제조건이 필요하다.
1. 백업당시와 동일한 DBMS 버젼
2. 원본 데이터베이스와 동일한 디렉토리 구성
* 편의를 위하여 unix(linux 동일) 환경으로 설명하며, 윈도우 환경과 다른점은 아래와 같다.
- 데이터베이스 등록정보 화일 명
- databases.txt
- 화일 패스
- UNIX : 예) /database/demodb
- WINDOWS : 예) D:databasedemodb
- 환경 변수
- UNIX : 예) $CUBRID
- WINDOWS : 예) %CUBRID%
백업화일만을 이용하여 데이터베이스를 복구하는 순서는 다음과 같다.
0. 예를 위하여 다음의 경우로 가정한다.
- 데이터베이스 : CUBRID
- 서버이름 : db_server
서버이름 얻는 법
- UNIX(LINUX), WINDOWS : hostname 의 수행 결과
- 데이터베이스 이름 : demodb
- 설치 위치 : /database/demodb, 로그는 /database/demodb/log
여러 위치에 분산되어 있는 경우라도 문제없음.
1. 백업당시와 동일한 DBMS 버젼 환경 마련
이미 설치되어 있다면 상관없고, 그렇지 않다면 제품을 설치한다.
2. 원 데이터베이스가 있던 위치와 동일한 디렉토리를 구성한다.
% mkdir /database
% mkdir /database/demodb
% mkdir /database/demodb/log
* UNIX(LINUX) 의 경우 적절한 권한을 주어야 할 수도 있다.
3. 데이터베이스 등록정보 화일을 편집하여 데이터베이스 정보를 입력한다.
이 정보는 원 데이터베이스의 위치 정보이며, 원 데이터베이스가 있던 서버의 $CUBRID_DATABASESES/databases 의 내용을 그대로 옮기면 되며, 다만 서버가 달라지는 경우 앞에서 세번째 내용이 서버이름이므로 이 값만 현재 서버의 서버이름으로 적으면 된다.
% vi $CUBRID_DATABASES/databases.txt
demodb /database/demodb db_server /database/demodb/log
4. 데이터베이스 백업화일을 임의의 위치에 복사한다. 이때 가장 마지막 백업본을 사용한다. 단 마지막 백업이 풀(level 0) 백업이 아닌 경우 현재 레벨 이전의 모든 백업본이 필요하다. 예를 들어 현재 백업본이 level 2 라면 level 0, level 1 모두 필요하다.
디폴트로 백업시 백업화일명은 demodb_bk0v000 형식이며, 이때 bk 다음 v 앞의 숫자가 level 이다. 0v 이면 level 0 백업 화일이다.
/tmp 아래에 복사한 것으로 가정.
5. 데이터베이스 복구 명령을 수행한다. 마지막 백업이 level 0 일 경우에는 아래와 같이 수행한다.
% cubrid restoredb -B /tmp -p demodb
만약 마지막 백업이 level 2 라면 아래와 같이 수행한다.
% restoredb -l 2 -B /tmp -p demodb
6. csql 를 수행하여 정상 복구 여부를 확인한다.
% csql -S demodb
csql> ;exit