Linux配置crontab实现oracle数据库文件自动备份

前段时间现场的数据库服务器崩溃导致数据出现丢失,为预防数据丢失问题,现场进行数据库文件的每日自动备份。目前经过测试已完成数据库文件的备份,因此分享出来,仅供大家参考,有不足之处还望大家踊跃指正。

一、编写.sh脚本

1、编写脚本

在linux上编写一个数据库导出的脚本,用来进行数据库的自动导出

#!/bin/sh
#:本脚本自动备份数据库,每次备份完成后,删除半个月前备份数据。

#加载oracle的相关参数
export ORACLE_BASE=/datafs/oracle/db_1
export ORACLE_HOME=/datafs/oracle/db_1/11.2.0
export ORACLE_SID=LIMSDB
export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH:$HOME/bin:$ORACLE_HOME/OPatch

#oracle字符集
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8

#获取当前时间,格式:20150210
DATE_bak=$(date +%Y%m%d%H%M)

#获取半月前的时间,格式:20150203
DATE_RM=$(date -d "15 days ago" +%Y%m%d)

#设置备份目录,
export DIR=/Lims/DATABASE
export DAR=/Lims/DATABASEBAK

echo $DIR

#开始备份
echo 'Oracle backup...'

expdp YNBY_DATA/ynby_lims2019@LIMSDB DIRECTORY=OracleBakURL1 DUMPFILE='DATA_'$DATE_bak'.dmp' logfile='DATA_'$DATE_bak'.log' SCHEMAS =YNBY_DATA cluster=N

echo '开始压缩备份'

tar czPvf  $DIR/'DATA'$DATE_bak'.tar.gz'  $DIR/'DATA_'$DATE_bak'.dmp' $DIR/'DATA_'$DATE_bak'.log'

mv $DIR/'DATA'$DATE_bak'.tar.gz'  $DAR/

echo '移除原文件'
rm -rf $DIR/'DATA_'$DATE_bak'.dmp' $DIR/'DATA_'$DATE_bak'.log'

echo 'Oracle backup successfully.'

echo 'remove...'
rm -rf $DAR/$DATE_RM


echo 'remove successsfully.'

2、测试脚本

手动执行命名测试脚本是否成功执行:

sh [路径名]/[文件名].sh

例子:sh /Lims/sh/YNBY_Bakup_DATA.sh

3、给脚本赋x权限

chmod +x YNBY_Bakup_DATA.sh

二、crontab设置

1、检查crond与安装

检查服务状态:service crond status

联网安装:$ yum install crontabs

2、修改crontab

输入命令:crontab –e 
进入后继续输入命令:0 1 * * * /Lims/sh/YNBY_Bakup_DATA.sh
设置为每天1点执行一次脚本文件 
然后,保存退出:wq

sh脚本前面五个字段分别表示分钟(0-59) 小时(0-23) 日期(1-31) 月份(1-12) 星期(0-6,0代表星期天),中间使用空格分隔,后面的表示文件路径。如有多条命令直接在下一行输入,不需要使用“;”

3、重新启动crond服务

输入命令:service crond restart

4、查看crontab的日志记录

linux中看 /var/log/cron.log这个文件就可以,可以用tail -f /var/log/cron.log观察

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值