MSSQLSERVER_9001

Van toepassing op:SQL Server

Details

Attribute Value
Productnaam SQL Server
Gebeurtenis-id 9001
Bron van gebeurtenis MSSQLSERVER
Onderdeel SQLEngine
Symbolische naam LOG_NOT_AVAIL
Berichttekst Het logboek voor database '%.*ls' is niet beschikbaar. Controleer het gebeurtenislogboek op gerelateerde foutberichten. Los eventuele fouten op en start de database opnieuw op.

Uitleg

Fout 9001 treedt op wanneer het databaselogboekbestand niet meer beschikbaar is. Wanneer het databaselogboek offline gaat, betekent dit dat er een ernstige fout is opgetreden die voorkomt dat transacties in de database plaatsvinden. Een dergelijke fout vereist dat de database opnieuw wordt opgestart of dat u een back-up herstelt. De fout toont het eindresultaat, maar legt niet uit wat tot deze status heeft geleid. Een ander probleem heeft ertoe geleid dat het logboek niet beschikbaar is en u moet het onderliggende probleem onderzoeken. Hier volgt een voorbeeld van hoe de fout wordt weergegeven in het SQL-foutenlogboek

Error: 9001, Severity: 21, State: 5.
The log for database 'ContosoDb' is not available. Check the operating system error log for related error messages. Resolve any errors and restart the database.

Meestal treedt fout 9001 op samen met andere fouten die specifiekere uitleg geven over de hoofdoorzaak. Voorbeelden hiervan zijn fouten 9002, 3313, 3314, 17204 (toont besturingssysteemfout bij het openen van een bestand), 17053 (toont besturingssysteemfout), 823.

In bepaalde situaties SQL Server probeert de database tijdens runtime opnieuw op te starten en herstel uit te voeren, of kan de database opnieuw worden opgestart (de hele service). Als het automatisch opnieuw opstarten van de database mislukt of niet is opgetreden, kunt u proberen om SQL Server opnieuw op te starten en te zien of een herstel van de database de database online brengt. Zo niet, dan moet u de onderliggende oorzaak oplossen dat het transactielogboek niet beschikbaar is. Dit is een voorbeeld van foutbericht 3422 waarin het opnieuw opstarten van de database wordt weergegeven:

Database ContosoDb was shutdown due to error 9001 in routine 'XdesRMFull::CommitInternal'. Restart for non-snapshot databases will be attempted after all connections to the database are aborted.

Het volgende bericht geeft aan dat er een SQL Server opnieuw opstarten op het punt staat:

Error: 3449, Severity: 21, State: 1.
SQL Server must shut down in order to recover a database (database ID 2). The database is either a user database that could not be shut down or a system database. Restart SQL Server. If the database fails to recover after another startup, repair or restore the database.

Oorzaak

Het transactielogboek van de database kan om verschillende redenen niet meer beschikbaar zijn. Enkele voorbeelden zijn

  • Het transactielogboekbestand bevindt zich op een opslagapparaat dat is mislukt of niet beschikbaar is
  • Een fysiek beschadigd transactielogboekbestand dat leidt tot het niet kunnen schrijven naar of lezen uit het logboekbestand
  • Geen toegang tot het bestand vanwege een mislukte versleuteling/ontsleuteling via Transparent Data Encryption (TDE)
    • Key Vault-service is niet toegankelijk
    • De EKM-providermodule wordt uitgevoerd op een uitzondering, fout of ander probleem waardoor een geslaagde bewerking wordt voorkomen
  • Een volledig transactielogboek vanwege grote transacties, lage schijfruimte of bestandsgroottelimieten die zijn opgelegd aan het transactielogboek. Fout 9002 kan worden gevonden in het SQL Server foutenlogboek vóór 9001. Zie MSSQLSERVER_9002 voor meer informatie

Gebruikersactie

Los eerst de fouten op die voorafgaan aan 9001. Probeer vervolgens het SQL Server exemplaar opnieuw op te starten om de database te herstellen, als dat nog niet is gebeurd.

Fouten in het volledige transactielogboek oplossen

Mogelijk ziet u fout 9002 vóór fout 9001. Hier volgt een voorbeeld:

Error: 9002, Severity: 17, State: 9.
The transaction log for database 'ContosoDb' is full due to 'AVAILABILITY_REPLICA'.
Error: 3314, Severity: 21, State: 3.
During undoing of a logged operation in database 'ContosoDb' (page (1:32573799) if any), an error occurred at log record ID (7672713:36228:159). Typically, the specific failure is logged previously as an error in the operating system error log. Restore the database or file from a backup, or repair the database.
State information for database 'ContosoDb' - Hardened Lsn: '(7672713:38265:1)'    Commit LSN: '(7672712:1683087:46)'    Commit Time: 'Jul  1 2021  5:51AM'
Database ContosoDb was shutdown due to error 3314 in routine 'XdesRMReadWrite::RollbackToLsn'. Restart for non-snapshot databases will be attempted after all connections to the database are aborted.
Always On Availability Groups connection with secondary database terminated for primary database 'ContosoDb' on the availability replica 'PRDAT1ANLYSQL05' with Replica ID: {38a71ff9-f0ee-4737-9255-bb6a73e1c5d5}. This is an informational message only. No user action is required.
Error during rollback. shutting down database (location: 1).

Error: 9001, Severity: 21, State: 5.
The log for database 'ContosoDb' is not available. Check the operating system error log for related error messages. Resolve any errors and restart the database.

Recovery of database 'ContosoDb' (6) is 0% complete (approximately 60466 seconds remain). Phase 2 of 3. This is an informational message only. No user action is required.

In dergelijke gevallen richt u zich op het oplossen van de hoofdoorzaak- een volledig transactielogboek

Zie Troubleshoot a Full Transaction Log (SQL Server Error 9002)

  • Zorg ervoor dat u ruimte in transactielogboek vrij maakt en ontdek waarom deze niet is vrijgemaakt
  • Schijfruimte vrijmaken waar het transactielogboek zich bevindt
  • Bestaand logboekbestand uitvouwen of indien nodig een nieuw logboekbestand toevoegen

Hardware- en besturingssysteemproblemen oplossen en herstellen vanuit een back-up indien nodig

Fout 9001 treedt meestal op wanneer een transactielogboekbestand is beschadigd of als gevolg van problemen met het opslagapparaat waardoor het logboekbestand niet beschikbaar is. Hier volgen twee voorbeelden van fouten die u kunt zien:

Een voorbeeld waarbij het opslagvolume niet beschikbaar was en het besturingssysteem de fout 'Het apparaat is niet gereed' heeft geretourneerd. U kunt andere fouten zien die het gevolg zijn van beschadigde schijven op niet-beschikbaar. Deze voorbeelden bieden context, zodat u kunt begrijpen dat fout 9001 slechts een van de vele symptomen van een groter probleem is.

Error: 823, Severity: 24, State: 2.
The operating system returned error 21(The device is not ready.) to SQL Server during a read at offset 0x000009afde6000 in file 'G:\Data\Files\ContosoDb_4.ldf'. Additional messages in the SQL Server error log and system event log may provide more detail. This is a severe system-level error condition that threatens database integrity and must be corrected immediately. Complete a full database consistency check (DBCC CHECKDB). This error can be caused by many factors; for more information, see SQL Server Books Online.

Error: 9001, Severity: 21, State: 3.
The log for database 'ContosoDb' is not available. Check the event log for related error messages. Resolve any errors and restart the database.

Database ContosoDb was shutdown due to error 9001 in routine 'XdesRMFull::CommitInternal'. Restart for non-snapshot databases will be attempted after all connections to the database are aborted.

Starting up database 'ContosoDb'.
Error: 17204, Severity: 16, State: 1.
FCB::Open failed: Could not open file G:\Data\Files\ContosoDb.mdf for file number 1.  OS error: 3(The system cannot find the path specified.).
Error: 5120, Severity: 16, State: 101.
Unable to open the physical file "G:\Data\Files\ContosoDb.mdf". Operating system error 3: "3(The system cannot find the path specified.)".
Error: 17207, Severity: 16, State: 1.
FileMgr::StartPrimaryDataFiles: Operating system error 2(The system cannot find the file specified.) occurred while creating or opening file 'G:\Data\Files\ContosoDb_0.ndf'. Diagnose and correct the operating system error, and retry the operation.

Hier volgt een ander voorbeeld waarin het besturingssysteem apparaatfouten rapporteert die leiden tot transactielogboek voor meerdere databases die niet toegankelijk zijn:

Error: 17053, Severity: 16, State: 1.
SQLServerLogMgr::LogWriter: Operating system error 1117(The request could not be performed because of an I/O device error.) encountered.


Error: 9001, Severity: 21, State: 4.
The log for database 'ContosoDb' is not available. Check the event log for related error messages. Resolve any errors and restart the database.
Always On Availability Groups data movement for database 'ContosoDb' has been suspended for the following reason: "system" (Source ID 2; Source string: 'SUSPEND_FROM_REDO'). To resume data movement on the database, you will need to resume the database manually. For information about how to resume an availability database, see SQL Server Books Online.


Error: 9001, Severity: 21, State: 16.
The log for database 'tempdb' is not available. Check the event log for related error messages. Resolve any errors and restart the database.
Error: 3449, Severity: 21, State: 1.
SQL Server must shut down in order to recover a database (database ID 2). The database is either a user database that could not be shut down or a system database. Restart SQL Server. If the database fails to recover after another startup, repair or restore the database.

Tegelijkertijd rapporteert het Windows gebeurtenislogboek van het systeem fouten met het opslagapparaat:

Warning       NODEDB1 129     pvscsi     Reset to device, \Device\RaidPort2, was issued.
Warning       NODEDB1 153     Disk       The IO operation at logical block address 0xxxxxxxx for Disk 4 (PDO name: \Device\0000007f) was retried.

Ga als volgende te werk om dergelijke problemen op te lossen:

  • Zorg ervoor dat de opslagvolumes waar de database en logboekbestanden zich bevinden online zijn, dat het volledige I/O-pad van de computer naar de opslag stabiel en betrouwbaar is en dat dit niet leidt tot fysieke bestandsschade.
  • Werk samen met de hardware- en apparaatfabrikant om ervoor te zorgen dat hardware en de configuratie ervan geschikt zijn voor de I/O-vereisten van een databasesysteem. Zorg ervoor dat apparaatstuurprogramma's, firmware, BIOS en andere ondersteunende softwareonderdelen in het I/O-pad up-to-date zijn.
  • DBCC CHECKDB uitvoeren om de consistentie van de database te controleren, als deze online kan worden gebracht na opnieuw opstarten
  • Als de database en logboekbestanden niet intact zijn en als gevolg hiervan de database niet online kan komen, herstelt u de laatst bekende goede back-up van de database
  • Zie MSSQLSERVER-fout 823 en Problemen met databaseconsistentiefouten oplossen die zijn gerapporteerd door DBCC CHECKDB voor suggesties

TDE-versleutelings- of ontsleutelingsfout oplossen

Als u een externe EKM(Extensible Key Management)/HSM-service of provider (Hardware Security Modules) gebruikt, moet u ervoor zorgen dat de modules die door de service worden geleverd, stabiel en bijgewerkt zijn. Neem contact op met de leverancier van de EKM/HSM-provider om eventuele problemen met de modules op te lossen die de versleuteling/ontsleuteling van bestanden uitvoeren.

U ziet mogelijk de volgende symptomen in het SQL-foutenlogboek wanneer dit probleem optreedt:

**Dump thread - spid = 0, EC = 0x0000023FDA293320
***Stack Dump being sent to F:\Data\MSSQL13.INST1\MSSQL\LOG\SQLDump0007.txt
* *******************************************************************************
*
* BEGIN STACK DUMP:
*   11/22/22 12:04:58 spid 1
*
* Crypto Exception
*

00007FFBA0C81791 Module(ntdll+0000000000051791)
Stack Signature for the dump is 0x00000000D3AC1708
External dump process return code 0x20000001.  External dump process returned no errors.

Error: 15466, Severity: 16, State: 28.
An error occurred during decryption.
Error: 9001, Severity: 21, State: 16.
The log for database 'ContosoDb' is not available. Check the event log for related error messages. Resolve any errors and restart the database.