Isinteg

 

适用于: Exchange Server 2007 SP3, Exchange Server 2007 SP2, Exchange Server 2007 SP1, Exchange Server 2007

上一次修改主题: 2009-03-17

信息存储完整性检查程序 (Isinteg.exe) 在应用程序级别查找并消除公用文件夹数据库和邮箱数据库中的错误。这些错误可能会阻止信息存储的启动或者阻止用户登录,以及阻止用户接收、打开或删除邮件。Isinteg 并非作为日常信息存储维护的一部分使用;提供该工具是为了帮助进行灾难恢复和解决其他参照完整性问题。

Isinteg 通常在 Eseutil 修复操作后使用。Eseutil 修复数据库页级别的数据。Isinteg 修复数据库应用程序级别的数据。较之页级别,应用程序级别位于一个更高的层。

可以使用 Isinteg 来检查与邮箱、文件夹、邮件和附件相关的信息,以确定问题是否存在于这些组件中。而且,通过 -fix 选项,还可以使用 Isinteg 来修复这些问题。

注意,Isinteg 检查的应用程序级别信息包含一些指针,用于指向数据在数据库中的位置。

使用

在命令提示符下运行 Isinteg 时,将会显示以下头信息。无论是否在 Isinteg 命令行中指定一个选项,此头信息都会显示。

Microsoft (r) Exchange Server 信息存储完整性检查程序版本<版本>

Copyright (c) Microsoft Corporation 1986-2000 Microsoft Corp。保留所有权利。

Isinteg 支持以下选项。在将 Isinteg 与 -? 选项一起使用时,将会显示这些选项。

语法:

isinteg -s ServerName [-fix] [-verbose] [-l logfilename] -test testname[[, testname]...]

-s 服务器名

-fix 检查和修复(默认 - 仅检查)

-verbose 详细汇报

-l filename 记录文件名(默认 - .\isinteg.pri/pub)

-t refdblocation(默认 - 存储位置)

-test testname...

folder message aclitem mailbox(pri only) delfld acllist

rcvfld(pri only) timedev rowcounts attach morefld ooflist(pri only)

global searchq dlvrto replstate(pub only)

peruser artidx(pub only) search newsfeed(pub only) dumpsterprops

Ref count tests:msgref smgsoftref attachref acllistref aclitemref

newsfeedref(pub only) fldrcv(pri only) fldsub dumpsterref

Groups tests:allfoldertests allacltests

isinteg -dump [-l logfilename] (verbose dump of store data)

命令行选项

要运行 Isinteg,请键入 isinteg -s <服务器名> -test <选项>,其中<选项>表示以下一个或多个命令行选项。

选项 说明

-?

此选项显示可用选项列表。此选项并不会运行 Isinteg。

-s ServerName

此选项用于指定托管要测试的数据库的服务器名称。

-fix

此选项用于测试和更正指定的信息存储中的错误。因此,最好仅在 Microsoft 客户支持服务代表指导时使用。

-verbose

此选项会使 Isinteg 在其操作过程中生成详细信息。

-l filename

此选项用于指定日志文件的名称。日志文件有以下默认路径:

  • 对于专用数据库:.\isinteg.pri

  • 对于公用数据库:.\isinteg.pub

-t refDBLocation

此选项用于指定 Isinteg 在其运行时创建的临时引用数据库位置。可以将该数据库的位置指定在其他硬盘驱动器上,以在 Isinteg 运行期间提升性能。

-test TestName [[TestName]…]

此选项用于指定一个或多个要执行的测试。

-dump [-l logfilename]

此选项用于生成一个详细的信息存储数据转储。

Isinteg 测试

在运行 Isinteg 以测试 Microsoft Exchange Server 2007 中的数据库时,必须指定托管该数据库的服务器。例如,键入 isinteg -s <服务器名> -test allfoldertests

由于参照完整性检查操作耗费资源的性质,对于一个大型信息存储而言,Isinteg 可能需要运行很长一段时间。因此,我们建议不要运行一套完整的测试,而只运行与所遇到的数据库问题相对应的一个特定测试系列。我们建议您在 Microsoft 客户支持服务代表的监控下运行测试。

note注意:
如果必须运行多个测试,则将测试合并为一个 Isinteg 操作比运行多个单一的测试更快。例如,运行 isinteg -s <服务器名> -test folder, message 比依次运行 isinteg -s <服务器名> -test folderisinteg -s <ServerName> -test message 更快。

下表介绍了可用的数据库测试。

测试 说明 测试长度依存关系

aclitemref

验证访问控制列表项目的引用计数。

信息存储中的文件夹数目和每个访问控制列表中的成员数目。

acllist

检查文件夹并验证访问控制列表。

信息存储中的文件夹数目。

acllistref

验证访问控制列表引用计数。

信息存储中的文件夹数目。

allacltests

合并 acllist、acllistref 和 aclitemref 测试。

查看每个子集的说明。

allfoldertests

合并文件夹、fldsub 和搜索测试。

查看每个子集的说明。

artidx(仅公用存储)

测试网络新闻传输协议 (NNTP) 文章索引的一致性。

NNTP 邮件和文件夹的数目。

attach

验证所有附件的属性。

信息存储中的附件数目。

attachref

验证附件引用计数。

信息存储中的邮件和附件数目。

deleteextracolumns

删除所有缓存的索引和一些“额外”列。

信息存储中的文件夹数目。

delfld

检查已删除的文件夹,验证属性,并累加引用计数。

已删除文件夹的数目和每个文件夹中的邮件数目。

dumpsterref

合并 msgref 和 msgsoftref 测试。此外,它还会检查可恢复邮件的邮件计数和“恢复已删除邮件”的可恢复邮件大小。

查看 msgref 和 msgsoftref 说明。

dumpsterprops

运行 dumpsterref 测试并验证文件夹表中的一些必需列是否存在。

查看 dumpsterref 说明。

fldrcv(仅专用存储)

验证特殊系统文件夹的计数,包括限制、类别、收件箱、发件箱、已发送邮件、已删除邮件、查找程序、视图、一般视图、日程安排和快捷方式。

信息存储中的邮箱和文件夹数目。

fldsub

验证子文件夹的数目。同时验证可用于“恢复已删除邮件”的可恢复子文件夹数目。

信息存储中的文件夹数目。

文件夹

检查文件夹表并验证属性。检查邮件表,验证属性并累加引用计数。

信息存储中的文件夹和邮件数目。

邮箱(仅专用存储)

对于每个邮箱,检查文件夹、已删除文件夹和表。同时验证属性和文件夹表中的特殊文件夹(例如,收件箱、发件箱、已发出邮件、已删除邮件和其他文件夹),并检查其大小。

信息存储中的邮箱、文件夹、已删除文件夹和邮件的数目。

邮件

检查邮件表并验证邮件表的属性。

信息存储中的邮件数目。

morefld

检查搜索链接(搜索测试的子集)。在“修复”模式下,删除所有缓存的分类和限制表。

缓存分类总数目和总的限制表。

msgref

验证邮件中的邮件引用计数。

信息存储中的文件夹、邮件和附件数目。

msgsoftref

为邮件表中标记为“恢复已删除邮件”的邮件验证邮件引用计数。

信息存储中的文件夹和邮件数目。

namedprop

检查文件夹、邮件和附件表,并验证命名属性。

信息存储中的文件夹、邮件和附件数目。

newsfeed(仅公用存储)

验证新闻复制表属性,包括权限。

信息存储中的文件夹数目。

newsfeedref(仅公用存储)

验证新闻复制引用计数。

信息存储中的文件夹数目。

oofhist(仅专用存储)

为所有用户验证外出历史信息。

外出规则集数目。

peruser

验证每个用户已读/未读信息。

用户数目。

rcvfld(仅专用存储)

检查带文件夹表的接收文件夹。

信息存储中的接收文件夹数目。

replstate

清理失去同步的公用文件夹复制列表,并从复制状态表中删除所有未引用的远程服务器行。

复制状态表中的条目数目。

rowcounts

验证所用表的行数。

信息存储中的文件夹、邮件和附件数目。

搜索

验证搜索链接。

信息存储中的文件夹数目。

timedev

计算计时事件数目(维护、定期任务等等)。

计时事件数目。

运行 Isinteg

在运行 Isinteg 时,它将会检查 Microsoft Exchange 信息存储服务 (MSExchangeIS) 是否启动。如果 Microsoft Exchange 信息存储服务未启动,您将会收到以下信息并且 Isinteg 会停止:

错误:无法从服务器获取数据库状态。原因可能是服务器名称错误或网络问题。Isinteg 立即退出。

如果启动了 Microsoft Exchange 信息存储服务并且装入了目标数据库,您将会收到以下信息并且 Isinteg 会停止:

<服务器名>服务器数据库

仅可以检查标记为“脱机”的数据库

索引 状态 数据库名称

存储组名:First Storage Group

1 联机 邮箱数据库

存储组名:Second Storage Group

2 联机 公用文件夹数据库

输入一个数字以选择一个数据库,或按“返回”退出。

如果 Isinteg 与 -fix 选项一起运行,数据库计数将被更新为由 Isinteg 确定的真值。“命名到 ID 或命名属性”清理是执行的另外一次检查。此检查将会删除不使用的命名属性。

Isinteg 会检查下列各表:

  • ACL 列表

  • ACL 成员

  • 附件

  • 交叉引用

  • 已删除文件夹

  • 已删除收件人

  • DeliveredTo

  • 文件夹

  • Global

  • 邮箱

  • 邮件

  • 杂项

  • Oof 历史记录

  • 每个用户阅读

  • PropsIn 内容

  • ReplidMap

  • 特殊文件夹

  • 计时事件

Isinteg 通过扫描数据库和检查所有引用来验证信息存储数据库的参照完整性。在此过程中,Isinteg 会创建一个临时数据库来存储引用计数。在此检查过程最后,Isinteg 会比较临时数据库中搜集的引用计数和信息存储数据库中的计数。如果存在错误并且指定了 -fix 选项,Isinteg 将会对信息存储数据库进行更正。

默认情况下,Isinteg 创建的临时数据库与测试的信息存储数据库位于同一个文件夹中。可以为临时数据库指定其他的位置。在 Isinteg 操作结束后,无论此临时数据库位于本地信息存储文件夹中,还是在其他位置,Isinteg 都会将其删除。

在“测试”模式下运行 Isinteg 时,对于公用信息存储和专用信息存储,Isinteg 必须分开运行。

默认情况下,Isinteg 错误将会在命令提示符窗口中显示,并被保存到一个日志文件中。我们建议您保存此日志文件或 Isinteg 创建的文件。这是为了便于在遇到问题求助时,Microsoft 客户支持服务代表可以检查这些日志文件。

-fix 选项指示 Isinteg 修复所有找到的问题。Isinteg 会在一个日志文件中记录所有修复的详细信息。如果未在 Isinteg 命令中指定一个日志文件名,Isinteg 将会创建一个名为 Isinteg.pri 或 Isinteg.pub 的日志文件,具体取决于是针对专用信息存储还是针对公用信息存储来运行 Isinteg。

note注意:
我们建议您仅在 Microsoft 客户支持服务代表的监控下运行 -fix 选项。

使用方案

通常,如果遇到 Exchange 信息存储方面的问题,将不再装入信息存储,并且 Exchange 将会在应用程序日志中生成条目。可以使用此信息来帮助确定运行哪个或哪些 Isinteg 测试以解决或修复数据库中的参照完整性问题。

下表提供了各种事件 ID 和消息,并附有特定 Isinteg 选项,可以用来解决特定的问题。

important要点:
尽管此表中显示的事件可能是由损坏的信息存储造成的,但也不总是这种情况。这些事件也可能是由其他问题造成的,例如 Exchange 代码问题或与 Exchange 集成的第三方程序中的问题。因此,如果特定的 Isinteg 操作无法解决此问题,可以与 Microsoft 客户支持服务部门联系,获取其他解决方法。
事件 ID 说明 Isinteg 选项

1025

发生了一个错误。功能名称或问题描述:EcGetRestriction。错误:0x57a

-test search

1186

在执行升级时出现数据库不一致的情况 (EcSetSpecialRights/ACLID)。

-test acllistref

1186

在执行升级时出现数据库不一致的情况 (2.1A/AMIDRefCt)。

在执行升级时出现数据库不一致的情况 (2.1A/AMIDRef)。

在执行升级时出现数据库不一致的情况 (2.1B/AMID)。

在执行升级时出现数据库不一致的情况 (2.2D/AMID)。

-test aclitemref

1186

在执行升级时出现数据库不一致的情况 (2.1A/ACLID)。

在执行升级时出现数据库不一致的情况 (2.1B/ACLID)。

在执行升级时出现数据库不一致的情况 (2.2D/ACLID)。

在执行升级时出现数据库不一致的情况 (2.1A/ACLRef)。

-test acllistref

1186

在执行升级时出现数据库不一致的情况 (2.1B/cnset)。

-test aclitemref

1198

在升级到版本 2.19 时出现数据库不一致的情况。

FID:<值>

MID:<值>

INID:<值>

在升级到版本 2.2a 时出现数据库不一致的情况。

FID:<值>

MID:<值>

INID:<值>

-test folder

7200

由于错误代码<值>,后台线程 FDsWaitTask 停止。

-test mailbox

7200

由于错误代码<值>,后台线程 EcFlushInTransitUserMail 停止。

-test folder

7201

后台线程 FDoMaintenance 遇到一个错误。错误代码<值>。

-test folder,artidx

7201

后台线程 FDoPeriodic 遇到一个错误。错误代码<值>。

-test rowcounts, dumpsterref

8500

无法将邮箱移动到<邮箱名称>。

打开附件时出现错误。

内部父文件夹 ID:<值>,父邮件 ID:<值>;错误代码:<值>。

-test message

8501

无法将邮箱移动到<邮箱名称>。

打开附件时出现错误。

父文件夹名称:<名称>,父邮件主题:<主题>;错误代码:<值>。

-test message

8502

无法将邮箱移动到<邮箱名称>。

打开附加邮件时出现错误。

内部父文件夹 ID:<值>,父邮件 ID:<值>;错误代码:<值>。

-test message

8503

无法将邮箱移动到<邮箱名称>。

打开附加邮件时出现错误。

父文件夹名称:<值>,父邮件主题:<值>;错误代码:<值>。

-test message*

8504

无法将邮箱移动到<邮箱名称>。

获取文件夹属性时出现问题。

内部文件夹 ID:<值>;错误代码:<值>。

-test folder*

8505

无法将邮箱移动到<邮箱名称>。

获取文件夹属性时出现问题。

文件夹名:<值>;错误代码:<值>。

-test folder*

8506

无法将邮箱移动到<邮箱名称>。

获取邮件属性时出现问题。

内部父文件夹 ID:<值>;邮件 ID:<值>;错误代码:<值>。

-test folder,message*

8507

无法将邮箱移动到<邮箱名称>。

获取邮件属性时出现问题。

父文件夹名称:<值>;邮件主题:<值> 错误代码:<值>。

-test folder,message*

8508

无法将邮箱移动到<邮箱名称>。

获取附件属性时出现问题。

内部父文件夹 ID:<值>,父邮件 ID:<值>;错误代码:<值>。

-test attach

8509

无法将邮箱移动到<邮箱名称>。

获取附件属性时出现问题。

父文件夹名称:<值>,父邮件主题:<值>;错误代码:<值>。

-test attach

* 造成此消息显示的问题可能与信息存储的完整性无关。

详细信息

有关可以为 Microsoft Exchange Server 2007 的灾难恢复提供帮助的其他工具的详细信息,请参阅灾难恢复工具和向导

有关 Isinteg 程序的详细信息,请参阅 Microsoft 知识库文章 301460 Isinteg.exe 工具的 Exchange 命令行参数