CChkSGFiles.ErrCheckLogs-Funktion
Gilt für: Exchange Server 2003 | Exchange Server 2007 | Exchange Server 2010 | Exchange Server 2013
Überprüft die Protokolldateien aller Datenbankdateien, die in der Funktion ErrInit angegeben wurden. Bei den überprüften Protokollen handelt es sich um protokolle, die im Pfad vorhanden sind und die den namen der drei buchstabenigen Basisprotokolldatei an ErrInit übergeben haben.
Vitual ERRErrCheckLogs
(
BOOL * const pfOnlyUnnecessaryLogsCorrup,
Const ULONGulFlags = NO_FLAGS
);
Parameter
pfOnlyUnnecessaryLogsCorrupt
Output-Parameter. Wenn true, gibt dieser Parameter an, dass Fehler in den Transaktionsprotokolldateien gefunden wurden. Diese Fehler wurden jedoch alle in Protokolldateien gefunden, die nicht erforderlich sind, um die Datenbank ohne Datenverlust in einen sauber herunterfahrenden Zustand zu versetzen. Ein true-Wert, der in diesem Parameter zurückgegeben wird, ist nur gültig, wenn ErrCheckLogserrSuccess zurückgibt.
ulFlags
Optionaler Eingabeparameter. Dieser Wert ist für die zukünftige Verwendung reserviert. Der von diesem Parameter übergebene Wert sollte 0 (null) sein.
Rückgabewert
Ein Fehlercode aus der ERR-Enumeration .
Es ist wichtig, daran zu denken, dass diese Funktion errSuccess zurückgeben kann, auch wenn Fehler in den Protokolldateien gefunden werden. Wenn ErrCheckLogs"errSuccess" zurückgibt, sollte die Anwendung daher auch den Rückgabeparameter pfOnlyUnnecessaryLogsCorrupt überprüfen. Wenn pfOnlyUnnecessaryLogsCorruptstrue ist, wenn ErrCheckLogserrSuccess zurückgibt, gibt dies an, dass mindestens ein Fehler gefunden wurde, jedoch nur in Protokolldateien, die nicht erforderlich sind, um die Datenbank auf den neuesten Stand zu bringen.
Hinweise
Die Funktion ErrCheckDbHeaders muss aufgerufen werden, bevor die ErrCheckLogs-Funktion aufgerufen werden kann.
Wenn Transaktionsprotokolldateien der Exchange-Datenbank überprüft werden, sind einige protokolldateien erforderlich, um die Datenbanken in der Speichergruppe ohne Datenverlust in einen sauber herunterfahrenden Zustand zu versetzen, während andere Protokolldateien möglicherweise nicht benötigt werden. Die ErrCheckLogs-Funktion bestimmt sowohl die ältesten als auch die neuesten Protokolldateien, die erforderlich sind, um die Datenbanken auf den neuesten Stand zu bringen.
Die ErrCheckLogs-Funktion überprüft alle Protokolldateien in den angegebenen Pfaden, die auch den angegebenen dreistelligen Basisdateinamen aufweisen, wie er an die Funktion ErrInit übergeben wird.
Wenn in den Protokolldateien keine Fehler gefunden werden, gibt ErrCheckLogserrSuccess zurück.
Wenn eine der erforderlichen Protokolldateien beschädigt ist, gibt ErrCheckLogs einen Fehler zurück.
Wenn Fehler nur in Protokolldateien gefunden werden, die älter sind als die frühesten erforderlichen, gibt die Funktion errSuccess zurück und legt den Rückgabeparameter pfOnlyUnnecessaryLogCorrupt auf true fest. Die Anwendung sollte erkennen, dass in einigen dieser alten Protokolldateien Fehler vorhanden sind. Wenn dies der Fehler ist, wird der Benutzer möglicherweise benachrichtigt. In jedem Fall sollten sich diese Fehler nicht auf die allgemeine Integrität der Datenbank oder darauf auswirken, ob die Wiedergabe der Protokolle erfolgreich ist.
Wenn fehler in einer Protokolldatei gefunden werden, die nach dem frühesten Protokoll erstellt wurde, das von ErrCheckLogs als erforderlich erachtet wird, gibt die Funktion einen Fehler zurück. Der Fehler wird auch dann zurückgegeben, wenn der Protokolldateifehler in einer Protokolldatei gefunden wurde, die später generiert wurde als das, was erforderlich ist, um die Datenbank auf den neuesten Stand zu bringen. Obwohl es möglich wäre, die Datenbanken mithilfe der identifizierten Protokolldateien in einen sauber herunterzufahren, würden transaktionen, die in den späteren beschädigten Protokolldateien angegeben sind, nicht angewendet, was zu Datenverlusten führt, wenn die Datenbank wiederhergestellt wird.
Das CChkSGFiles-Objekt bestimmt, ob alle mit der Funktion ErrInit registrierten Protokolldateien tatsächlich überprüft wurden. Wenn nicht alle Protokolle erfolgreich überprüft wurden, gibt die ErrTerm-Funktion einen Fehler zurück.
Wenn Sie CHKSGFILES in einer Multithreadanwendung verwenden, können Sie die ErrCheckLogs-Funktion im Multithreadteil der Anwendung aufrufen, aber Sie können sie nur einmal für jedes CCheckSGFiles-Objekt aufrufen.
Anforderungen
Exchange 2013 enthält nur eine 64-Bit-Version der CHKSGFILES-API.
Das Konto, unter dem die Anwendung ausgeführt wird, muss über Lesezugriffsberechtigungen für die datenbank- und protokolldateien verfügen, die überprüft werden sollen.