Oracle在Windows和Linux下定时备份与删除

一. 实现的功能

    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脚本,创建即可 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章