Chinaunix首页 | 论坛 | 博客
  • 博客访问: 133953
  • 博文数量: 35
  • 博客积分: 1002
  • 博客等级: 准尉
  • 技术积分: 345
  • 用 户 组: 普通用户
  • 注册时间: 2009-09-03 14:30
文章分类

全部博文(35)

文章存档

2014年(7)

2013年(8)

2011年(4)

2010年(9)

2009年(7)

我的朋友

分类: Oracle

2009-11-10 10:48:30

   客户需求每天半夜2点对几个重要表进行备份,在备份的同时删除隔一天的备份数据,
防止文件空间涨满。
   例如:当天是20091110,这天执行备份脚本的时候就要删除20091108这天的备份数
据。过程很简单,就是执行完exp之后,判断一下当前日期减去2做为要删除的数据名,
rm掉就可以了。在操作系统中设置crontab自动调用脚本即可。详细代码如下:(在linux
机器上通过)
文件名:backup.sh
#!/bin/bash
 
ORACLE_HOME=/opt/oracle/product/10g
export ORACLE_HOME
 
ORACLE_SID=oracle
export ORACLE_SID
 
PATH=$ORACLE_HOME/bin:$PATH
export PATH
 
NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1
export NLS_LANG
 
rq=$(date +%Y%m%d)
echo 'rq--->' $rq
exp system/system grants=y rows=y file=/home/oracle/backup/mem$rq.dmp    log=/home/oracle/backup/mem$rq.log    tables=sys.memory buffer=65536555
let rm_rq=$rq-2
echo 'rm_rq--->' $rm_rq
rm /home/oracle/backup/m
 
执行:
crontab -e
加上这句话即可,在试验环境中,每分钟执行一次脚本
* * * * * /home/oracle/mm/backup.sh
 
下面是crontab的一些知识:
 
字段说明
1分钟(0-59)
2小时(2-24)
3日期(1-31)
4月份(1-12;或英文缩写Jan、Feb等)
5周几(0-6,0为周日;或单词缩写Sun、Mon等)
6用户名(执行命令时以此用户的身份)
7要执行的命令(路径)
 
例:
1 2 3 * * root tar
3号2点1分的时候执行root的下的tar命令。没有的用*代替
 
查看当前用户的cron配置,使用 crontab -l
编辑当前用户的cron配置,使用 crontab -e
删除当前用户的cron配置,使用 crontab -r
 
 
阅读(1756) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~