SQL 강좌
2019.02.15 / 19:15

Tibero DB백업 및 복구 방법

hanulbit
추천 수 43

티베로 백업 및 복원에 관하여 


찾다가 의외다 싶었던 부분이 oracle의 경우 dump를 만들어 백업한 다음 복구 시점에서 풀면 복구가 된다. 그리고 이는 계정별로, DB별로, 컨테이너별로 가능했는데 티베로도 비슷할 줄 알고 찾다가 다른 내용이 많았다. 그래서 기록용으로 블로그에 남긴다.


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 

                ** 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;


tibero DB 재기동

        $ tbdown

        $ tbboot


2. 콜드 백업 (서버를 내린 상태에서 하는 백업)

(콜드 백업은 noarchive 모드에서도 가능)


SQL> select name from v$datafile;   --  나오는 곳의 모든 데이터파일이 백업대상이 됨

SQL> select group#, member from v$logfile; -- 나오는 곳의 모든 데이터파일이 백업대상이 됨

SQL> select name from v$controlfile;   --  나오는 곳의 모든 데이터파일이 백업대상이 됨 


tiberoDB 셧다운

        $ 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 부팅


참고한 블로그 : http://blog.naver.com/PostView.nhn?blogId=songsunsang&logNo=110162766256

https://technet.tmaxsoft.com/upload/download/online/tibero/pver-20140808-000002/tibero_admin/ch_BackupRecovery.html

http://dantes.kr/450

http://hanuli7.tistory.com/entry/%ED%8B%B0%EB%A7%A5%EC%8A%A4-%ED%8B%B0%EB%B2%A0%EB%A1%9C-DBMS-%EB%8D%B0%EC%9D%B4%ED%84%B0-Export-Import-%EB%B0%A9%EB%B2%95



출처: https://gregsophist.tistory.com/21 [Gregory space]