@echo off
echo ================================================
echo Windows环境下Oracle数据库的自动备份脚本
echo 1. 使用当前日期命名备份文件。
echo 2. 自动删除7天前的备份。
echo ================================================
::以“YYYYMMDD”格式取出当前时间。
set BACKUPDATE=%date:~0,4%%date:~5,2%%date:~8,2%
REM 设置所有者、用户名和密码
set OWNER=lianxi
set USER=lianxi
set PASSWORD=aqhis
set BUCKUPPATH=E:\DataSource\
REM 创建备份用目录,目录结构为E:\DataSource\nisDBbackup
if not exist %BUCKUPPATH%nisDBbackup mkdir %BUCKUPPATH%nisDBbackup
if not exist %BUCKUPPATH%nisDBbackup\%CURDATE%\ mkdir %BUCKUPPATH%nisDBbackup\%CURDATE%\
set CURDIR=%BUCKUPPATH%nisDBbackup\%CURDATE%
set FILENAME=%CURDIR%\%OWNER%_%CURDATE%_%CURTIME%.DMP
set EXPLOG=%CURDIR%\%OWNER%_%CURDATE%_%CURTIME%_log.log
REM 调用ORACLE的exp命令导出用户数据
REM exp userid=%USER%/%PASSWORD%@lianxi file=%FILENAME% log=%EXPLOG%
REM 这里是为了删除大于七天的数据文件 适用于:Windows Server中,Windows Vista的
forfiles /p %BUCKUPPATH%nisDBbackup /s /m . /d -4 /c "cmd /c del @path"
dir /ad/b/s %BUCKUPPATH%nisDBbackup |sort /r >%BUCKUPPATH%kill.txt
For /f "tokens=*" %%i in (%BUCKUPPATH%kill.txt) DO rd "%%i"
del %BUCKUPPATH%kill.txt
exit
我这样写完执行就提示
EXP-00056: 遇到 ORACLE 错误 12514
ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务
EXP-00000: 导出终止失败
但是直接cmd执行
exp userid=lianxi/aqhis%@lianxi file=his.dmp log=hi.log
就没问题 是什么原因