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

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

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

1. 脚本概述

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

2. 脚本内容

@echo off
echo ================================
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 off
echo 创建逻辑目录...
SQL> create directory data_dir as '/home/oracle/dmp/user';
@echo off
echo 目录创建完成。

3.2 赋予用户权限

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

4. 删除旧备份文件

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

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

4.2 Docker环境下的删除脚本

@echo off
echo 在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
fi
done
@echo off
echo 删除完成。

5. 注意事项

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

6. 参考文档

你可能感兴趣的文章
Nginx 的配置文件中的 keepalive 介绍
查看>>
Nginx 负载均衡与权重配置解析
查看>>
Nginx 负载均衡详解
查看>>
nginx 配置 单页面应用的解决方案
查看>>
nginx 配置https(一)—— 自签名证书
查看>>
nginx 配置~~~本身就是一个静态资源的服务器
查看>>
Nginx 配置解析:从基础到高级应用指南
查看>>
Nginx下配置codeigniter框架方法
查看>>
nginx添加模块与https支持
查看>>
Nginx用户认证
查看>>
Nginx的Rewrite正则表达式,匹配非某单词
查看>>
Nginx的使用总结(一)
查看>>
Nginx的可视化神器nginx-gui的下载配置和使用
查看>>
Nginx的是什么?干什么用的?
查看>>
Nginx访问控制_登陆权限的控制(http_auth_basic_module)
查看>>
nginx负载均衡器处理session共享的几种方法(转)
查看>>
nginx负载均衡的5种策略(转载)
查看>>
nginx负载均衡的五种算法
查看>>
Nginx运维与实战(二)-Https配置
查看>>
Nginx配置ssl实现https
查看>>