博客
关于我
oracle使用批处理文件expdp定时备份
阅读量:353 次
发布时间:2019-03-04

本文共 1331 字,大约阅读时间需要 4 分钟。

Oracle数据库自动备份脚本(Windows环境)

1. 脚本概述

该bat脚本用于在Windows环境下自动备份Oracle数据库。备份文件的命名规则基于当前日期和时间,备份文件将存储在指定目录中。

2. 脚本内容

@echo offecho ================================echo Windows环境下Oracle数据库的自动备份脚本echo 1. 使用当前日期命名备份文件。echo ================================:: 设置用户名set USER=QXXXXX:: 设置密码set PASSWORD=QXXXXX:: 导出数据(根据日期加时分秒来命名备份文件)expdp %USER%/%PASSWORD% directory=qmysptbackup dumpfile=yxhl_%date:~0,4_%date:~5,2_%date:~8,2_%TIME:~0,2_%TIME:~3,2_%TIME:~6,2%.dmp logfile=yxhl_%date:~0,4_%date:~5,2_%date:~8,2_%TIME:~0,2_%TIME:~3,2_%TIME:~6,2%.log schemas=%USER%

3. 脚本前提设置

3.1 创建逻辑目录

@echo offecho 创建逻辑目录...SQL> create directory data_dir as '/home/oracle/dmp/user';@echo offecho 目录创建完成。

3.2 赋予用户权限

@echo offecho 用sys管理员给你的指定用户赋予在该目录的操作权限。SQL> grant read, write on directory data_dir to user;@echo offecho 权限已成功授予。

4. 删除旧备份文件

4.1 PowerShell脚本(删除7天前的备份)

@echo offecho 删除7天前的备份...forfiles /p %DATADIR% /s /m HBGYDX*.DMP /d -7 /c "cmd /c del @path"@echo offecho 删除完成。

4.2 Docker环境下的删除脚本

@echo offecho 在Docker环境中执行删除操作...#!/bin/bash# 删除30天前的文件before30Day=$(date -d "-30 day" +%Y%m%d)for i in `ls *.txt` do    if [ "${i:0:8}" -le "$before30Day" ]; then        echo "该文件是30天之前的: $i"        rm -f $i    fidone@echo offecho 删除完成。

5. 注意事项

  • 目录路径:请根据实际环境更换data_dirdumpdir的值。
  • 权限设置:确保指定用户对目标目录有读写权限。
  • 备份文件:建议定期检查备份文件的存储位置和完整性。

6. 参考文档

你可能感兴趣的文章
poj1730 - Perfect Pth Powers(完全平方数)(水题)
查看>>
poj1753——Flip Game
查看>>
poj1936 假期计划第一水
查看>>
poj1958-汉诺四塔问题(三种方法)
查看>>
poj1988(并查集)
查看>>
POJ2007+几何+极角排序
查看>>
poj2039
查看>>
poj2135(简单的最小费用流问题)
查看>>
POJ2251
查看>>
POJ2253-Frogger
查看>>
POJ2728 Desert King
查看>>
poj3074 DLX精确覆盖
查看>>
Qt笔记——QLable+QPixmap图片缩放踩坑
查看>>
Qt笔记——foreach与forever
查看>>
QT程序怎么挪到Linux下,linux+Qt程序如何打包发布
查看>>
Qt知识:视图框架QGraphicsWidget详解
查看>>
Qt知识: 画刷风格
查看>>
QT的OpenGL渲染窗QOpenGLWidget Class
查看>>
QT界面操作1:如何跟踪鼠标位置?
查看>>
Qt环境搭建(Visual Studio)
查看>>