⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 online_bk.sh

📁 利用DOS批处理文件实现oracle自动备份
💻 SH
字号:
# Setup ORACLE environment

ORACLE_HOME=/disk2/oracle; export ORACLE_HOME
ORACLE_SID=orcl9; export ORACLE_SID
TNS_ADMIN=$ORACLE_HOME/network/admin; export TNS_ADMIN
ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data; export ORA_NLS33
LD_LIBRARY_PATH=/disk2/oracle/lib:/lib:/usr/lib:/usr/openwin/lib:/usr/dt/lib:/usr/ucblib:/usr/local/lib; export LD_LIBRARY_PATH
PATH=/bin:/usr/bin:/usr/sbin:/opt/bin:/usr/ccs/bin:/opt/local/GNU/bin
PATH=$PATH:/opt/local/bin:/opt/NSCPnav/bin:$ORACLE_HOME/bin
PATH=$PATH:/export/home/oracle/bin:/usr/local/samba/bin:/usr/ucb:.
export PATH

#get current date
rq=`date +'%y%m%d'`

#set backup directory
src_dir=/disk6/oradata/xdoctran
backup_dir1=/disk4/ora_data_bak/online_backup
backup_dir=$backup_dir1/xdoc_online_bk$rq
mkdir $backup_dir

#remove old dump file
find $backup_dir1 -name 'xdoc_online_bk*' -atime +10 -exec rm -r {} \;

#backup Tablespaces
sqlplus /nolog <<EOF
conn / as sysdba
alter tablespace SYSTEM begin backup;
alter tablespace UNDOTBS1 begin backup;
alter tablespace CWMLITE begin backup;
alter tablespace DRSYS begin backup;
alter tablespace EXAMPLE begin backup;
alter tablespace INDX begin backup;
alter tablespace ODM begin backup;
alter tablespace TOOLS begin backup;
alter tablespace USERS begin backup;
alter tablespace XDB begin backup;
alter tablespace XDOC_DATA begin backup;
alter tablespace XDOC_INDEX begin backup;

!cp $src_dir/* $backup_dir

alter tablespace SYSTEM end backup;
alter tablespace UNDOTBS1 end backup;
alter tablespace CWMLITE end backup;
alter tablespace DRSYS end backup;
alter tablespace EXAMPLE end backup;
alter tablespace INDX end backup;
alter tablespace ODM end backup;
alter tablespace TOOLS end backup;
alter tablespace USERS end backup;
alter tablespace XDB end backup;
alter tablespace XDOC_DATA end backup;
alter tablespace XDOC_INDEX end backup;

alter system switch logfile;
archive log stop;
exit
EOF

#Backup Archived log
FILES=""
is_old_file=0
ARCHIVEDLOG_DIR=/disk3/ora_arch_log/xdoctran
echo $ARCHIVEDLOG_DIR
CURRENT_FILES=`ls $ARCHIVEDLOG_DIR/xdoc*.arc`

sqlplus /nolog <<EOF
conn / as sysdba
archive log start;
exit
EOF

find $ARCHIVEDLOG_DIR -name 'xdoc*.arc' -atime +100 -exec rm {} \;

if [ -f $ARCHIVEDLOG_DIR/arch.lst ] ; then 
LAST_ARCHIVEDLOG_FILES=`cat $ARCHIVEDLOG_DIR/arch.lst` 
else 
LAST_ARCHIVEDLOG_FILES=""
fi 


for i in $CURRENT_FILES; do
	for j in $LAST_ARCHIVEDLOG_FILES ; do
		if test "$i" = "$j" ; then
			is_old_file=1
			break
		fi
	done
	if test $is_old_file -eq 1 ; then
		is_old_file=0
	else
		FILES=$FILES$IFS$i
	fi
done 

#backup or ftp to remote host
if test "$FILES" != "" ; then
	cp $FILES $ARCHIVEDLOG_DIR/tmp
	archivedlog_ftp $ARCHIVEDLOG_DIR/tmp
	cd $ARCHIVEDLOG_DIR/tmp
	rm *
fi
echo $CURRENT_FILES > $ARCHIVEDLOG_DIR/arch.lst

#Backup Control File
sqlplus /nolog<<EOF
conn / as sysdba
alter database backup controlfile to '$backup_dir/xdoc_controlfile.bk' reuse;
alter database backup controlfile to trace;
exit
EOF

cp /disk2/oracle/dbs/orapw* $backup_dir
cp /disk2/oracle/dbs/initorcl9.ora  $backup_dir
rm $backup_dir/*.ctl
rm $backup_dir/redo*.log
rm $backup_dir/temp*

#ftp the  backup files to remote site
remote_copy_dir online_backup xdoc_online_bk$rq $backup_dir

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -