본문 바로가기

Tibero

Tibero - 백업설정(Online Backup)

* 환경설명 : 

* Tibero Version : Tibero Standard Edition 5SP1, Tibero Standard Edition 6

* OS : RHEL 7.4

* Tibero redologfile 현황 : 

SQL> select b.group#, b.member, a.bytes/1024/1024 "size mb"

from v$log a, v$logfile b

where a.group# = b.group#;

GROUP#     MEMBER                             size mb

0              /tbdata/dblog01/redo001.redo   500

0              /tibero/dblog02/redo002.redo    500

1              /tbdata/dblog01/redo011.redo   500

1              /tibero/dblog02/redo012.redo    500

2              /tbdata/dblog01/redo021.redo   500

2              /tibero/dblog02/redo022.redo    500

 

* Tibero controlfile 현황 : 

SQL> select * from v$controlfile;

STATUS     NAME                         BLKSIZE      BLOCKS

0             /tbdata/SCSD/ctl_file01    16,384          235

 

* Tibero tempfile 현황 :  

SQL> select * from v$tempfile;

FILE#  CREATE_TSN  CREATE_DATE  TS#    RFILE# ENABLED  BLOCKS CREATE_SIZE       NAME

0              0              <NULL>      2        0        YES       655,368     655,360       /tbdata/SCSD/SYSTEM/temp001.dtf

 

* Tibero datafile 현황 :  

SQL> select tablespace_name, file_name, bytes/1024/1024 "size mb", autoextensible, maxbytes/1024/1024 "max size mb" from dba_data_files;

TABLESPACE_NAME   FILE_NAME                           size mb      AUTOEXTENSIBLE      max size mb

SYSTEM                 /tbdata/SYSTEM/system001.dtf    1,024                  NO                  0

UNDO                   /tbdata/SYSTEM/undo001.dtf      12,180                 YES              32,768

UNDO                   /tbdata/SYSTEM/undo002.dtf      12,180                 YES              32,768

USR                      /tbdata/SYSTEM/usr001.dtf         1,024                   NO                 0

_APM_TS                /tbdata/apm_ts.dtf                    500                     YES             32,768

TS_AAA                 /tbdata/DATA/TS_AAA01.dtf        2,048                    YES             32,768

TS_AAA                 /tbdata/DATA/TS_AAA03.dtf        1,024                    YES             32,768

TS_AAA                /tbdata/DATA/TS_AAA04.dtf         1,024                    YES             32,768

TS_BBB                 /tbdata/DATA/TS_BBB01.dtf         16529.75                YES             32,768

TS_BBB                 /tbdata/DATA/TS_BBB02.dtf         10,240                   YES             32,768

TS_BBB                 /tbdata/DATA/TS_BBB03.dtf         1,024                     YES             32,768

 

 

1. Online Backup 설정을 위한 아카이브 모드 변경

① Tibero 종료
$ tbdown immediate

② $TB_SID.tip 파일에 LOG_ARCHIVE_DEST 설정
$ vi $TB_HOME/config/$TB_SID.tip
LOG_ARCHIVE_DEST=/archive

 

③ MOUNT 모드까지 기동 
$ tbboot mount
$ tbsql sys/tibero

 

archivelog mode로 변경
SQL> alter database archivelog;

Tibero 종료
$ tbdown immediate 

 Tibero 기동
$ tbboot

 

2. Online Backup시 사용될 백업데스트와 로그데스트 경로 생성

mkdir -p /dbbackup/LOG/

mkdir -p /dbbackup/ONLINE_FULL/

 

3. Online Backup Shell 생성 (쉘파일 경로 예시 : /dbbackup/script/1.Weekly_Online_Backup.sh)

TB_SID=TESTDB

LOG=/dbbackup/LOG/Weekly_ONLINE_backup_`/bin/date +%Y%m%d`.log
BACKUP_DIR=/dbbackup/ONLINE_FULL/$TB_SID_`/bin/date +%Y%m%d`

echo "============== 0. weekly DB backup delete              (`/bin/date`) ==============" \ >> $LOG
rm -rf /dbbackup/ONLINE_FULL/*  >> $LOG
chmod 777 $LOG

/bin/su  - tibero << EOF
/bin/mkdir -p $BACKUP_DIR
tbsql sys/tibero

!echo "#############################################################################" \ >> $LOG
!echo "#                 $TB_SID DB Online Backup START  `/bin/date`            #" \ >> $LOG
!echo "#############################################################################" \ >> $LOG


!echo "============== 1. parameter, control file backup           ==============" \ >> $LOG
!cp -f /tibero/tibero6/config/$TB_SID.tip $BACKUP_DIR/
alter database backup controlfile to '$BACKUP_DIR/control_back.ctl' reuse;
alter database backup controlfile to trace as '$BACKUP_DIR/cre_control.sql' reuse;
!date >> $LOG
!echo "============== 2. $TB_SID start BEGIN BACKUP                  ==============" \ >> $LOG
alter database begin backup;
!date >> $LOG
!echo "============== 3. $TB_SID start BEGINE BACKUP O.K.....        ==============" \ >> $LOG
!date >> $LOG
!echo "============== 4. $TB_SID Data File copy to Disk              ==============" \ >> $LOG
!cp -r /tbdata/$TB_SID $BACKUP_DIR
!cp -rf /tibero/$TB_SID/* $BACKUP_DIR/$TB_SID/
!date >> $LOG
!echo "============== 5. $TB_SID Data File copy to Disk O.K ......   ==============" \ >> $LOG
!date >> $LOG
!echo "============== 6. $TB_SID start END BACKUP                    ==============" \ >> $LOG
alter database end backup;
!date >> $LOG
!echo "============== 7. $TB_SID start END BACKUP O.K ......         ==============" \ >> $LOG
!date >> $LOG
!echo "============== 8. $TB_SID start LOG FILE SWITCH               ==============" \ >> $LOG
alter system switch logfile;
!date >> $LOG
!echo "============== 9. $TB_SID start LOG FILE SWITCH O.K ......    ==============" \ >> $LOG
!date >> $LOG
exit
EOF
exit

4. Online Backup Shell을 crontab에 등록

# weekly online backup ( Monday 00:00 Scheduling)

0 0 * * 1 sh /dbbackup/script/1.Weekly_Online_Backup.sh