최신 게시글(DB)
2019.02.15 / 19:13

Tibero 백업 & 복구

hanulbit
추천 수 24

Tibero DB 백업에는 크게 현재 서버가 돌아가는 상태에서 하는 온라인 백업 (Hot Backup)과 서버를 내린 상태에서 하는 오프라인 백업 (Cold Backup)이 있다

 

1. 온라인 백업 (서버 운영중에 하는 백업 방식)

온라인 백업은 Archive log 모드에서만 가능하다.

 

a. 컨트롤 파일 백업

 

SQL> alter database backup controlfile to trace as
'/home/tibero/tbdata_bak/ctrlfile001.sql' reuse NORESETLOGS;

 

b. 데이터 파일 백업

 

SQL> select * from v$tablespace; (해당 모든 테이블 스페이스 모두 백업...TEMP는 필요없음)


SQL> ALTER TABLESPACE SYSTEM BEGIN BACKUP;   -- 데이터베이스에 온라인 백업 시작을 알린다. (형식 : ALTER TABLESPACE [TABLESPACE_NAME] BEGIN BACKUP;)

SQL> ALTER TABLESPACE USER BEGIN BACKUP;

SQL> ALTER TABLESPACE UNDO BEGIN BACKUP;

SQL> ALTER TABLESPACE _APM_TS BEGIN BACKUP; 

 

SQL> !cp /home/tibero/tbdata/system001.tdf /home/tibero/tbdata_bak/system001.tdf  -- 데이터 파일 카피

SQL> !cp /home/tibero/tbdata/USER001.tdf /home/tibero/tbdata_bak/USER001.tdf 

SQL> !cp /home/tibero/tbdata/UNDO001.tdf /home/tibero/tbdata_bak/UNDO001.tdf 

SQL> !cp /home/tibero/tbdata/APM_TS001.tdf /home/tibero/tbdata_bak/APM_TS001.tdf 

 

SQL> ALTER TABLESPACE SYSTEM END BACKUP;     -- 데이터베이스에 온라인 백업 종료를 알린다. (형식 : ALTER TABLESPACE [TABLESPACE_NAME] END BACKUP;)

SQL> ALTER TABLESPACE USER END BACKUP;

SQL> ALTER TABLESPACE UNDO END BACKUP;

SQL> ALTER TABLESPACE _APM_TS END BACKUP;

 

복구

 

만약 데이터 파일을 하나 날렸다고 하자...

그럼 백업 받은 데이터 파일을 원본 데이터 파일 위치로 복사해서 DB를 부팅하게 되면 mount 모드로 접속이 될것이다.

그러면 아래와 같이 recovery를 해주면 normal 모드로 부팅이 될것이다.

 

SQL> tbsql sys/tibero  -- sys계정으로 접속

SQL> alter database recover automatic database;

DB 재기동

$ tbdown

$ tbboot

 

 

2. 오프라인 백업 (서버 운영중이 아닐때 하는 백업 방식)

오프라인 백업은 noarchive 모드에서도 가능하다...

 

SQL> select name from v$datafile;   -- 입력하면 나오는 곳의 모든 데이터파일이 백업대상이다.
SQL> select group#, member from v$logfile; -- 입력하면 나오는 곳의 모든 데이터파일이 백업대상이다.
SQL> select name from v$controlfile;   -- 입력하면 나오는 곳의 모든 데이터파일이 백업대상이다. 

$ tbdown

$ cp /home/tibero/tbdata/*.tdf /home/tibero/tbdata_bak/
$ cp /home/tibero/tbdata/*.tdf /home/tibero/tbdata_bak/
$ cp /home/tibero/tbdata/*.redo /home/tibero/tb data_bak/
$ cp /home/tibero/tbdata/*.ctl /home/tibero/tbdata_bak/
또는
$ cp /home/tibero/tbdata/*.* /home/tibero/tbdata_bak/

 

복구

 

해당 복사한 파일들을 원본 위치에 들이부으고 DB 부팅하면 끗~