linux 下备份oracle 数据库,是通过脚本实现的,具体如下:
#!/bin/sh
a=$(date +%Y%m%d)
echo $a
/u01/app/oracle/product/11.1.0/db_1/bin/exp username/password file=/oraclebak/testdb_$a.dmp现问题如下:
1、上述脚本只有备份一个数据库,我还有几个也需要备份,如何将其他数据库的备份脚本 放在上述一个脚本中
2、上述备份后,我如何通过脚本脚本自动删除以前备份的.dmp文件,文件格式是:a_20091020.dmp ,比如超过5天的数据就自动
#!/bin/sh
a=$(date +%Y%m%d)
echo $a
/u01/app/oracle/product/11.1.0/db_1/bin/exp username/password file=/oraclebak/testdb_$a.dmp现问题如下:
1、上述脚本只有备份一个数据库,我还有几个也需要备份,如何将其他数据库的备份脚本 放在上述一个脚本中
2、上述备份后,我如何通过脚本脚本自动删除以前备份的.dmp文件,文件格式是:a_20091020.dmp ,比如超过5天的数据就自动
2、你备份出来的应该只是用户所在的数据库。其他数据可以以同样方式备份。
3、我备份一般放在windows 200X 环境,所以是dos的命令。仅供参考。如下
echo off
echo **********************************************
echo ************【XXX备份】**************
echo **********************************************
echo *****以下30天以前的文件将被删除!…………
forfiles /p "F:\XXX" /d -30 /c "cmd /c echo @path"
forfiles /p "F:\XXX" /s /m *.* /d -30 /c "cmd /c del /f /q @path"
echo *****30天以前的旧文件已被删除!…………
echo *****开始备份文件…………
exp "username/password"@dbname file=F:\XXX\%date:~11%(%date:~0,10%).dmp log=F:\XXX\%date:~11%(%date:~0,10%).log
C:\"Program Files\WinRAR\winrar.exe" a F:\XXX\%date:~11%(%date:~0,10%).rar F:\XXX\%date:~11%(%date:~0,10%).dmp
echo **************年/月/日**************
date /t
echo ************** 时 间 ***************
time /t
echo **********备份结束!**********
exit希望对你有所帮助。
google了个linux的东西,可能对你有用,连接如下
http://yaksayoo.blog.51cto.com/510938/155237
#获得要备份的用户
sqlplus system/manager@数据库<<%% > /dev/null
SPOOL user.list;
SELECT USERNAME FROM dba_users WHERE 条件 ;
SPOOL OFF ;#读取user.list
for i in `cat user.list`
do
exp......
done
这样子就可以
#抓取日期判断星期几?
LANG=en_US
wans=`date|awk '{print $1}'`
case $wans in
Mon) cd ../Mon;; --指定相关目录
Tue) cd ../Tue;;
Wed) cd ../Wed;;
Thu) cd ../Thu;;
Fri) cd ../Fri;;
Sat) cd ../Sat;;
Sun) cd ../Sun;;
esac
rm -rf --删除相关目录下的文件!