LogParser SQL 服务器驱动程序 windows 2012 x64
LogParser SQL Server driver windows 2012 x64
我有一个 logparser one liner,它在 SQL 服务器数据库中输出。
我在 logparser 时间戳和 SQL 服务器 date(7)
类型之间存在转换问题。我通过指定驱动程序
解决了这个问题
-driver "sql server native client 10.0"
这是整篇文章:
LogParser "select to_date(to_timestamp('2015-03-13','yyyy-MM-dd')) AS REQ_DATE_DT, count(*) as REQ_REQUESTS_NU, 5 INTO MyTable from \myServer\MyIISlog.log where time >= '12:00:00' and time <='14:59:59' " -i:IISW3C -o:SQL -createTable:OFF -server:MyServer\MyInstance -database:MyDB -username:myUser -password:MyPass -driver "sql server native client 10.0"
此命令在我的开发机器上运行良好(windows 7 x64,SQL 安装了 Server Management Studio)。现在我想从脚本服务器 运行 它(windows 2012r2 没有 ssms)
如果我运行相同的命令我有以下错误:
Task aborted.
Error connecting to ODBC Server
SQL State: IM002
Native Error: 0
Error Message: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
如果我把"SQL Server native client 10.0"改成"SQL Server",我也有同样的错误。
如果我省略 -driver sql 服务器部分,我会收到通常的转换错误消息
SQL table column "REQ_DATE_DT" data type is not compatible with SELECT clause item "REQ_DATE_DT" (type TIMESTAMP)
因此可以访问数据库服务器,并且可以使用我提供的凭据进行查询。
我从 Microsoft msi 安装了 odbc 驱动程序,它们出现在 ODBC 数据源管理器 x32 和 x64 中。
我尝试了 odbc 服务器 10(SQL Server 2008 R2)和 11(SQL Server 2012)
我错过了什么?
编辑 1:
我测试安装了几个 sql 功能但没有成功
- sqlncli、sqlCmdLnUtils 和 SharedManagementObjects (x64)。我将 sqlcmd.exe 的路径添加到我的 $Path 中。问题仍然存在,我可以 运行 sqlcmd 和 "Odbc Data Source" 显示 sql server 2008 驱动程序(x86 和 x64)。
- 我安装了更多功能但没有成功。这是我安装的组件 (x64) 的列表:SQL 2008 Command Line Utilities, Managment Objects, Native Client, Replication Management Objects, SQLXML 4.0 SP1, SQL 服务器系统 CLR 类型,SQL Server 2008 的 Powershell 扩展。所有这些都是 x64 功能。
- 安装整个 sql 服务器东西(包括 ssms、cli ...)后,我总是遇到同样的错误
我会在其他服务器上尝试,但我认为这是一个仅涉及 x64 sql 本机客户端或 windows 2012r2 x64...
的问题
您可能需要安装 SQL Server Native Client(它与 ODBC 驱动程序不同),可在 https://msdn.microsoft.com/en-us/data/ff658533.aspx?f=255&MSPPError=-2147217396.
找到
我设法使用 -oConnString
LogParser 选项而不是 -driver -server -database ...
解决了这个问题:
LogParser "select to_date(to_timestamp('2015-03-13','yyyy-MM-dd')) AS REQ_DATE_DT, count(*) as REQ_REQUESTS_NU, 5 INTO MyTable from \myServer\MyIISlog.log where time >= '12:00:00' and time <='14:59:59' " -i:IISW3C -o:SQL -createTable:OFF -oConnString:"Driver={SQL server native client 10.0};server=MyServer;database=MyDB;uid=MyUser;pwd=MyUser;"
由于这个解决方法,我认为原来的问题是 ODBC x86 和 x64 的问题。
以下是一些对我有帮助的问题:
- Access to Sql Server via ODBC from C# : ERROR [IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
- https://serverfault.com/questions/144116/credentials-work-for-ssms-but-not-odbc-logparser-script
我有一个 logparser one liner,它在 SQL 服务器数据库中输出。
我在 logparser 时间戳和 SQL 服务器 date(7)
类型之间存在转换问题。我通过指定驱动程序
-driver "sql server native client 10.0"
这是整篇文章:
LogParser "select to_date(to_timestamp('2015-03-13','yyyy-MM-dd')) AS REQ_DATE_DT, count(*) as REQ_REQUESTS_NU, 5 INTO MyTable from \myServer\MyIISlog.log where time >= '12:00:00' and time <='14:59:59' " -i:IISW3C -o:SQL -createTable:OFF -server:MyServer\MyInstance -database:MyDB -username:myUser -password:MyPass -driver "sql server native client 10.0"
此命令在我的开发机器上运行良好(windows 7 x64,SQL 安装了 Server Management Studio)。现在我想从脚本服务器 运行 它(windows 2012r2 没有 ssms)
如果我运行相同的命令我有以下错误:
Task aborted.
Error connecting to ODBC Server
SQL State: IM002
Native Error: 0
Error Message: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
如果我把"SQL Server native client 10.0"改成"SQL Server",我也有同样的错误。
如果我省略 -driver sql 服务器部分,我会收到通常的转换错误消息
SQL table column "REQ_DATE_DT" data type is not compatible with SELECT clause item "REQ_DATE_DT" (type TIMESTAMP)
因此可以访问数据库服务器,并且可以使用我提供的凭据进行查询。
我从 Microsoft msi 安装了 odbc 驱动程序,它们出现在 ODBC 数据源管理器 x32 和 x64 中。
我尝试了 odbc 服务器 10(SQL Server 2008 R2)和 11(SQL Server 2012)
我错过了什么?
编辑 1:
我测试安装了几个 sql 功能但没有成功
- sqlncli、sqlCmdLnUtils 和 SharedManagementObjects (x64)。我将 sqlcmd.exe 的路径添加到我的 $Path 中。问题仍然存在,我可以 运行 sqlcmd 和 "Odbc Data Source" 显示 sql server 2008 驱动程序(x86 和 x64)。
- 我安装了更多功能但没有成功。这是我安装的组件 (x64) 的列表:SQL 2008 Command Line Utilities, Managment Objects, Native Client, Replication Management Objects, SQLXML 4.0 SP1, SQL 服务器系统 CLR 类型,SQL Server 2008 的 Powershell 扩展。所有这些都是 x64 功能。
- 安装整个 sql 服务器东西(包括 ssms、cli ...)后,我总是遇到同样的错误
我会在其他服务器上尝试,但我认为这是一个仅涉及 x64 sql 本机客户端或 windows 2012r2 x64...
的问题您可能需要安装 SQL Server Native Client(它与 ODBC 驱动程序不同),可在 https://msdn.microsoft.com/en-us/data/ff658533.aspx?f=255&MSPPError=-2147217396.
找到我设法使用 -oConnString
LogParser 选项而不是 -driver -server -database ...
解决了这个问题:
LogParser "select to_date(to_timestamp('2015-03-13','yyyy-MM-dd')) AS REQ_DATE_DT, count(*) as REQ_REQUESTS_NU, 5 INTO MyTable from \myServer\MyIISlog.log where time >= '12:00:00' and time <='14:59:59' " -i:IISW3C -o:SQL -createTable:OFF -oConnString:"Driver={SQL server native client 10.0};server=MyServer;database=MyDB;uid=MyUser;pwd=MyUser;"
由于这个解决方法,我认为原来的问题是 ODBC x86 和 x64 的问题。
以下是一些对我有帮助的问题:
- Access to Sql Server via ODBC from C# : ERROR [IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
- https://serverfault.com/questions/144116/credentials-work-for-ssms-but-not-odbc-logparser-script