故障排除BCP错误

错误 1

在OpManager_Home/bin文件夹中找不到bcp.exe或者bcp.rll文件。

解决方案

  1. 从MSSQL安装位置的binn/文件夹中复制bcp.exe或者bcp.rll文件,并将其粘贴到OpManager_Home/bin/文件夹中。
  2. 如果有多个bcp.exe文件,请保留适合MSSQL的版本,并删除旧版本。
    (提示:打开命令提示符并在OpManager_Home/bin/文件夹中执行"bcp.exe -v"命令来获取bcp.exe的版本。)

错误 2

BCP登录失败。

解决方案

  1. 确保MSSQL服务器密码不包含特殊字符,例如‘;’。
  2. Update the correct MSSQL Username and Password in OpManager/Network Configuration Manager by executing DBConfiguration.bat 通过执行OpManager_Home/bin/文件夹中的DBConfiguration.bat,在OpManager/Network Configuration Manager中更新正确的MSSQL用户名和密码。

DBConfiguration.bat的步骤:

  1. 停止OpManager服务。
  2. 打开命令提示符并在OpManager_Home/bin/文件夹中执行DBConfiguration.bat。
  3. 输入正确的认证用户名和密码。

Troubleshoot BCP errors - ManageEngine OpManager

  1. 如果您希望使用相同的数据库进行数据存储。在“数据库名称”字段中输入要使用的相同数据库名称,然后点击“确定”。将打开一个提示,是否您希望使用相同的数据库,按确认键。

    Troubleshoot BCP errors - ManageEngine OpManager


    (或者)

    如果您想创建一个新的数据库来存储数据。输入您要创建的新数据库名称,然后按确认键。
  2. 当DBConfiguration完成后,启动OpManager服务。

错误 3

BCP和MSSQL服务器版本不匹配。

解决方案

  1. Copy the bcp.exe and the bcp.rll files of same version 从MSSQL安装位置的binn/文件夹中复制与MSSQL相同版本的bcp.exe和bcp.rll文件,并将其粘贴到OpManager_Home/bin/文件夹中。(提示:打开命令提示符并在OpManager_Home/bin/文件夹中执行"bcp.exe -v"命令来获取bcp.exe的版本。您可以检查执行查询"SELECT SERVERPROPERTY('productversion')作为'版本'"的MSSQL版本,或者进入SQL Server Management Studio并右键点击实例名称并选择属性)。
  2. 如果安装了Microsoft本地客户端,请检查Microsoft本地客户端版本是否与MSSQL版本匹配。

错误 4

BCP登录超时。

解决方案

  1. 在对象资源管理器中,右键点击服务器并选择属性。
  2. 点击连接节点。
  3. 在远程服务器连接下的远程查询超时框中,输入或选择一个从0到2,147,483,647的值,以秒为单位设置SQL服务器在超时前等待的最长时间。

错误 5

bcp的兼容性和其他常见故障排除选项:

解决方案

  1. 检查杀毒软件中bcp.exe的文件权限,并允许bcp.exe的权限。
  2. 当MSSQL服务器托管在本地系统中时,将MSSQL服务器名称更改为系统名称。
  3. 当用户(Windows/MSSQL)没有执行bcp文件的权限时,请确保您的ODBC连接使用SQL服务器身份验证。如果您仅使用Windows身份验证而不使用SQL服务器身份验证[1],则BCP将不会启动。
  4. 检查ODBCBCP.dll文件和SQLSRV32.dll文件。这些文件必须具有相同的版本。如果它们的版本不同,请重命名SQLSRV32.dll文件,然后重新安装MDAC(ODBC)。ODBCBCP.dll和SQLSRV32.dll文件位于WINNT\System32文件夹中。这些文件的版本号必须相同[1]。
  5. 如果MSSQL服务器安装在远程服务器上,而本地系统没有安装本地客户端,则在本地系统安装适合MSSQL服务器的本地客户端。

安装本机客户端:

从下面的链接下载SQL本地客户端。您需要向下滚动页面以下载本地客户端:

http://www.microsoft.com/download/en/details.aspx?id=16978

Microsoft SQL Server 2008 R2本地客户端(SQL服务器本地客户端)是包含SQL OLE DB提供程序和SQL ODBC驱动程序的单个动态链接库(DLL)。它包含对使用本机代码API(ODBC, OLE DB和ADO)连接到Microsoft SQL Server 2000、2005或者2008应用程序运行时的支持。SQL服务器本地客户端应用于创建新应用程序或增强现有应用程序需要利用新的SQL Server 2008 R2功能。此SQL本地客户端的可再分发安装程序安装运行时所需的客户端组件,从而利用新的SQL Server 2008 R2功能,可选择安装开发使用SQL服务器本地客户端API的应用程序所需的头文件。

X86包 (sqlncli.msi) X64包 e (sqlncli.msi) IA64包 (sqlncli.msi)

有关安装本机客户端的更多详细信息,请参阅此站点

  1. 如果执行OpManager_Home/bin/文件夹中的bcp.exe时出现错误消息“msvcr120.dll、msodbcsql13.dll文件丢失”,可能是由于两个原因。
    • 缺少适用于Visual Studio的Visual C++可再发行包:在这种情况下,请从此处安装适用于Visual Studio的Visual C++可再发行包。
    • 缺少适用于SQL Server® 的Microsoft® ODBC驱动程序:在这种情况下,从此处安装适用于SQL Server® 的Microsoft® ODBC驱动程序。
  2. 如果bcp问题仍然存在,
    • 打开命令提示符并执行OpManager_Home/bin/文件夹中的bcp.exe,之后截取输出的屏幕截图。
    • 使用截取的屏幕截图与support@manageengine.cn联系来解决这个问题。

错误 6

MSSQL服务器事务日志已满。

解决方案

  1. 连接到MSSQL数据库,并右键点击该数据库名称。
  2. 点击属性,然后在选项下选择恢复模式为简单。
  3. 右键点击数据库名称并选择任务 > 收缩 > 文件,然后点击确认进行压缩。

参考资料:

https://support.microsoft.com/en-in/help/869315/error-message-when-you-perform-a-bulk-copy-process-bcp-in-microsoft-dy