linux下oracle自动备份

1、编辑备份脚本
vi /backup/oracledata/ordatabak.sh

#!/bin/bash
export ORACLE_BASE=/u01/oracle
export ORACLE_HOME=$ORACLE_BASE/oracle
export ORACLE_SID=orcl
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin

 

date=$(date +'%Y-%m-%d')
bakdata=wznc65"_"$date.dmp
baklog=wznc65"_"$date.log
ordatabak=wznc65"_"$date.tar.gz
backdir=/oracledb2/backup

expdp wznc65/wznc65 grants=y schemas=wznc65 directory=dump_dir dumpfile=$bakdata logfile=$baklog

cd $backdir

tar -zcvf $ordatabak $bakdata $baklog #压缩备份文件和日志文件

find $bakdir -type f -name "*.log" -exec rm {} \; #删除备份文件
find $bakdir -type f -name "*.dmp" -exec rm {} \; #删除日志文件
find $bakdir -type f -name "*.tar.gz" -mtime +7 -exec rm -rf {} \;

 

chmod +x /backup/oracledata/ordatabak.sh #添加脚本执行权限

2、编写定时任务

crontab -e

30 2 * * * oracle /backup/oracledata/ordatabak.sh #每天凌晨2点30分,以oracle用户执行ordatabak.sh备份文件

service crond restart #重启crond

每天凌晨2点30分,会自动备份数据库到/backup/oracledata/OSYUNWEI目录中,保存为.tar.gz压缩文件,并且删除7天前的备份,即只保留最近7天的数据。

posted @ 2023-02-24 14:53  lysheng  阅读(400)  评论(0编辑  收藏  举报