配置 OLE DB 日志

以下参数控制 OLE DB 客户端驱动程序如何记录客户端和服务器之间的消息。要设置它们,请编辑 Windows 注册表中 HKEY_LOCAL_MACHINE\SOFTWARE\Vertica\OLEDB\Driver 下的密钥:

  • LogLevel:在客户端和服务器之间记录的消息的严重性。有效值包括:

    • 0:无日志记录

    • 1:严重错误

    • 2:错误

    • 3:警告

    • 4:信息

    • 5:调试

    • 6:跟踪(所有消息)

    为此设置指定的值设置了要记录的消息的最低严重性。例如,如果将 LogLevel 设置为 3,则表示客户端驱动程序将记录所有警告、错误和严重错误。

  • LogPath:用于存储日志文件的目录的绝对路径。例如: /var/log/verticaoledb

将 OLE DB 日志条目转移到 ETW

在 Windows 客户端上,您可以指示 Vertica 将 OLE DB 日志条目发送到 Windows 事件跟踪 (ETW)。设置后,OLE DB 日志条目将出现在 Windows 事件查看器中。要使用 ETW:

  • 将驱动程序注册为 Windows 事件日志提供程序,并启用日志。

  • 通过将字符串值添加到 Windows 注册表来激活 ETW。

  • 了解 Vertica 如何压缩 Windows 事件查看器的日志级别。

  • 了解在事件查看器中的何处可以找到日志。

  • 了解日志条目中事件 ID 的含义。

将 OLE DB 驱动程序注册为 Windows 事件日志提供程序

要使用 ETW 日志记录,您必须将 OLE DB 驱动程序注册为 Windows 事件日志提供程序。您可以选择注册 32 位或 64 位驱动程序。注册驱动程序后,您必须启用日志。

  1. 以管理员身份打开命令提示符窗口,或使用“以管理员身份运行 (Run as Administrator)”选项启动命令提示符。

  2. 运行命令 wevtutil im 以注册 32 位或 64 位版本的驱动程序。

    1. 对于 64 位 OLE DB 驱动程序,运行:

      wevtutil im "c:\Program Files\Vertica Systems\OLEDB64\lib\VerticaOLEDB64.man"
      /resourceFilePath:"c:\Program Files\Vertica Systems\OLEDB64\lib\vertica_8.1_oledb.dll"
      /messageFilePath:"c:\Program Files\Vertica Systems\OLEDB64\lib\vertica_8.1_oledb.dll"
      
    2. 对于 32 位 OLE DB 驱动程序,运行:

      wevtutil im "c:\Program Files (x86)\Vertica Systems\OLEDB32\lib\VerticaOLEDB32.man"
      /resourceFilePath:"c:\Program Files (x86)\Vertica Systems\OLEDB32\lib\vertica_8.1_oledb.dll"
      /messageFilePath:"c:\Program Files (x86)\Vertica Systems\OLEDB32\lib\vertica_8.1_oledb.dll"
      
  3. 运行命令 wevtutil sl 以启用日志。

    1. 对于 64 位 OLE DB 驱动程序日志,运行:

      wevtutil sl VerticaOLEDB64/e:true
      
    2. 对于 32 位 ODBC 驱动程序日志,运行:

      wevtutil sl VerticaOLEDB32/e:true
      

添加字符串值 LogType

默认情况下,Vertica 不会将 OLE DB 日志条目发送到 ETW。要激活 ETW,请将字符串 LogType 添加到 Windows 注册表,并将其值设置为 ETW

  1. 通过在 Windows“运行 (Run)”命令框中键入 regedit.exe 来启动注册表编辑器。

  2. 在注册表中,导航到:HKEY_LOCAL_MACHINE\SOFTWARE\Vertica\OLEDB\Driver

  3. 注册表编辑器 (Registry Editor) 窗口的右窗格中右键单击。

  4. 选择新建 (New),然后选择字符串值 (String Value)

  5. 将字符串值的名称从 New Value #1 更改为 LogType

  6. 双击新的 LogType 条目。当系统提示输入新值时,输入 ETW

  7. 退出注册表编辑器。

默认情况下,ETW 设置为 off。激活 ETW 后,您可以稍后通过从 LogType 字符串中清除值 ETW 将其关闭。

虽然 LogLevel 的范围从 0 到 6,但对于 Windows 事件查看器,此范围被压缩到 0 到 3 的范围。

以下示例显示了在 Windows 事件查看器中显示时如何转换 LogLevel。

  • LogLevel 为 5 将致命错误、错误、警告、信息和调试日志级别条目作为级别 4(信息)发送到事件查看器。

  • LogLevel 为 6 将致命错误、错误、警告、调试和跟踪日志级别条目作为级别 4 发送到事件查看器。

在事件查看器中查找日志

  1. 启动 Windows 事件查看器

  2. 事件查看器(本地) (Event Viewer (Local)),展开应用程序和服务日志 (Applications and Services Logs)

  3. 展开包含您要查看的日志的文件夹(例如 VerticaOLEDB64)。

  4. 选择文件夹下的 Vertica ODBC 日志。条目出现在右窗格中。

  5. 请注意事件 ID (Event ID) 字段中的值。每个事件日志条目包含四个事件 ID 之一:

    • 0:信息性(调试、信息和跟踪事件)

    • 1:错误

    • 2:严重事件

    • 3:警告