间歇性错误 SQL Server 错误 67 和 17

间歇性错误 SQL Server 错误 67 和 17

我们在 Windows Server 2012 上运行 Windows SQL Server 2012 Standard。有一个带有 Access 前端的 SQL 数据库,它是我们从旧版本的 Access 和 SQL 迁移而来的。Access 前端大多数时候都可以毫无问题地与数据库通信。但是,有时 Access 会停止响应,然后用户会收到以下错误:

Connection failed: SQLState: '01000' SQL Server Error: 67
[Microsoft][ODBC SQL Server Driver][DBNETLIB]ConnectionOpen(Connect()).
Connection Failed:
  SQLState: '08001' SQL Server Error: 17
[Microsoft][ODBC SQL Server Driver][DBNETLIB]
  SQL Server does not exist or access is denied.

维护 Access 和 SQL 数据库的人员提供了以下总结:这个自发问题会影响同时连接到 SQL Server 的每个人,表现为连接缓慢或不存在。它会在几分钟到几小时内自行解决。ODBC 跟踪没有产生有关该问题的任何有用信息。我们测试了最多 5 个同时用户,没有出现问题。当我们在星期五观察到这个问题时,只有四个用户在数据库中,关闭这些连接并没有立即解决问题。在停机期间,文件系统访问服务器的网络似乎没有问题。

根据这些信息,这肯定不是 MS Access、ODBC 配置或数据库结构的问题。这似乎是 SQL Server 本身的间歇性连接问题,可能是由于配置问题、许可(如您所提到的)、与其他软件/进程冲突或由于其他 SQL Server 进程。不幸的是,这超出了我的专业知识范围,我们没有专门的 SQL Server 或 IT 资源。

我让另一位 IT 人员查看了这个问题,他发现了以下问题:

Sally 的 PC 出现 SQL 错误。登录她的 PC 查看错误(以 Sally 和 的身份登录cleAdmin)。

查看了服务器名称,想验证在 Control Panel > Adminstratrative Tools > ODBC > Connections 用户 DSN、系统 DSN 或 Fie DSN 下没有 odbc 连接

创建新的系统 DSN 连接指定服务器:
CLE-VM-SQL-FILE\CLESQLSERVER

其余均为默认值点击测试,成功

不幸的是,这些改变之后不久问题又出现了。

有人建议这可能是硬件问题,所以我们更换了交换机并确保网络适配器上的驱动程序是最新的。此外,在使用 PING 测试时,我们从未看到任何网络连接丢失的迹象。

还有其他人遇到过这个问题吗?如果是,您是如何解决的?

答案1

根据具体情况,有几个最常见的原因:

  1. 不“知道”如何与 AlwaysOn 组配合使用的驱动程序:您需要使用 MSOLEDB 或 MSODBC 驱动程序
  2. 确保 SQL 服务器上的 TCP/IP 协议已打开
  3. SQL 服务器上的 SQL Server Browser 服务正在运行
  4. 防火墙/连接问题。

您可以检查本文了解详情。

相关内容