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端密码确定即可。

相关推荐
惜分飞2 小时前
ORA-600 kcratr_nab_less_than_odr和ORA-600 4193故障处理--惜分飞
数据库·oracle
fen_fen17 小时前
Oracle建表语句示例
数据库·oracle
此刻你21 小时前
常用的 SQL 语句
数据库·sql·oracle
海心焱1 天前
从零开始构建 AI 插件生态:深挖 MCP 如何打破 LLM 与本地数据的连接壁垒
jvm·人工智能·oracle
德彪稳坐倒骑驴1 天前
MySQL Oracle面试题
数据库·mysql·oracle
吕司1 天前
MySQL库的操作
数据库·mysql·oracle
dishugj1 天前
【Oracle】 rac的一些问题以及解决方案
数据库·oracle
eWidget1 天前
面向信创环境的Oracle兼容型数据库解决方案
数据库·oracle·kingbase·数据库平替用金仓·金仓数据库
熊文豪1 天前
关系数据库替换用金仓——Oracle兼容性深度解析
数据库·oracle·金仓数据库·电科金仓·kes
eWidget1 天前
面向Oracle生态的国产高兼容数据库解决方案
数据库·oracle·kingbase·数据库平替用金仓·金仓数据库