1번 서버
- 새로운 db 생성
$ cd $CUBRID_DATABASES
$ mkdir bktestdb
$ cubrid createdb -F "$CUBRID_DATABASES/bktestdb" --db-volume-size=20M --log-volume-size=20M bktestdb ko_KR.utf8
- cubrid service 시작하고, bktestdb 시작하기
$ cubrid service start
$ cubrid server start bktestdb
- csql로 접속해서 테이블 생성하고 레코드 추가
$ csql -u dba bktestdb
csql> CREATE TABLE s1h (a INT PRIMARY KEY);
csql> CREATE TABLE s1w (a INT PRIMARY KEY);
csql> INSERT INTO s1h SELECT ROWNUM FROM db_class c1, db_class c2 LIMIT 100;
csql> INSERT INTO s1w SELECT ROWNUM FROM db_class c1, db_class c2, db_class c3 LIMIT 10000;
csql> CREATE TABLE t1 (a INT PRIMARY KEY, b INT, c INT, d CHAR(10),e CHAR(100),f CHAR(500),
INDEX i_t1_b(b));
csql> INSERT INTO t1 SELECT ROWNUM, ROWNUM, ROWNUM, ROWNUM||'', ROWNUM||'', ROWNUM||'' FROM s1h,s1w;
- 생성된 테이블은 다음과 같음
- backupdb 유틸리티로 bktestdb 백업
- -D: 백업 파일이 저장될 디렉터리 경로
- -r: 복구 작업에 더 이상 사용되지 않을 보관 로그 파일을 제거하는 옵션
- -o: 백업 진행 정보를 지정한 파일에 기록
$ cubrid backupdb -D $CUBRID_DATABASES/bktestdb -r -o bkmsg.txt bktestdb
- 지정한 디렉터리를 확인해보면 다음과 같은 파일이 생성됨
- bktestdb_bk0v000: 백업 파일
- bktestdb_bkvinf: 백업 파일의 위치 정보
- bkmsg.txt: -o 옵션에 의해 생성된 파일로 백업 진행 정보
- 생성된 bkmsg.txt를 통해 백업 진행 정보를 확인
- num-threads: 스레드 개수
- compression method: 압축 방법
- backup start time: 백업 시작 시간
- number of permanent volumes: 영구 볼륨의 개수
- backup progress status: 백업 진행 정보
- backup end time: 백업 완료 시간
- $CUBRID_DATABASES/bktestdb/bktestdb_lginf를 확인해보면, -r 옵션을 지정했기 때문에 백업하면서 불필요한 로그 파일이 제거됨
2번 서버
- 복구를 진행할 디렉토리 생성
$ cd CUBRID_DATABASES
$ mkdir bktestdb
- databases.txt에서 데이터베이스를 복구할 위치 정보를 추가
$ vi databases.txt
# 해당 위치 정보 추가
# [데이터베이스명] [데이터볼륨경로] [호스트명] [로그볼륨경로]
bktestdb /home/cubrid/CUBRID-11.3.1.1142-bee7aa8-Linux.x86_64/databases/bktestdb localhost /home/cubrid/CUBRID-11.3.1.1142-bee7aa8-Linux.x86_64/databases/bktestdb
- 1번 서버에서 2번 서버로 백업 파일과 백업 파일 위치 정보 전송
# 1번 서버
$ scp ./bktestdb_bk0v000 cubrid@172.xx.xxx.xx:/home/cubrid/CUBRID-11.3.1.1142-bee7aa8-Linux.x86_64/databases/bktestdb
$ scp ./bktestdb_bkvinf cubrid@172.xx.xxx.xx:/home/cubrid/CUBRID-11.3.1.1142-bee7aa8-Linux.x86_64/databases/bktestdb
- 2번 서버를 확인해보면 지정한 디렉터리에 백업 파일과 백업 파일 위치 정보가 생성됨
- restoredb 유틸리티로 복구 진행
- -u: databases.txt에 지정된 경로에서 데이터베이스를 복구
- -B: 백업 파일이 위치한 디렉터리
- -o: 복구 진행 정보를 기록할 파일명
$ cubrid restoredb -u -B $CUBRID_DATABASES/bktestdb -o rsmsg.txt bktestdb
- 생성된 rsmsg.txt를 통해 백업 진행 정보를 확인
- restore start time: 복구 시작 시간
- restore steps: 복구 단계
- restore progress status: 복구 진행 정보
- restore end time: 복구 완료 시간
- bktesdb를 확인해보면 DB가 복구됨
- csql로 확인해보면 1번 서버와 동일하게 table이 복구된 것을 확인할 수 있음
$ csql -u dba bktestdb
csql> show tables;
'DBMS > CUBRID' 카테고리의 다른 글
[CUBRID] 증분 백업 (1) | 2024.08.26 |
---|---|
[CUBRID] 시점 복구 (0) | 2024.08.26 |
[CUBRID] 백업과 복구의 이해 (0) | 2024.08.26 |
[CUBRID] VACUUM 테스트 (0) | 2024.08.25 |
[CUBRID] 2PL, MVCC, VACUUM (0) | 2024.08.25 |