Für die angegebene Datenbank ist ein E/A-Fehler im Zusammenhang mit der Datenintegrität aufgetreten. Der Protokoll- oder der Datenteil der Datenbank könnte beschädigt sein. SQL Server hat die Verfügbarkeit des Protokolls für diese Datenbank aufgehoben, um weitere Probleme mit der Datenintegrität zu verhindern. Der E/A-Fehler, der zur 9001-Meldung geführt hat, sollte im SQL Server-Fehlerprotokoll und/oder den Windows-Ereignisprotokollen gemeldet werden.
Dieser Fehler könnte aufgrund eines Fehlers in einem ROLLBACK-Vorgang auftreten. Unter seltenen Umständen könnte beim ROLLBACK-Vorgang ein Fehler auftreten, weil der Server über keinen Arbeitsspeicher, keine Pufferseiten oder keinen Protokollspeicherplatz mehr verfügt.
HARDWAREFEHLER
Führen Sie eine Hardwarediagnose aus, und beheben Sie alle erkannten Probleme. Überprüfen Sie außerdem die Microsoft Windows NT-System- und -Anwendungsprotokolle und das SQL Server-Fehlerprotokoll, um zu ermitteln, ob der Fehler durch einen Hardwarefehler verursacht wurde. Beheben Sie alle hardwarebedingten Probleme.
Wenn Probleme in Bezug auf inkonsistente Daten dauerhaft auftreten, sollten Sie versuchen, verschiedene Hardwarekomponenten auszutauschen, um das Problem einzugrenzen. Stellen Sie sicher, dass der Schreibcache auf dem Datenträgercontroller im System nicht aktiviert ist. Wenn Sie vermuten, dass dies der Fall ist, wenden Sie sich an Ihren Hardwarehersteller.
Möglicherweise ist es auch hilfreich, auf ein vollständig neues Hardwaresystem umzusteigen und dabei die Laufwerke neu zu formatieren sowie das Betriebssystem neu zu installieren.
WIEDERHERSTELLEN AUS EINER SICHERUNG
Wenn das Problem nicht hardwarebedingt ist und eine bekanntermaßen fehlerfreie Sicherung zur Verfügung steht, stellen Sie die Datenbank mithilfe der Sicherung wieder her.
DBCC CHECKDB
Wenn keine fehlerfreie Sicherung verfügbar ist, führen Sie DBCC CHECKDB ohne REPAIR-Klausel aus, um den Umfang der Beschädigung zu ermitteln. Von DBCC CHECKDB wird eine zu verwendende REPAIR-Klausel empfohlen. Führen Sie DBCC CHECKDB anschließend mit der passenden REPAIR-Klausel aus, um die Beschädigung zu beheben.
VORSICHT: Wenn Sie sich nicht sicher sind, wie sich DBCC CHECKDB mit Reparaturklausel auf Ihre Daten auswirkt, wenden Sie sich an Ihren primären Anbieter für technischen Support, bevor Sie diese Anweisung ausführen.
Wenn das Ausführen von DBCC CHECKDB mit einer der REPAIR-Klauseln das Problem nicht behebt, wenden Sie sich an Ihren primären Anbieter für technischen Support.
Name | Beschreibung | Standardwert |
Aktiviert | Aktiviert oder deaktiviert den Workflow. | Ja |
Priorität | Definiert die Warnungspriorität. | 1 |
Schweregrad | Definiert den Warnungsschweregrad. | 1 |
Target | Microsoft.SQLServer.2012.DBEngine | ||
Category | EventCollection | ||
Enabled | True | ||
Event_ID | 9001 | ||
Event Source | $Target/Property[Type="SQL!Microsoft.SQLServer.DBEngine"]/ServiceName$ | ||
Alert Generate | True | ||
Alert Severity | Warning | ||
Alert Priority | Normal | ||
Remotable | True | ||
Alert Message |
| ||
Event Log | Application | ||
Comment | Mom2012ID='{C6F11969-6288-411D-A4B1-23C7B08B91F5}';MOM2012GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74} |
ID | Module Type | TypeId | RunAs |
---|---|---|---|
_F6DA1507_12AF_11D3_AB21_00A0C98620CE_ | DataSource | Microsoft.Windows.EventProvider | Microsoft.SQLServer.SQLDefaultAccount |
GenerateAlert | WriteAction | System.Health.GenerateAlert | Default |
<Rule ID="Microsoft.SQLServer.2012.The_log_for_database_is_not_available_1_5_Rule" Target="SQL2012Core!Microsoft.SQLServer.2012.DBEngine" Enabled="true" ConfirmDelivery="true" Remotable="true" Comment="Mom2012ID='{C6F11969-6288-411D-A4B1-23C7B08B91F5}';MOM2012GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74}">
<Category>EventCollection</Category>
<DataSources>
<DataSource ID="_F6DA1507_12AF_11D3_AB21_00A0C98620CE_" Comment="{F6DA1507-12AF-11D3-AB21-00A0C98620CE}" TypeID="Windows!Microsoft.Windows.EventProvider" RunAs="SQL!Microsoft.SQLServer.SQLDefaultAccount">
<ComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<LogName>Application</LogName>
<Expression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>$Target/Property[Type="SQL!Microsoft.SQLServer.DBEngine"]/ServiceName$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>9001</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</Expression>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="GenerateAlert" TypeID="SystemHealth!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>1</Severity>
<AlertMessageId>$MPElement[Name="Microsoft.SQLServer.2012.The_log_for_database_is_not_available_1_5_Rule.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>