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

相关推荐
lusklusklusk4 小时前
Oracle数据库基础之2_体系结构
数据库·oracle
lusklusklusk5 小时前
Oracle数据库基础之11_Duplicate和Dataguard和RAC
数据库·oracle
fb_123459 小时前
MySQL运维实战:备份恢复+主从复制+读写分离+MHA高可用(超详细手把手教程)
运维·mysql·oracle
oradh13 小时前
Oracle固定执行计划的方法----SQL Profie(三)
数据库·sql·oracle
lusklusklusk16 小时前
Oracle数据库基础之7_备份恢复基础之SCN
数据库·oracle
雪碧聊技术16 小时前
从 0 跑通一个最小 RAG Demo:文档切分、向量检索与答案生成
数据库·oracle
lusklusklusk17 小时前
Oracle数据库基础之8_闪回
数据库·oracle
lusklusklusk17 小时前
Oracle数据库基础之10_性能优化
数据库·oracle·性能优化
lusklusklusk1 天前
Sqlserver_Oracle_Mysql_Postgresql表_索引碎片或膨胀的知识点汇总
mysql·oracle·sqlserver
JosieBook1 天前
【WinForm 代码反脆弱系列】04 数据库操作 —— 连接字符串、连接对象与连接池
数据库·oracle