Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:SQL Server
Podrobnosti
| Attribute | Value |
|---|---|
| Název produktu | SQL Server |
| ID události | 9001 |
| Zdroj událostí | MSSQLSERVER |
| Součást | SQLEngine |
| Symbolický název | LOG_NOT_AVAIL |
| Text zprávy | Záznam databáze%.*ls není k dispozici. V protokolu událostí zkontrolujte související chybové zprávy. Vyřešte případné chyby a restartujte databázi. |
Vysvětlení
K chybě 9001 dochází v případě, že soubor protokolu databáze přestane být k dispozici. Když databázový protokol přejde do režimu offline, znamená to, že došlo k závažné chybě, která brání transakcím v databázi. Takové selhání vyžaduje restartování databáze nebo obnovení zálohy. Chyba zobrazuje konečný výsledek, ale nevysvětluje, co vedlo k tomuto stavu. Některé další problémy způsobily, že protokol není dostupný a musíte prozkoumat základní problém. Tady je příklad zobrazení chyby v protokolu chyb SQL.
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.
Běžně dochází k chybě 9001 společně s dalšími chybami, které poskytují konkrétnější vysvětlení původní příčiny. Mezi příklady patří chyby 9002, 3313, 3314, 17204 (zobrazuje chybu operačního systému při přístupu k souboru), 17053 (zobrazuje se chyba operačního systému), 823.
V některých situacích SQL Server se pokusí restartovat databázi za běhu a provést obnovení, nebo se může restartovat sám (celá služba). Pokud automatické restartování databáze není úspěšné nebo nenastane, můžete se pokusit restartovat SQL Server a zjistit, jestli obnovení databáze úspěšně přenese databázi do režimu online. Pokud ne, musíte vyřešit základní příčinu nedostupného transakčního protokolu. Toto je příklad chybové zprávy 3422, která ukazuje restartování databáze:
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.
Následující zpráva indikuje, že k restartování SQL Server pravděpodobně dojde:
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.
Příčina
Transakční protokol databáze může být z mnoha důvodů nedostupný. Mezi příklady patří:
- Soubor transakčního protokolu se nachází v zařízení úložiště, které selhalo nebo není k dispozici.
- Fyzicky poškozený soubor transakčního protokolu, který vede k nemožnosti zápisu nebo čtení ze souboru protokolu
- Nemožnost získat přístup k souboru kvůli selhání šifrování nebo dešifrování prostřednictvím transparentní šifrování dat (TDE)
- Služba Key Vault není přístupná
- Modul zprostředkovatele EKM narazí na výjimku, chybu nebo jiný problém, který brání úspěšné operaci.
- Úplný transakční protokol z důvodu velkých transakcí, nedostatku místa na disku nebo omezení velikosti souboru uložené v transakčním protokolu. Chyba 9002 se může objevit v protokolu chyb SQL Server před 9001. Další informace najdete v tématu MSSQLSERVER_9002
Akce uživatele
Vyřešte nejprve chyby, které předchází verzi 9001. Potom se pokuste restartovat instanci SQL Server, aby se databáze obnovila, pokud k tomu ještě nedošlo.
Řešení chyb úplného protokolu transakcí
Může se zobrazit chyba 9002 před chybou 9001. Tady je příklad:
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.
V takovýchpřípadechch
Pokud chcete vyřešit úplný transakční protokol, přečtěte si téma Řešení úplného transakčního protokolu (SQL Server chyba 9002)
- Ujistěte se, že uvolníte místo v transakčním protokolu a zjistíte, proč nebyl uvolněn.
- Uvolnění místa na disku, kde se nachází transakční protokol
- Rozbalte existující soubor protokolu nebo v některých případech přidejte nový soubor.
V případě potřeby vyřešte problémy s hardwarem a operačním systémem a obnovte ho ze zálohy.
K chybě 9001 obvykle dochází, když je poškozen soubor transakčního protokolu nebo kvůli problémům s úložným zařízením, které znepřístupní soubor protokolu. Tady jsou dva příklady chyb, které můžete pozorovat:
Příklad, kdy se svazek úložiště stal nedostupným a operační systém vrátil chybu Zařízení není připravené. Zobrazí se další chyby, které způsobily poškození disků v nedostupnosti. Tyto příklady poskytují kontext, abyste pochopili, že chyba 9001 je jen jedním z mnoha příznaků většího problému.
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.
Tady je další příklad, kdy operační systém hlásí chyby zařízení, které vedou k transakčnímu protokolu, aby více databází bylo nedostupné:
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.
Protokol událostí systému současně hlásí chyby zařízení úložiště Windows:
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.
Řešení těchto problémů:
- Ujistěte se, že svazky úložiště, ve kterých se nachází databáze a soubory protokolu, jsou online, že celá cesta vstupně-výstupních operací z počítače do úložiště je stabilní a spolehlivá a že nedojde k poškození fyzického souboru.
- Ve spolupráci s výrobcem hardwaru a zařízení se ujistěte, že hardware a jeho konfigurace jsou vhodné pro vstupně-výstupní požadavky databázového systému. Ujistěte se, že ovladače zařízení, firmware, BIOS a další podpůrné softwarové komponenty v cestě vstupně-výstupních operací jsou aktuální.
- Spusťte DBCC CHECKDB a zkontrolujte konzistenci databáze, pokud ji můžete po restartování převést do režimu online.
- Pokud databáze a soubory protokolu nejsou nedotčené a v důsledku toho databáze nemůže být online, obnovte poslední známou dobrou zálohu databáze.
- Návrhy řešení potíží najdete v tématu Chyba MSSQLSERVER 823 a Řešení chyb konzistence databáze hlášených DBCC CHECKDB
Řešení potíží se selháním šifrování nebo dešifrování transparentního šifrování dat
Pokud používáte externí službu EKM (Extensible Key Management) nebo moduly hardwarového zabezpečení (HSM), ujistěte se, že moduly poskytované službou jsou stabilní a aktualizované. Ve spolupráci s dodavatelem poskytovatele EKM/HSM vyřešte všechny problémy s moduly, které provádějí šifrování a dešifrování souborů.
Pokud dojde k tomuto problému, můžete v protokolu chyb SQL pozorovat následující příznaky:
**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.