Windows Server 上配置 Oracle 定时备份

Oracle数据库备份脚本:

@echo off   
echo ================================================   
echo  Windows环境下Oracle数据库的自动备份脚本  
echo  1. 使用当前日期命名备份文件。  
echo  2. 自动删除7天前的备份。  
echo ================================================  
echo  以“YYYYMMDD_HH”格式取出当前时间。  
set BACKUPDATE=%date:~3,4%%date:~8,2%%date:~11,2%_%time:~0,2%
echo  设置用户名、密码和要备份的数据库
set USER=root
set PASSWORD=root2019
set DATABASE=10.10.10.10:1521/orcl
echo  创建备份目录
if not exist "D:\pgyj\bak"       mkdir D:\pgyj\bak
if not exist "D:\pgyj\log"        mkdir D:\pgyj\log
set DATADIR=D:\pgyj\bak
set LOGDIR=D:\pgyj\log
exp %USER%/%PASSWORD%@%DATABASE% file=%DATADIR%\data_%USER%_%BACKUPDATE%.dmp owner=(%USER%) log=%LOGDIR%\log_%USER%_%BACKUPDATE%.log
echo  删除7天前的备份。
forfiles /p "%DATADIR%" /s /m *.dmp /d -7 /c "cmd /c del @path"
forfiles /p "%LOGDIR%" /s /m *.log /d -7 /c "cmd /c del @path"

遇到问题:

  获取时间变量的结果时,本地环境没有问题,服务器上一直乱码,最后通过截切,把乱码截取掉了。

参考:

  Window系统定期备份oracle数据库

  Windows通过计划任务定时执行bat文件

https://blog.csdn.net/qq1049/article/details/78676504

猜你喜欢

转载自www.cnblogs.com/tangshengwei/p/12084098.html