CChkSGFiles.ErrCheckLogs 函数

适用于:Exchange Server 2003 |Exchange Server 2007 |Exchange Server 2010 |2013 Exchange Server

验证 ErrInit 函数中指定的所有数据库文件的日志文件。 已验证的日志是路径中存在的日志,并且具有传递给 ErrInit 的三个字母基本日志文件名称的日志。

Vitual ERRErrCheckLogs 
(
        BOOL  * const pfOnlyUnnecessaryLogsCorrup,
    Const ULONGulFlags = NO_FLAGS
);

参数

pfOnlyUnnecessaryLogsCorrupt

输出参数。 如果 为 true,此参数表示在事务日志文件中发现了错误,但这些错误都是在日志文件中找到的,这些文件不需要使数据库进入干净关闭状态,而不会丢失数据。 仅当 ErrCheckLogs 返回 errSuccess 时,此参数中返回的 true 值才有效。

ulFlags

可选输入参数。 此值保留供将来使用。 此参数传递的值应为 0 (零) 。

返回值

ERR 枚举中的错误代码。

请务必记住,即使日志文件中发现错误,此函数也可以返回 errSuccess 。 因此,当 ErrCheckLogs 返回 errSuccess 时,应用程序还应检查 pfOnlyUnnecessaryLogsCorrupt 返回参数。 如果 ErrCheckLogs 返回 errSuccesspfOnlyUnnecessaryLogsCorrupts为 true,则表示已发现一个或多个错误,但仅在不需要使数据库更新的日志文件中。

备注

必须先调用 ErrCheckDbHeaders 函数,然后才能调用 ErrCheckLogs 函数。

检查 Exchange 数据库事务日志文件时,需要某些日志文件才能使存储组中的数据库处于干净关闭状态,而不会丢失数据,而其他日志文件可能不需要。 ErrCheckLogs 函数确定使数据库处于最新状态所需的最旧日志文件和最新日志文件。

ErrCheckLogs 函数验证指定路径中的所有日志文件,这些文件也具有指定的三个字母基文件名,如传递给 ErrInit 函数一样。

如果在日志文件中未发现任何错误, ErrCheckLogs 将返回 errSuccess

如果发现任何必需的日志文件已损坏, ErrCheckLogs 将返回错误。

如果仅在早于所需最早文件的日志文件中发现错误,则函数将返回 errSuccess 并将 返回参数 pfOnlyUnnecessaryLogCorrupt 设置为 true。 应用程序应识别出某些旧日志文件中存在错误,如果是,它可能会向用户发出警报。 无论如何,这些错误不应影响数据库的整体完整性,也不应影响向前播放日志是否成功。

如果在 ErrCheckLogs 确定需要最早日志之后创建的任何日志文件中发现错误,则函数将返回错误。 即使日志文件错误是在晚于使数据库更新所需文件生成的日志文件中发现的,也会返回此错误。 虽然可以使用标识的日志文件使数据库进入干净关闭状态,但不会应用在后来损坏的日志文件中指定的事务,从而导致数据库还原时数据丢失。

CChkSGFiles 对象确定是否实际检查了向 ErrInit 函数注册的所有日志文件。 如果未成功检查所有日志, ErrTerm 函数将返回错误。

如果在多线程应用程序中使用 CHKSGFILES,则可以在应用程序的多线程部分调用 ErrCheckLogs 函数,但只能为每个 CCheckSGFiles 对象调用一次。

要求

Exchange 2013 仅包含 64 位版本的 CHKSGFILES API。

运行应用程序的帐户必须对要检查的数据库和日志文件具有读取访问权限。