# 데이터파일 백업과 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을 백업했으면 지우도록 설정