我正在运行一个简单的批处理文件来备份一个小数据库。 工作正常,但不会关闭命令提示符。
编写的完整批处理文件:
db2cmd.exe -i db2stop force
PING localhost -n 6 >NUL
db2cmd.exe -i db2start
PING localhost -n 6 >NUL
db2cmd.exe -i db2 backup database icmnlsdb to e:backup
PING localhost -n 6 >NUL
db2cmd.exe -i db2 backup database rmdb to e:backup
我试过添加退出...不去。尝试了我在其他地方看到的建议。
添加这些行无济于事:
goto eof
:eof
exit
仍然没有反应;只是保持打开状态
尝试不同的方法,在下面的代码片段中更改 db2cmd 值以适合您的环境。 如果仍然遇到问题,请编辑问题以添加 db2level 命令的输出,并显示脚本运行时哪些条目到达 db2diag.log 文件中。
@set db2cmd="C:Program FilesIBMSQLLIBBINdb2cmd.exe"
@if "%DB2CLP%"=="" %db2cmd% /w /c /i "%0" %* && @goto :EOF
set bkpdir=e:backup
@if not exist %bkpdir% @echo "Directory %bkpdir% does not exist" && @goto :failEOF
db2stop force
@if errorlevel 1 @echo "Failed to stop Db2 but ignoring this"
db2start
@if errorlevel 4 @echo "Failed to start Db2" && @goto :failEOF
db2 -v backup database icmnlsdb to %bkpdir%
@if errorlevel 1 @echo "Failed to backup icmnlsdb" && @goto :failEOF
db2 -v backup database rmdb to %bkpdir%
@if errorlevel 1 @echo "Failed to backup rmdb" && @goto :failEOF
@echo "Db2 database backups completed successfully"
@exit /b 0
:failEOF
@rem You should add alerting (emails or other notifications) here
@echo "The Db2 offline backups failed"
@exit /b 1
除此之外,您还应考虑使用 Db2 联机备份,因为这允许您配置 Db2 以自动调度备份、管理备份映像的保留、管理故障通知,并且不会中断连接的应用程序。
感谢加拿大的mustaccio....发布此内容后,他在其他地方找到了答案。
只需添加/c 开关:
db2cmd.exe -i db2stop force
PING localhost -n 6 >NUL
db2cmd.exe -i db2start
PING localhost -n 6 >NUL
db2cmd.exe -i db2 backup database icmnlsdb to e:backup
PING localhost -n 6 >NUL
db2cmd.exe -i db2 backup database rmdb to e:backup
就像一个魅力。 没有更多的命令框。