Linux定时备份oracle数据库

一、Linux用shell脚本定时备份数据库

(不按脚本来可能会有坑)

二、创建shell脚本

创建oracle_backup.sh,放在/home/oracle/bin/下, 最好用oracle账户创建。

#!/bin/sh

#文件路径及名称(目录按照各自配置)
DATA_FOLDER=/data/oracleDB
BAK_FOLDER=/data/bak/oraclebak
LOG_FOLE=/data/oracleDB/log.txt

# 必须引入环境变量,不然定时任务无效【关键关键】
. ~/.bash_profile;

# 20211218V1710,备份的文件到时命名会带这个时间标识
DATE=$(date +%Y%m%dV%H%M)
echo "$DATE backup begin...">>$LOG_FOLE


# 开始备份
# *****************************************************************
# ******这一段是备份命令,有几个库就写几个*************************
FILE_mydb01="mydb01_$DATE.dmp"
expdp user01/password01@MYDATABASE schemas=user01 directory=DATAPUMP_DIR dumpfile=$FILE_mydb01 logfile=export_$FILE_mydb01.log;
echo "$FILE_mydb01 backup ok">>$LOG_FOLE

FILE_mydb02="mydb02_$DATE.dmp"
expdp user02/password02@MYDATABASE schemas=user02 directory=DATAPUMP_DIR dumpfile=$FILE_mydb02 logfile=export_$FILE_mydb02.log;
echo "$FILE_mydb02 backup ok">>$LOG_FOLE
# ********MYDATABASE是数据库实例**schemas是导出哪个用户的数据******
# *****************************************************************


echo "$DATE backup finished">>$LOG_FOLE
# 结束备份

# 删除备份目录
echo "remove data  from $BAK_FOLDER">>$LOG_FOLE
rm -rf $BAK_FOLDER/*

# 把备份的文件夹复制到备份目录
echo "copy files from $DATA_FOLDER to $BAK_FOLDER">>$LOG_FOLE
mv -f $DATA_FOLDER/* $BAK_FOLDER/

三、文件授权

chmod 777 oracle_backup.sh

四、设置linux crontab定时任务

以oracle用户身份运行:

crontab -e

加入以下内容,保存:

#这是每天17点10分运行一次
10 17 * * * sh /home/oracle/bin/oracle_backup.sh

重启crontab服务,避免任务没加入:

/etc/rc.d/init.d/crond   restart

五、大功告成,等待明天看效果。

最终会生成:

mydb01_20211218V1710.dmp(数据文件)

mydb01_20211218V1710.dmp.log(备份过程日志)

mydb02_20211218V1710.dmp(数据文件)

mydb02_20211218V1710.dmp.log(备份过程日志)

***********************************************************************************************************

author:蓝何忠
email:lanhezhong@163.com
***********************************************************************************************

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值