使用 NSE Index Verification 工具验证 NSE 索引

如何验证 NSE 文本索引是否有效

Net Search Extender(以下简称为 NSE)是在 DB2 中提供全文搜索支持的一个 IBM® DB2® 扩展器。NSE 通过维护其内部文本索引来搜索存储在数据库表格列中的文档。NSE 是使用其文本索引有效地进行索引,而不是在查询时间内按顺序对存储在数据库列中的整个文本文档进行搜索。NSE 索引验证非常重要,因为在全文索引上由顶层应用程序所报告的错误会让人产生误解,这会使得客户为寻求排除问题的方法而在不同的支持团队之间来回奔波。这不必要地耽误了解决生产系统中问题的时间。为了避免此种情况的发生,我们开发了 NSE Index Verification 工具来验证 NSE 索引的有效性和一致性,并检查索引是否无效。

Lalatendu Patro, 软件开发人员, IBM

作者的照片Lalatendu Patro 最开始在 IBM 担任 DB2 Net Search Extender 的开发主管。他曾从事过 DB2 Install URE 和 NSE 开发活动。在加入 IBM 之前,他主要研究针对消息传送协议的嵌入式系统,如 SMS、邮件、ActiveSync,以及针对网关和服务器应用的服务器技术。他目前是 DB2 TextSearch 项目的开发主管。



2012 年 10 月 22 日

免费下载:IBM® DB2® Express-C 10.1 免费版 或者 DB2® 10.1 for Linux®, UNIX®, and Windows® 试用版
下载更多的 IBM 软件试用版,并加入 IBM 软件下载与技术交流群组,参与在线交流。

概述

NSE 借助其内部索引为 DB2 和其他数据库提供全文搜索功能。这些文本索引可进行自动或手动更新(根据配置),同时更新创建这些索引的数据列。

NSE 索引通常是由映射索引和内部文本索引组成。NSE 对每个索引更新操作中的这两种数据结构保持同步。因此,对于标准的操作环境,必须满足下列条件。

  • NSE 映射索引必须正确。
  • 内部文本索引必须正确。
  • 映射索引和内部文本索引必须同步。

当顶层应用程序在 NSE 功能中发现错误时,您应该验证 NSE 索引的一致性以确认错误。NSE Index Verification 工具是专门为验证 NSE 索引的有效性而开发的。该工具可以验证前面提及的三种条件,并告诉您 NSE 内部数据结构是否正确。

该工具可用于 Windows 和基于 UNIX 的平台。在 Windows 平台中,该工具为 checknseindex.exe,而在基于 UNIX 的平台中,该工具为 checknseindex。该工具可在支持版本中的 /<DB2 instance directory</bin/ 目录中找到。目前,仅 DB2 V 9.7 FP6 发行版提供该工具,但是,其他发行版不久也将提供此工具。

该工具的基本语法

checknseindex.exe -p <index directory> -i <index ID>

以下列表显示支持的命令行选项。

  • -i:待验证索引的 ID。
  • -p:索引目录的绝对路径。
  • -v:冗余模式。显示工具输出的详细信息。
  • -deepCheck:验证映射索引和 NSE 内部索引是否正确,并检查两者是否同步。

注:-i 和 -p 是强制参数,而 -v 和 -deepCheck 选项是可选参数。

工具用法

要验证带有 IX373308 索引 ID 的 NSE 索引是否存在于 C:\DOCUME~1\ALLUSE~1\APPLIC~1\IBM\DB2\db2build\LITU\db2ext\indexes\NODE0000\ 目录中,该工具可以运行如下。

checknseindex.exe -p E:\IBM\DB2\db2build\LITU\db2ext\indexes\NODE0000 -i IX373308

带选项参数的工具用法如下。

checknseindex.exe -p E:\IBM\DB2\db2build\LITU\db2ext\indexes\NODE0000 -i IX373308 -v -deepCheck


该工具用法示例

清单 1 显示了当索引无效时的 NSE Index Verification 工具输出。

清单 1. 工具用法示例
checknseindex.exe -p C:\NODE0000 -i lx045010-v -deepCheck
=============================================================
  checknseindex
  ---------
  Net Search Extender index validation utility
=============================================================
 Validating NSE mapping indexes..\.

    Forward mapping data control record : Number of blocks = "3"
    Reverse mapping data control record : Number of blocks = "3"
    Forward mapping index control record : Number of documents =
  "589872187"
    Reverse mapping index control record : Number of documents = 
  "4332"
   CTE5257E  The NSE index validation utility found the NSE mapping index
   to be invalid.  Reason code: "3". Diagnostic data: "".

查找索引 ID 和索引目录的技巧

可通过使用下列查询在数据库中找到索引 ID 和索引目录。

db2 SELECT INDEXSCHEMA,INDEXNAME,INDEXIDENTIFIER, INDEXDIRECTORY from DB2EXT.TTEXTINDEXES

清单 2 显示前一个查询的输出样例(在 UNIX 平台中)。

清单 2. 工具用法示例
INDEXSCHEMA  INDEXNAME   INDEXIDENTIFIER  INDEXDIRECTORY
-----------  ---------   ---------------  ------------------------------------
DB2INST1     INDEXVIEW   IX403809         /home/db2inst1/sqllib/db2ext/indexes

MYSCHEMA     MYTITLEIDX  IX450211         /home/db2inst1/sqllib/db2ext/indexes

DB2INST1     COMMENT     IX050811         /home/db2inst1/sqllib/db2ext/indexes

  3 records(s) selected.

在前一个示例中,带有 INDEXSCHEMA (MYSCHEMA) 和 INDEXNAME (MYTITLEIDX) 的索引 ID 和索引目录如下。

  • 索引 ID IX450211
  • 索引目录是 /home/db2inst1/sqllib/db2ext/indexes

因此,对于前一个示例,检查索引一致性的命令如下。

./checknseindex -p /home/db2inst1/sqllib/db2ext/indexes/NODE0000 -i IX450211


结束语

此工具可用于确认 NSE 内部索引的一致性,验证 NSE 内部结构是否正确,以及 NSE 是否正常运行。此工具将报告任何不一致性问题,为您节省在生产系统中排除任何与索引相关错误的时间,并解决此问题。

参考资料

学习

获得产品和技术

讨论

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Information Management
ArticleID=841775
ArticleTitle=使用 NSE Index Verification 工具验证 NSE 索引
publish-date=10222012