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:pgyjak" mkdir D:pgyjak if not exist "D:pgyjlog" mkdir D:pgyjlog set DATADIR=D:pgyjak set LOGDIR=D:pgyjlog 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"
遇到问题:
获取时间变量的结果时,本地环境没有问题,服务器上一直乱码,最后通过截切,把乱码截取掉了。
参考: