Chinaunix首页 | 论坛 | 博客
  • 博客访问: 368961
  • 博文数量: 245
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: -10
  • 用 户 组: 普通用户
  • 注册时间: 2016-08-24 23:21
文章分类

全部博文(245)

文章存档

2017年(2)

2014年(6)

2013年(1)

2011年(15)

2010年(68)

2009年(153)

分类: Oracle

2009-08-11 13:25:47

一.环境:
1系统属于中小型业务系统,客户服务器基本都属于低端配置,磁盘容量小,安全性较差;
2.系统可容许短时间停止整顿,但数据绝不可丢失;
3.数据库采用ORACLE10g,为保证性能运行于非归档模式;
4.系统由WEB服务器(192.168.1.101),数据库服务器(192.168.1.102)组成;
二.备份方案:
1.ORACLE非归档模式运行,数据量不是特别大,所以采用EXP,IMP工具进行备份.
2.备份方案目的:
WEB服务器上保留N天备份数据,ORACLE数据库同时保留最近备份数据,实际保留时间视磁盘情况而定.
3.备份脚本:
# 备份test用户数据(文件目录可自定义,执行脚本前先建好目录和日志目录并赋予相应权限)
exp test/test file=/home/oracle/local/test`date +%y%m%d`.dmp  log=/home/oracle/local/log/backup.log
#检查日志文件,查看备份是否成功
result=`cat /home/oracle/local/log/backup.log|grep 'Export terminated successfully with warnings.'`
#如果备份成功,则将备份文件通过sftp上传至WEB服务器中保存
if [ "$result" ]
then
cd /home/oracle/local/
HOST=192.168.1.101
USER=test
PASS=test123
 
echo "Starting to sftp..."
lftp -u ${USER},${PASS} sftp://${HOST} <cd  /home/testbackup/
put test`date +%y%m%d`.dmp
bye
EOF
echo "done"
 
#上传完成后删除本地1天前的备份文件以及其日志,如果硬盘足够大可以保留多日备份文件
rm -rf `find /home/oracle/local -mtime +1|grep test`
rm -rf `find /home/oracle/local/log -mtime +1|grep test`
#将本次备份日志文件标注保存
mv /home/oracle/local/log/backup.log /home/oracle/local/log/test`date +%y%m%d`.log
#如果备份失败,生成日志文件,并发送邮件通知
else
echo 'the exp failed'>/home/oracle/local/log/errorExp`date +%y%m%d`.log
service sendmail restart
mail -v -s "The `hostname` data exp failed!" sleep 60
service sendmail stop
fi

文章来自互联网,感谢作者!
阅读(325) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~