博客
关于我
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. 参考文档

你可能感兴趣的文章
PostgreSQL远程连接配置
查看>>
PostgreSQL远程连接,发生致命错误:没有用于主机“…”,用户“…”,数据库“…”,SSL关闭的pg_hba.conf记录
查看>>
PostgreSQL配置文件--AUTOVACUUM参数
查看>>
PostgreSQL配置文件--其他
查看>>
Postman 内置的动态变量
查看>>
Qt开发——QProgressBar/QProgressDialog进度条
查看>>
Postman 汉化(Postman中文版)
查看>>
Qt开发——Music Player暗黑风格音乐播放器
查看>>
QT序列化操作
查看>>
Postman+Newman+Git+Jenkins实现接口自动化测试持续集成
查看>>
Qt布局管理详解(5种布局控件)
查看>>
Qt工程转化为Vs工程
查看>>
postman之参数化详解
查看>>
QT实现放大镜功能(附完整源码)
查看>>
QT实现TCPServer连接多个客户端(附完整源码)
查看>>
Postman做接口测试:如何自动校验接口响应
查看>>
postman做接口自动化测试
查看>>
Postman入门到入土
查看>>
Postman入门到精通01
查看>>
postman入门基础 —— 接口测试流程
查看>>