版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/guocunlei25/article/details/90236965
一. 实现的功能
1.每天定时备份oracle数据库
2.定时清理7天前的备份文件
二. Linux系统的实现方式
相关: shell crontab expdp
准备:ssh连接工具,用户名密码,oracle安装路径,Oracle数据库的用户名密码
# 第一步: 登录后,切换到oracle用户
$ su - oracle
# 第二步:新建sh脚本, 将脚本复制过来,保存
$ vim oracle_backup.sh
# 第三步:设置执行权限
$ chmod 777 oracle_backup.sh
# 第四步: 测试脚本是否可用
$ sh oracle_backup.sh
# 第五步: 添加Linux定时任务
$ crontab -e
## vim 编辑定时任务
## 表示每天凌晨1点执行sh脚本,并把日志输出到指定目录
0 1 * * * /home/oracle/oracle_backup.sh > /tmp/expdp.log 2>&1
# step4: 查看定时任务
$ crontab -l
oracle_backup.sh的脚本:
# Oracle的根目录
ORACLE_BASE=/oracle; export ORACLE_BASE
# Oracle的安装目录
ORACLE_HOME=$ORACLE_BASE/自己的具体路径; export ORACLE_HOME
# Oracle的环境变量
PATH=$ORACLE_HOME/bin:usr/local/bin:$PATH:/usr/sbin; export PATH
CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/product/jlib; export CLASSPATH
# 设置需要备份到的目录
backup_dir=$ORACLE_HOME/rdbms/log
DMP_FILE=oracle_backup_$(date +%Y%m%d).dmp
LOG_FILE=oracle_backup_$(date +%Y%m%d%H%M).log
# start expdp
echo 'start expdp'
# 输入oracle的用户名和密码 @后是实例空间
expdp oracle用户名/oracle密码@orcl schemas=oracle用户 dumpfile=$DMP_FILE logfile=$LOG_FILE;
# 设置删除7天前的文件
cd $backup_dir
find $backup_dir -mtime +7 -name "oracle_backup_*" -exec rm -f {} \;
三. Windows系统的实现方式
1.新建一个文本文件,以.bat结尾,复制以下内容:
@echo off
set backupfile=gjpt_backup_%date:~0,4%-%date:~5,2%-%date:~8,2%
set logfile=gjpt_backup_%date:~0,4%-%date:~5,2%-%date:~8,2%
expdp oracle用户名/oracle密码@127.0.0.1/orcl dumpfile=%backupfile%.dmp logfile=%logfile%.log
# 删除超过7天的备份文件
forfiles /p "备份文件的路径,比如:D:\oracle安装路径\admin\orcl\dpdump" /s /m *.dmp /d -7 /c "cmd /c del @file"
2.设置执行计划
打开控制面板--->管理工具
根据自己的需求一直下一步
选择你创建的.bat脚本,创建即可