oracle数据泵数据库自动备份脚本

oracle数据泵数据库自动备份脚本20251024

1. 本次为备份为windows环境下,创建.bat备份脚本,删除3天前旧备份数据和日志,创建计划任务,自动执行。

2. 备份前先查看有无备份目录,没有则创建备份目录,并在操作系统相应路径创建该备份目录。如果已有备份目录则忽略。

#以下为可做参考。

一、查看数据库dump目录。

bash 复制代码
select * from dba_directories;

二、创建数据库备份目录。授权目录读写权限给备份用户。(新创建的dump_hisdir目录,更改属主属组为oracle:oinstall)

bash 复制代码
create directory dump_hisdir as '/rman_backup/rmanbackup/dump_hisdir/';
grant read,write on directory dump_hisdir to system;

3.备份脚本编写。

bash 复制代码
@echo off
echo 开始执行备份命令,请稍等......

set date=%date:~0,4%%Date:~5,2%%Date:~8,2%
set time=%time:~0,2%%time:~3,2%
set time=%time: =0%
expdp user/password@orcl directory=dump_dir dumpfile=hopg%date%%time%.dmp logfile=hopg%date%%time%.log schemas=user
forfiles /p "D:\dump_dir\hopg*.dmp" /s /m *.dmp /d -3 /c "cmd /c del /f @path"
forfiles /p "D:\dump_dir\hopg*.log" /s /m *.log /d -3 /c "cmd /c del /f @path"
exit

脚本编写好,把后缀改为.bat批处理文件就行了。

4.说明

说明:echo 文字输出 。

set 设置变量 ,用%变量名% 来获取。

expdp命令是oracle提供的dump备份命令

forfiles是windows的文件查找命令

pause 执行的时候在cmd输出显示

del 删除文件

%date%的值

在不同的系统、语言版本下可能是不一样的,控制面板里面区域选项的设定也会改变%date%的值。请先在命令行中测试 echo %date% 的返回值。

windows下%date% 输出的是2017/04/06 周四 这种格式,%date:~0,11% 输出的是2017/04/06。

~后的第一个参数是要截取的起始位置(从0开始),第二个参数是要截取的长度,如没有则是截取到最后,参数可酌情修改。

如需要准确的时间做为文件名,请用%time%函数,参数同上。

• forfiles参数说明:

/P 可是搜索的路径。在我们这里就是要在哪个目录寻找要删除的文件

/s 包含子目录

/m 根据搜索掩码搜索文件。默认为,如果要找备份处dump文件,格式为.dmp

/d 文件修改时间在某个时间之前或者之后。-7 表示7天之前的文件。

/c 表示为每个文件执行的命令,如果要删除该文件可以为"cmd /c del /F /s /q @file"。其中变量@file表示该文件名 f s q表示强制静默删除可以不用;

默认命令是 "cmd /c echo @file"。下列变量

可以用在命令字符串中:

@file - 返回文件名。

@fname - 返回不带扩展名的文件名。

@ext - 只返回文件的扩展。

@path - 返回文件的完整路径。

@relpath - 返回文件的相对路径。

@isdir - 如果文件类型是目录,返回 "TRUE";

如果是文件,返回 "FALSE"。

@fsize - 以字节为单位返回文件大小。

@fdate - 返回文件上一次修改的日期。

@ftime - 返回文件上一次修改的时间。

5.创建计划任务

说明:创建计划任务,并把刚编写好的批处理脚本添加到计划任务。这里计划任务都差不多,从网上找了写图片放在这里,方便大家了解。

  1. 1在电脑附件中找到任务计划程序,然后点击打开。
  1. 点击右侧的"创建基本任务",创建一个任务计划,填写任务名字和描述
  1. 设置任务的执行周期,这里周期选择每天,点击下一步。再设置开始时间,一般选择在夜间备份数据库,点击下一步
  1. 选择前面我们只做的bat批处理文件。即oracle备份语句文件。参数填写文件所在的目录,点击下一步,直接点击完成

  2. 然后双击对应的计划任务名称,出现界面如下图:然后在安全选项中选择"不管用户是否登陆都要运行此程序"然后点击确定

  3. 输入运行此任务的用户帐户信息。输入此pc端密码确定即可。

相关推荐
!chen8 小时前
Oracle分区表+本地索引 核心优化方案
数据库·oracle
我科绝伦(Huanhuan Zhou)8 小时前
Oracle性能优化方法论:从基线建立到问题根治
数据库·oracle·性能优化
Likeyou79 小时前
关于Linux下的Oracle的rman备份操作指南
linux·运维·oracle
盼哥PyAI实验室9 小时前
【超详细教程】Python 连接 MySQL 全流程实战
python·mysql·oracle
xuanloyer10 小时前
oracle从入门到精通--逻辑存储结构
数据库·oracle
dishugj10 小时前
[ORACLE-RMAN]rman备份报错ORA-00245解决
数据库·oracle
Channing Lewis10 小时前
zoho crm中如何记录下已删除的子表recordid
运维·服务器·oracle
Lentou10 小时前
oracle新增历史表
oracle
前进的李工10 小时前
SQL排序与分页查询技巧
开发语言·数据库·sql·mysql·oracle
Leon-Ning Liu11 小时前
【系列实验一】Oracle 19c RAC 安装(4个节点)
数据库·oracle