# 데이터파일 백업과 archvie백업 쉘은 아래와 같습니다. 


1. begin backup할 스크립트를 수행합니다. 

dbbegin.sh 


TBS_INFO=/tmp/tbs_info~.$$ 


sqlplus /nolog << EOF > $TBS_INFO 2>&1 

connect / as sysdba; 

select ''tablespace ''||tablespace_name from dba_tablespaces; 

disconnect; 

exit 

EOF 


cat $TBS_INFO | awk ''$1 == "tablespace" { print $2 }'' | while read LINE 

do 

export LINE 

echo "Issuing alter tablespace $LINE begin backup;" 

/usr/openv/netbackup/oracle/table_begin.sh 

done 


\rm $TBS_INFO 


2. 위에서의 table_begin.sh 는 아래와 같습니다. 


table_begin.sh 


sqlplus /nolog << EOF > /dev/null 2>&1 

connect / as sysdba; 

alter tablespace $LINE begin backup; 

disconnect; 

exit 

EOF 


3. dbbegin.sh 을 하게 되면 테이블스페이스가 backup mode가 됩니다. 



4. 데이터파일 리스트를 추출합니다. 

datafile_list 


#!/bin/ksh 


DATAFILE_INFO=/tmp/datafile_info~.$$ 

datafile_list=/tmp/PROD_data_list 


sqlplus /nolog << EOF > $DATAFILE_INFO 2>&1 

connect / as sysdba; 

select ''datafile_name ''||file_name from dba_data_files; 

select ''logfile_name ''||member from v\$logfile; 

select ''controlfile_name ''||name from v\$controlfile; 

disconnect 

EOF 


cat $DATAFILE_INFO | awk ''$1 == "datafile_name" {print $2}'' 

> /tmp/PROD_dbfile_list 

cat $DATAFILE_INFO | awk ''$1 == "logfile_name" {print $2}'' 

> /tmp/PROD_logfile_list 

cat $DATAFILE_INFO | awk ''$1 == "controlfile_name" {print $2}'' 

> /tmp/PROD_controlfile_list 


cat /tmp/PROD_dbfile_list > $datafile_list 

cat /tmp/PROD_logfile_list >> $datafile_list 

cat /tmp/PROD_controlfile_list >> $datafile_list 



\rm $DATAFILE_INFO 


5. 데이터파일 리스트를 netbackup에서 tape백업을 하도록 합니다. 

veritas netbackup에서 리스트만 주면 백업해줌.. 


6. end backup 을 만드는 스크립트를 수행 

dbend.sh 

#!/bin/ksh 


TBS_INFO=/tmp/tbs_info~.$$ 


sqlplus /nolog << EOF > $TBS_INFO 2>&1 

connect / as sysdba; 

select ''tablespace ''||tablespace_name from dba_tablespaces; 

disconnect; 

exit 

EOF 


cat $TBS_INFO |awk ''$1 == "tablespace" { print $2 }''|while read LINE 

do 

export LINE 

echo "Issuing alter tablespace $LINE end backup;" 

/usr/openv/netbackup/oracle/table_end.sh 

done 

\rm $TBS_INFO 


7. 위에서 table_end.sh 는 아래와 같습니다. 


table_end.sh 

sqlplus /nolog << EOF > /dev/null 2>&1 

connect / as sysdba; 

alter tablespace $LINE end backup; 

disconnect; 

exit 

EOF 


6. archive log가 없을 수 있으므로 수동으로 log switch 해줍니다. 


arch_list_1 

#!/bin/ksh 


sqlplus /nolog << EOF > $LOG 

connect / as sysdba; 

alter system switch logfile; 

disconnect; 

exit; 

EOF 



7. archvie file의 리스트를 뽑아냅니다. 


arch_list 


#!/bin/ksh 


TBS_INFO=/tmp/tbs_info~.$$ 

ARCHIVE_DIR=/tmp/PROD_archive_dir.txt 


sqlplus /nolog << EOF > $LOG 2>&1 

connect / as sysdba; 

alter system switch logfile; 

disconnect; 

exit; 

EOF 


sqlplus /nolog << EOF > $TBS_INFO 2>&1 

connect / as sysdba; 

archive log list; 

disconnect; 

exit; 

EOF 


cat $TBS_INFO | awk ''$1 == "Archive" {print $3}'' > $ARCHIVE_DIR 


ARCH_DIR=

cat $ARCHIVE_DIR


ARCH_LIST_PROD=

ls -ltr $ARCH_DIR/*.arc |wc -l


echo "ARCH_LIST_PROD : $ARCH_LIST_PROD" >> $LOG 


ARCH_LIST_PROD_1=

expr$ARCH_LIST_PROD - 1


echo "ARCH_LIST_PROD_1 : $ARCH_LIST_PROD_1" >> $LOG 


/usr/bin/ls -ltr $ARCH_DIR/*.arc |awk ''{print $9}'' |head - 

$ARCH_LIST_PROD_1 > /tmp/PROD_arch_list 


echo "Archive Log List Print.....O.k....

/usr/bin/date +%c

" >> $LOG 

#\rm $TBS_INFO $ARCHIVE_DIR 



8. 위에서 /tmp/PROD_arch_list에 있는 archive리스트를 veritas netbackup에서 넣어주면 tape백업이 됩니다.그리고 특이한 것은 archvie file은 archive file을 백업했으면 지우도록 설정

사업자 정보 표시
(주)블루원 | 김홍태 | 서울특별시 용산구 원효로 4가 135 금홍 2빌딩 | 사업자 등록번호 : 106-86-76684 | TEL : 02-3272-7200 | Mail : support_ora@blueone.co.kr | 통신판매신고번호 : 호 | 사이버몰의 이용약관 바로가기

+ Recent posts