我有一个夜间ETL例程(PDI - 基于Java的Pentaho数据集成),它连接到各种数据源并提取数据来操作和加载到另一个数据库 . 在不更改代码的情况下,由于收到SQL Server数据库的登录失败,我偶尔会失败 . 收到的错误是:
无法打开登录请求的数据库“*****” . 登录失败 .
凭证存储在不会更改的文本文件中 . 我可以简单地重新完成工作,一切都很好 .
SQL Server在其错误日志中报告登录失败 . 我可以确认用户可以通过SSMS直接登录到SQL Server,从而可以访问指定的数据库 .
Key components in software stack are...
-
服务器1:Ubuntu 14.04
-
Pentaho数据集成7.1
-
mssql-jdbc-6.2.0.jre8.jar
-
Java 1.8.0_60
-
服务器2:Windows Server 2008 R2
-
SQL Server 2012 Express
什么可能导致登录失败的这种不一致?是否有合理的方法来记录用于访问数据库的凭据,以便我可以更好地确定问题的根源所在?
2 回答
几年前我遇到了同样的问题 . IS正在关闭数据库连接,以便进行清理和其他维护任务 .
如果出现错误,解决方案是在1/2小时后自动重启 . 但是,不要尝试超过5次重启试验,因为在这种情况下问题可能是其他问题 .
如果您尝试连接的数据库也是在该日志中启动的数据库,那么这可能是问题所在 . https://www.brentozar.com/blitz/auto-close-enabled/ .