Функция CChkSGFiles.ErrCheckLogs
Область применения: Exchange Server 2003 | | Exchange Server 2007 г. | Exchange Server 2010 г. Exchange Server 2013 г.
Проверяет файлы журнала всех файлов базы данных, указанных в функции ErrInit . Проверенные журналы — это журналы, которые существуют в пути и имеют трехбуквенный базовый файл журнала, переданный в ErrInit.
Vitual ERRErrCheckLogs
(
BOOL * const pfOnlyUnnecessaryLogsCorrup,
Const ULONGulFlags = NO_FLAGS
);
Параметры
pfOnlyUnnecessaryLogsCorrupt
Выходной параметр. Если задано значение true, этот параметр указывает, что в файлах журнала транзакций обнаружены ошибки, но все эти ошибки были обнаружены в файлах журнала, которые не нужны для того, чтобы привести базу данных в состояние чистого завершения работы без потери данных. Значение true , возвращаемое в этом параметре, допустимо только в том случае, если ErrCheckLogs возвращает errSuccess.
ulFlags
Необязательный входной параметр. Это значение зарезервировано для использования в будущем. Значение, передаваемое этим параметром, должно быть равно 0 (ноль).
Возвращаемое значение
Код ошибки из перечисления ERR .
Важно помнить, что эта функция может возвращать ошибку errSuccess , даже если в файлах журнала обнаружены ошибки. Поэтому, когда ErrCheckLogs возвращает errSuccess, приложение также должно проверить возвращаемый параметр pfOnlyUnnecessaryLogsCorrupt . Если pfOnlyUnnecessaryLogsCorrupts имеет значение true , когда ErrCheckLogs возвращает errSuccess, это означает, что обнаружена одна или несколько ошибок, но только в файлах журнала, которые не требуются для обновления базы данных.
Замечания
Перед вызовом функции ErrCheckDbHeaders необходимо вызвать функцию ErrCheckLogs .
При проверке файлов журнала транзакций базы данных Exchange некоторые файлы журналов потребуются, чтобы привести базы данных в группе хранения в состояние чистого завершения работы без потери данных, тогда как другие файлы журнала могут не потребоваться. Функция ErrCheckLogs определяет как самые старые, так и новейшие файлы журналов, необходимые для обновления баз данных.
Функция ErrCheckLogs проверяет все файлы журнала по указанным путям, которые также имеют указанное базовое имя файла из трех букв, передаваемые функции ErrInit .
Если в файлах журнала не обнаружены ошибки, ErrCheckLogs возвращает errSuccess.
Если какой-либо из необходимых файлов журнала найден поврежденным, ErrCheckLogs возвращает ошибку.
Если ошибки обнаруживаются только в файлах журнала, которые старше, чем самые ранние необходимые, функция возвращает errSuccess и задает для возвращаемого параметра pfOnlyUnnecessaryLogCorruptзначение true. Приложение должно распознавать наличие ошибок в некоторых из этих старых файлов журналов, и если да, оно, возможно, оповещает пользователя. В любом случае эти ошибки не должны влиять на общую целостность базы данных или влиять на успешное воспроизведение журналов.
При обнаружении ошибок в любом файле журнала, созданном после самого раннего журнала, необходимого для ErrCheckLogs , функция возвращает ошибку. Эта ошибка будет возвращена, даже если ошибка файла журнала была обнаружена в файле журнала, созданном позже, чем необходимо для обновления базы данных. Хотя можно было бы привести базы данных в состояние чистого завершения работы с помощью определенных файлов журнала, транзакции, указанные в более поздних поврежденных файлах журнала, не будут применяться, что приведет к потере данных при восстановлении базы данных.
Объект CChkSGFiles определяет, были ли проверены все файлы журнала, зарегистрированные с помощью функции ErrInit . Если не все журналы не были успешно проверены, функция ErrTerm возвращает ошибку.
Если вы используете CHKSGFILES в многопотоковом приложении, вы можете вызвать функцию ErrCheckLogs в многопоточной части приложения, но вызвать ее можно только один раз для каждого объекта CCheckSGFiles .
Требования
Exchange 2013 включает только 64-разрядную версию API CHKSGFILES.
Учетная запись, в котором выполняется приложение, должна иметь разрешения на доступ на чтение к проверяемой базе данных и файлам журнала.