linux 定时 备份 数据库 mysql 和oracle

24 篇文章 0 订阅

chmod u+x bkDatabaseName.sh

定时任务:
crontab -e 
41 20 * * * /bin/bash /data/temp/bkDatabaseName.sh
mysql sh文件中
mysqldump -uroot -proot testsjk  > /data/testsjk  -bak/`date +%Y-%m-%d_%H%M%S`.sql

oracle的话
expdp user/user dumpfile=`date +%Y-%m-%d_%H%M%S`.dmp directory=DATA_PUMP_DIR 

定时任务大概是2分钟生效,测试的时候时间搞长一点 3-5分钟

http://blog.csdn.net/testcs_dn/article/details/48829785

1.  linux
看 /var/log/cron这个文件就可以,可以用tail -f /var/log/cron观察
2.  unix
在 /var/spool/cron/tmp文件中,有croutXXX001864的tmp文件,tail 这些文件就可以看到正在执行的任务了。
3. mail任务
在 /var/spool/mail/root 文件中,有crontab执行日志的记录,用tail -f /var/spool/mail/root搜索 即可查看最近的crontab执行情况。


用oracle账户加crontab 定时任务,会有问题,因为crontab运行的时候只会使用一些基本的环境变量,oracle的环境变量没有。需要加一下

#!/bin/sh
filename=`date +%Y-%m-%d_%H%M%S`
export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_1
export ORACLE_SID=orcl
echo $ORACLE_HOME
/home/oracle/app/oracle/product/11.2.0/dbhome_1/bin/expdp 用户名/密码 DUMPFILE=test-auto-$filename.dmp DIRECTORY=bakdirectory


刚开始加了环境变量也没用,很郁闷,脚本中打印都出来了。后面加上一行#!/bin/sh 以为是这个问题导致的,结果加上后报错 /bin/sh^M: bad interpreter: No such file or directory,后面通过 sed -i 's/\r//' bakoracle.sh  解决 因为文件我是从windows上复制过去的,改为unix的格式,空格什么的对应转换

参考http://www.pc811.com/6/1/26295.html


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值