oracle数据库备份脚本(oracle rman备份脚本怎么写)
本文目录
- oracle rman备份脚本怎么写
- Oracle 10g数据库写脚本如何备份和恢复数据
- oracle(11g)求一个自动备份脚本
- 我写了个Oracle数据库自动备份脚本,执行后只有log文件,没有dmp文件,在线等bat文件内容如下:
- 如何编写一个windows下的oracle自动备份脚本
oracle rman备份脚本怎么写
在ORACLE数据库中,RMAN备份的脚本非常多,下面介绍一例shell脚本如何通过RMAN备份,以及FTP上传RMAN备份文件以及归档日志文件的脚本。 fullback.sh 里面调用RMAN命令做数据库备份,它使用的cmdfile为/home/oracle/backup/bin/fullback.rcv,同时在/home/oracle/backup/logs目录下生成日志文件。 1: $ more fullback.sh 2: 3: #!/bin/bash 4: 5: export ORACLE_BASE=/u01/app/oracle 6: 7: export ORACLE_SID=gps 8: 9: ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1; export ORACLE_HOME 10: 11: TMP=/tmp; export TMP 12: 13: TMPDIR=$TMP; export TMPDIR 14: 15: PATH=/usr/sbin:$PATH; export PATH 16: 17: PATH=$ORACLE_HOME/bin:$PATH; export PATH 18: 19: LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH 20: 21: CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; 22: 23: export CLASSPATH 24: 25: TODAY=`date +%Y_%m_%d` 26: 27: rman nocatalog target / cmdfile /home/oracle/backup/bin/fullback.rcv log /home/oracle/backup/logs/fullbackup_$TODAY.log 28: 29: /home/oracle/backup/bin/ftpbackup.sh 30: fullback.rcv文件非常简单, 如下所示: 1: $ more /home/oracle/backup/bin/fullback.rcv 2: 3: run{ 4: 5: allocate channel c4 type disk; 6: 7: backup as compressed backupset 8: 9: skip inaccessible 10: 11: tag fullbackupwitharchivelog 12: 13: (database); 14: 15: backup current controlfile; 16: 17: backup spfile; 18: 19: sql "alter system archive log current"; 20: 21: delete noprompt obsolete; 22: 23: release channel c4; 24: 25: } 26: RMAN生成的备份文件,需要通过FTP上传到FTP服务器,一则数据库服务器没有这么多空间存储多天的备份,二则是出于容灾、数据安全需要。 下面脚本中FTP服务器,用户名密码均使用xxx替代,在实际环境中,使用具体的信息替代即可。 1: $ more ftpbackup.sh 2: 3: #!/bin/sh、 4: 5: rm -f /home/oracle/.netrc 6: 7: date_yesterday=`date -d’yesterday’ +%Y_%m_%d` 8: 9: date_today=`date +%Y_%m_%d` 10: 11: echo "default login xxxx password xxxxxx" 》》 /home/oracle/.netrc 12: 13: echo "macdef init" 》》 /home/oracle/.netrc 14: 15: echo "binary" 》》 /home/oracle/.netrc 16: 17: echo "cd archivelog" 》》 /home/oracle/.netrc 18: 19: echo "mkdir $date_yesterday" 》》 /home/oracle/.netrc 20: 21: echo "cd $date_yesterday" 》》 /home/oracle/.netrc 22: 23: echo "lcd /u04/flash_recovery_area/gps/archivelog/$date_yesterday" 》》 /home/oracle/.netrc 24: 25: echo "mput *" 》》 /home/oracle/.netrc 26: 27: echo "cd .." 》》 /home/oracle/.netrc 28: 29: echo "mkdir $date_today" 》》/home/oracle/.netrc 30: 31: echo "cd $date_today" 》》/home/oracle/.netrc 32: 33: echo "lcd /u04/flash_recovery_area/gps/archivelog/$date_today" 》》/home/oracle/.netrc 34: 35: echo "mput * "》》/home/oracle/.netrc 36: 37: echo "cd .." 》》/home/oracle/.netrc 38: 39: echo "cd ../backupset" 》》 /home/oracle/.netrc 40: 41: echo "mkdir $date_today" 》》 /home/oracle/.netrc 42: 43: echo "cd $date_today" 》》 /home/oracle/.netrc 44: 45: echo "lcd /u04/flash_recovery_area/gps/backupset/$date_today" 》》 /home/oracle/.netrc 46: 47: echo "mput *" 》》 /home/oracle/.netrc 48: 49: echo "cd .." 》》 /home/oracle/.netrc 50: 51: echo "cd ../autobackup" 》》 /home/oracle/.netrc 52: 53: echo "mkdir $date_today" 》》 /home/oracle/.netrc 54: 55: echo "cd $date_today" 》》 /home/oracle/.netrc 56: 57: echo "lcd /u04/flash_recovery_area/gps/autobackup/$date_today" 》》 /home/oracle/.netrc 58: 59: echo "mput *" 》》 /home/oracle/.netrc 60: 61: echo "quit" 》》 /home/oracle/.netrc 62: 63: echo "" 》》 /home/oracle/.netrc 64: 65: chmod 600 /home/oracle/.netrc 66: 67: ftp -i -v xxx.xxx.xxx.xxx 8021 》》/home/oracle/backup/logs/ftp$date_today.log 2》&1 68: 另外,关于归档日志也需要每隔2小时上传一次到FTP服务器,2小时上传一次归档日志的shell脚本如下所示: 1: $ more ftp2hours.sh 2: 3: #!/bin/sh 4: 5: rm -f /home/oracle/.netrc 6: 7: date_yesterday=`date -d’yesterday’ +%Y_%m_%d` 8: 9: date_today=`date +%Y_%m_%d` 10: 11: echo "default login xxxx password xxxx" 》》 /home/oracle/.netrc 12: 13: echo "macdef init" 》》 /home/oracle/.netrc 14: 15: echo "binary" 》》 /home/oracle/.netrc 16: 17: echo "cd archivelog" 》》 /home/oracle/.netrc 18: 19: echo "mkdir $date_today" 》》/home/oracle/.netrc 20: 21: echo "cd $date_today" 》》/home/oracle/.netrc 22: 23: echo "lcd /u04/flash_recovery_area/gps/archivelog/$date_today" 》》/home/oracle/.netrc 24: 25: echo "mput * "》》/home/oracle/.netrc 26: 27: echo "quit" 》》 /home/oracle/.netrc 28: 29: echo "" 》》 /home/oracle/.netrc 30: 31: chmod 600 /home/oracle/.netrc 32: 33: ftp -i -v xxx.xxx.xxx.xxx 8021 》》/home/oracle/backup/logs/ftp2hours.$date_today.log 2》&1 34: 最后需要将RMAN备份生成的日志文件,以及FTP上传备份文件以及归档日志的记录通过邮件形式发送给DBA或系统管理员, 1: $ more chkbackandmail.sh 2: #!/bin/bash 3: rm -f /home/oracle/backup/bin/sendmail.pl 4: date_today=`date +%Y_%m_%d` 5: subject="Oracle Backup Alert Service on $date_today" 6: content="Dear colleagues, 7: 8: Attached please find the logs of xxx(xxx.xxx.xxx.xxx) oracle database backup and transfer to FTP Server(xxx.xxx.xxx.xxx), please 9: review the file and check whether the backup succeeded or not,and double check all backups have been dumped to tape, many tha 10: nks 11: 12: 13: 14: 15: Best regards 16: Oracle Alert Services 17: 18: " 19: file="/home/oracle/backup/logs/fullbackup_$date_today.log,/home/oracle/backup/logs/ftp$date_today.log" 20: echo "#!/usr/bin/perl" 》》 /home/oracle/backup/bin/sendmail.pl 21: echo "use Mail::Sender;" 》》 /home/oracle/backup/bin/sendmail.pl 22: echo "\$sender = new Mail::Sender {smtp =》 ’xxx.xxx.xxx.xxx’, from =》 ’xxxx@xxx.com’}; "》》 /home/oracle/backup/bin/sendmai 23: l.pl 24: echo "\$sender-》MailFile({to =》 ’xxx@esquel.com’,"》》 /home/oracle/backup/bin/sendmail.pl 25: echo "cc=》’xxx@xxx.com,xxx@xxx.com,xxx@xxx.com’," 》》 /home/oracle/backup/b 26: in/sendmail.pl 27: echo "subject =》 ’$subject’,"》》 /home/oracle/backup/bin/sendmail.pl 28: echo "msg =》 ’$content’,"》》 /home/oracle/backup/bin/sendmail.pl 29: echo "file =》 ’$file’});"》》 /home/oracle/backup/bin/sendmail.pl 30: perl /home/oracle/backup/bin/sendmail.pl 最后在Crontab 作业里面配置调用这些shell脚本。例如如下所示,在1:01分执行fullback.sh ,每隔两个小时(例如0:50、2:50...)执行一次ftp2hours.sh, 在每天早上8:40执行chkbackandmail.sh 发送fullback.sh 以及ftp2hour.sh的执行日志记录。
Oracle 10g数据库写脚本如何备份和恢复数据
在windows开始--》运行中输入cmd回车进入1、执行以下命令将数据库导出(例如用户名为test,密码为test,数据库实例为orcl,将其备份在F盘中命名为backup.dmp)exptest/test@orclfile=F:\backup.dmp2、执行以下命令将数据库导入新的实例中(用户名为test1,密码为test1,实例名为test1)imptest1/test1@test1file=F:\backup.dmpfromuser=testtouser=test1
oracle(11g)求一个自动备份脚本
1、某一个时段自动备份用crontab计划任务实现即可,例如crontab -e添加0 4 * * * /opt/bak.sh2、删除三天前的备份文件用find . -type f -mtime +3 -exec rm -rf {} \;实现3、异地备份你就scp到其他主机上一份4、实例bak.sh:#!/bin/shtoday=`date +%Y%m%d%H`bakfile=/opt/backup/bak_${today}.dmplogfile=/opt/backup/logs/bak_${today}.logfind /opt/backup -type f -mtime +3 -exec rm -rf {} \;#执行某些sql语句#echo -e "select count(*) from table purge;"| sqlplus -s ’user01/123456’exp user01/123456 file=$bakfile TABLES=T1,T2 log=$logfile#你需要提前实现ssh无密码访问或者安装sshpass之类的软件scp $bakfile root@172.16.1.7:/opt/backup/
我写了个Oracle数据库自动备份脚本,执行后只有log文件,没有dmp文件,在线等bat文件内容如下:
大致看了下,没发现你的批处理有明显问题。
那就简单说下排查思路。
1、既然问题出在备份上,就先不要理会删除备份的问题。
2、相信你写批处理以前应该手工输入exp命令成功备份过。
3、把 exp那句输出到文本或批处理文件如下,用记事本打开backdb.txt看看与你成功备份的手输命令有和不同,然后做相应修改即可。
exp改为:
echo exp %USER%/%PASSWORD%@%DATABASE% full=y file=%DATADIR%\%BACKUPDATE%.DMP log=%LOGDIR%\%BACKUPDATE%.log》backdb.txt
如何编写一个windows下的oracle自动备份脚本
@echo off echo ================================================ echo Windows环境下Oracle数据库的自动备份脚本 echo 1. 使用当前日期命名备份文件。 echo 2. 自动删除7天前的备份。 echo ================================================ ::以“YYYYMMDD”格式取出当前时间。 set BACKUPDATE=%date:~0,4%%date:~5,2%%date:~8,2% ::设置用户名、密码和要备份的数据库。 set USER=xxx set PASSWORD=123456 set DATABASE=dbtest ::创建备份目录。 if not exist "D:\backup\data" mkdir D:\backup\data if not exist "D:\backup\log" mkdir D:\backup\log set DATADIR=D:\backup\data set LOGDIR=D:\backup\log exp %USER%/%PASSWORD%@%DATABASE% file=%DATADIR%\data_%BACKUPDATE%.dmp log=%LOGDIR%\log_%BACKUPDATE%.log ::删除7天前的备份。 forfiles /p "%DATADIR%" /s /m *.* /d -7 /c "cmd /c del @path" forfiles /p "%LOGDIR%" /s /m *.* /d -7 /c "cmd /c del @path" exit
更多文章:
消火栓箱安装图集(薄型单栓带消防软管卷盘消火栓箱和15s202-15的安装图)
2024年5月14日 19:56
怎样用易语言编写12306购票软件?新版 12306怎么自动抢票
2024年5月19日 13:33
u盘文件夹exe病毒专杀工具(u盘病毒专杀工具usbcleaner6.0怎么去掉U盘写保护)
2024年7月21日 09:40
杀毒软件nod32(ESET NOD32防病毒软件好还是360杀毒软件好,高手请解)
2024年8月29日 02:10
星战帝国的玩家FAQ?为什么星战里帝国会造4条腿的AT-AT和两条腿的步行机不但移动速度慢,而且被打断一条腿不就直接
2024年6月30日 04:57
恒泰证券交易软件下载(恒泰证券开户后怎么登陆交易 如何登陆恒泰证券)
2024年8月6日 23:26
上海曼朗市场营销策划有限公司怎么样?曼朗优化能力怎么样,有合作过的朋友来说说吗
2024年6月19日 13:48