简单的exp全备份脚本及部署过程(step by step)
2010-04-09 16:23
309 查看
简单的exp全备份脚本及部署过程(step by step)
源于以前同事的备份需求,现在我很少用exp,基本上是rman+standby了需求:每天数据库exp全备份+自动删除7天前的备份,系统只保留当前7天的备份。从我以前的经验来说,很多公司都有这样的备份需求,数据量小,完整性要求不高,用exp备份是合理,比较简单,不需要专业的dba来部署
目标:我想实现这样的功能,只要会简单的linux命令就能实现oracle exp的自动备份
环境:linux as3+oracle9i
具体的步骤:
1.邮件设置
[root@sxapp1 mail]# cd /etc/mail
[root@sxapp1 mail]# mv submit.cf submit.cfbak
[root@sxapp1 spool]# chmod a+wrx mqueue/
[root@sxapp1 mail]# echo "sdsdssd"|mail -s "sda" westlife_xu@eyou.com
2.建立备份目录
[root@sxapp1 mail]# su - oracle
[oracle@sxapp1 oracle]$ mkdir -p /home/oracle/phy_backup/data --备份文件存放目录
[oracle@sxapp1 oracle]$ mkdir -p /home/oracle/phy_backup/log --备份的log路径
[oracle@sxapp1 oracle]$ cd /home/oracle/phy_backup
3.备份脚本编写,测试(脚本要根据需求微调,我已经测试通过了)
[oracle@sxapp1 phy_backup]$ vi exp.sh
#!/bin/sh
. /home/oracle/.bash_profile
#define variable......
backup_date=`date +%Y%m%d`
bak_home=/home --df -k里面必须能看见
backup_dest=/home/oracle/phy_backup/data --根据需要填写
backup_log=/home/oracle/phy_backup/log --根据需要填写
RECIPT='westlife_xu@eyou.com' --报警邮件设置
--检查磁盘空间
# Check local disk space..................................
USED=` df -k|grep $bak_home|awk '{print $5}'|awk -F% '{print $1}'`
if [ $USED -gt 85 ]; then
echo "Disk space is full/243/254please check it"|mail -s "exp full backup failed" $RECIPT
exit 1
fi
--开始备份
#starting exp backup.....
exp system/abc123 full=y buffer=65536 file=$backup_dest/data_$backup_date.dmp log=$backup_log/data_$backup_date.log
--删除过期的备份文件
# delete expired backup ...
list=` find $backup_dest -mtime +7`
echo $list
rm -f $list
if [ $? -ne 0 ]; then
cat $backup_log/data_$backup_date.log|mail -s "exp full backup failed,please check it" $RECIPT
exit 1
fi
cat $backup_log/data_$backup_date.log|mail -s "$backup_date exp log " $RECIPT
~
"exp.sh" 37L, 1237C 已写入
[oracle@sxapp1 phy_backup]$ chmod a+x exp.sh --授予可执行权限
[oracle@sxapp1 phy_backup]$ ./exp.sh --执行备份脚本
Export: Release 9.2.0.7.0 - Production on Thu Dec 14 14:37:53 2006
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
Connected to: Oracle9i Enterprise Edition Release 9.2.0.7.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.7.0 - Production
Export done in ZHS16CGB231280 character set and AL16UTF16 NCHAR character set
About to export the entire database ...
. exporting tablespace definitions
. exporting profiles
. exporting user definitions
. exporting roles
. exporting resource costs
. exporting rollback segment definitions
. exporting database links
. exporting sequence numbers
. exporting directory aliases
. exporting context namespaces
。。。。。。。。。。。。
看脚本是否顺利的运行,备份之后应该会收到备份的log,检查log是否备份正常。如果正常的话就可以做个crontab了,自动执行计划
[oracle@sxapp1 phy_backup]$ crontab -e
#min hour day month dayofweek command
0 2 * * * /home/oracle/phy_backup/exp.sh
表示每天2点开始执行exp备份。
提示:
备份脚本至少要具备:1.磁盘空间的检查 2.备份log的完整记录 3.备份失败时的报警机制。 本不可能去整理的东西居然整理出来了,希望对别人能有点帮助。
http://xujt82.spaces.live.com/blog/cns!1EB2C64171792704!225.entry
相关文章推荐
- exp简单备份脚本
- Windows下简单的Mysql备份BAT脚本分享
- 一个备份MySQL数据库的简单Shell脚本
- Perl 脚本简单应用实例-MySQL备份
- 简单的Shell脚本备份单个或多个Mysql数据库
- python脚本--简单实现堡垒机登录的过程
- 利用wojilu框架仿一个网站的全过程(Step by Step利用wojilu框架开发网站系列---序言)
- 用MDT 2012为企业部署windows 7(九)--介绍Control目录下两个脚本,简化部署过程
- ORACLE备份、还原总结(2====digest【含操作脚本】=====by DQ20110608)
- Linux驱动编程 step-by-step (六) 用户地址检测 简单模块调试 以及一些杂项
- Step by Step 创建一个简单的Silverlight应用程序(转自微软学生中心)
- 通过shell脚本批量部署ssh私钥认证以及批量操作工具pssh的简单使用
- 批处理 简单实现mysql 的 window的自动备份脚本
- exp自动备份数据库的脚本
- [翻译]Rendering a web page – step by step 网页渲染过程拆解
- [ASP.NET 设计模式] 用Visual Studio2010搭建一个简单的分层结构示例Step by Step —— 01 准备工作
- [ASP.NET 设计模式] 用Visual Studio2010搭建一个简单的分层结构示例Step by Step —— 06 用户界面层
- Android周学习Step By Step(1)--简单介绍环境搭建
- 简单的备份用bash脚本
- jenkins自动部署应用到tomcat中,编译后shell脚本的简单示例