经过大家帮助终于写好了这个自动备份数据文件脚本脚本特点是自动备份个数据库中数据文件不需要知道数据库有些什么表空间或者数据文件脚本编写还很不美观先用着慢慢美化吧另外archive备份部分也暂时没有备仓促编程有什么问题请指正!
注意本脚本是应用于archive log模式下另外数据库用户名密码自己在脚本里改下脚本是带参数参数是备份目标目录注意要有写权限#!/bin/sh
mypath=$1
[ -z $mypath ] ; then
echo \'Please Use This Command Like ./backup /u01/backup\'
[ -d $mypath ] ; then
ORACLE_SID=dzzd; export ORACLE_SID
ORAENV_ASK=NO; export ORAENV_ASK
rm -Rf aa.txt
sqlplus -s \"system/oracle9i\"<<EOF
head off
feedback off
spool aa.txt
select tablespace_name from dba_tablespaces;
spool off
EXIT
EOF
for spacename in `cat aa.txt`
do
echo $spacename |grep \"^TEMP\"
[ \"$?\" -eq \"0\" ]
then
echo TEMP no need backup
echo begin backup $spacename
sqlplus -s system/oracle9i<<SETSTA
alter tablespace $spacename begin backup;
EXIT
SETSTA
rm -Rf bb.txt
sqlplus -s system/oracle9i<<DATAFILE1
head off
feedback off
spool bb.txt
SELECT \'cp \'||file_name||\' $mypath\'||SUBSTR(FILE_NAME,INSTR(FILE_NAME,\'/\',-1,1))
FROM dba_data_files where tablespace_name=trim(\'$spacename\');
spool off
EXIT
DATAFILE1
sh bb.txt
sqlplus -s system/oracle9i<<SETSTA
alter tablespace $spacename end backup;
EXIT
SETSTA
echo end backup $spacename
fi
done
echo \"Please Input a Right Direction\"
fi
fi
最新评论