Bagikan melalui


MSSQLSERVER_9001

Berlaku untuk: SQL Server

Detail

Atribut Nilai
Nama Produk SQL Server
ID Peristiwa 9001
Sumber Kejadian MSSQLSERVER
Komponen SQLEngine
Nama Simbolis LOG_NOT_AVAIL
Teks Pesan Log untuk database '%.*ls' tidak tersedia. Periksa log peristiwa untuk pesan kesalahan terkait. Atasi kesalahan apa pun dan mulai ulang database.

Penjelasan

Kesalahan 9001 terjadi ketika file log database menjadi tidak tersedia. Ketika log database offline yang berarti telah terjadi kegagalan serius yang mencegah transaksi terjadi dalam database. Kegagalan seperti itu mengharuskan database dimulai ulang atau bagi Anda untuk memulihkan cadangan. Kesalahan menunjukkan hasil akhirnya, tetapi tidak menjelaskan apa yang menyebabkan status ini. Beberapa masalah lain telah menyebabkan log tidak tersedia dan Anda harus menyelidiki masalah yang mendasar. Berikut adalah contoh bagaimana kesalahan muncul di log kesalahan 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.

Kesalahan umumnya 9001 terjadi bersama dengan kesalahan lain yang memberikan penjelasan yang lebih spesifik tentang akar penyebabnya. Contohnya termasuk kesalahan 9002, 3313, 3314, 17204 (menunjukkan kesalahan OS saat mengakses file), 17053 (menunjukkan kesalahan OS), 823.

Dalam situasi tertentu SQL Server mencoba menghidupkan ulang database saat runtime dan melakukan pemulihan, atau mungkin memulai ulang sendiri (seluruh layanan). Jika mulai ulang database otomatis tidak berhasil atau tidak terjadi, Anda dapat mencoba memulai ulang SQL Server dan melihat apakah pemulihan database berhasil membawa database online. Jika tidak, Anda harus mengatasi penyebab utama log transaksi tidak tersedia. Ini adalah contoh pesan kesalahan 3422 yang memperlihatkan mulai ulang 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.

Pesan berikut menunjukkan bahwa mulai ulang SQL Server akan terjadi:

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.

Penyebab

Log transaksi database bisa menjadi tidak tersedia karena berbagai alasan. Beberapa contoh termasuk

  • File log transaksi berada di perangkat penyimpanan yang gagal atau tidak tersedia
  • File log transaksi yang rusak secara fisik yang menyebabkan ketidakmampuan untuk menulis atau membaca dari file log
  • Ketidakmampuan untuk mengakses file karena enkripsi/dekripsi yang gagal melalui Transparent Data Encryption (TDE)
    • Layanan brankas kunci tidak dapat diakses
    • Modul penyedia EKM mengalami pengecualian, kesalahan, atau masalah lain yang mencegah keberhasilan operasi
  • Log transaksi penuh karena transaksi besar, ruang disk rendah, atau batas ukuran file yang diberlakukan pada log transaksi. Kesalahan 9002 dapat ditemukan di log kesalahan SQL Server sebelum 9001. Untuk informasi selengkapnya, lihat MSSQLSERVER_9002

Tindakan pengguna

Atasi kesalahan yang mendahului 9001 terlebih dahulu. Kemudian coba mulai ulang instans SQL Server untuk memulihkan database, jika belum terjadi.

Mengatasi kesalahan log transaksi penuh

Anda mungkin mengamati kesalahan 9002 sebelum kesalahan 9001. Berikut contohnya:

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.

Dalam kasus seperti itu, fokus pada penyelesaian akar penyebab - log transaksi penuh

Untuk mengatasi log transaksi penuh, lihat Memecahkan Masalah Log Transaksi Penuh (Kesalahan SQL Server 9002)

  • Pastikan Anda mengosongkan ruang log transaksi, dan mencari tahu mengapa tidak dibesarkan
  • Mengosongkan ruang disk tempat log transaksi berada
  • Perluas file log yang sudah ada atau tambahkan yang baru jika perlu dalam beberapa kasus

Atasi masalah perangkat keras dan OS dan pulihkan dari cadangan jika diperlukan

Kesalahan umumnya 9001 terjadi ketika file log transaksi rusak atau karena masalah perangkat penyimpanan yang membuat file log tidak tersedia. Berikut adalah dua contoh kesalahan yang dapat Anda amati:

Contoh di mana volume penyimpanan menjadi tidak tersedia dan OS mengembalikan kesalahan "Perangkat belum siap". Anda dapat melihat kesalahan lain yang mengakibatkan disk rusak tidak tersedia. Contoh-contoh ini memberikan konteks sehingga Anda dapat memahami bahwa kesalahan 9001 hanyalah salah satu dari banyak gejala masalah yang lebih besar.

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.

Berikut adalah contoh lain di mana OS melaporkan kesalahan perangkat yang mengarah ke log transaksi agar beberapa database tidak dapat diakses:

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.

Pada saat yang sama, log peristiwa Sistem Windows melaporkan kesalahan perangkat penyimpanan:

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.

Untuk mengatasi masalah tersebut:

  • Pastikan bahwa volume penyimpanan tempat database dan file log berada secara online, bahwa seluruh jalur I/O dari komputer ke penyimpanan stabil dan dapat diandalkan, dan tidak menyebabkan kerusakan file fisik.
  • Bekerja dengan perangkat keras dan produsen perangkat Anda untuk memastikan bahwa perangkat keras dan konfigurasinya cocok dengan persyaratan I/O sistem database. Pastikan bahwa driver perangkat, firmware, BIOS, dan komponen perangkat lunak pendukung lainnya di jalur I/O sudah diperbarui.
  • Jalankan DBCC CHECKDB untuk memeriksa konsistensi database, jika dapat dibawa secara online setelah mulai ulang
  • Jika database dan file log tidak utuh dan akibatnya database tidak dapat online, pulihkan cadangan database terakhir yang diketahui baik
  • Untuk saran pemecahan masalah, lihat Kesalahan MSSQLSERVER 823 dan Memecahkan masalah kesalahan konsistensi database yang dilaporkan oleh DBCC CHECKDB

Mengatasi kegagalan enkripsi atau deskripsi TDE

Jika Anda menggunakan layanan atau penyedia Extensible Key Management (EKM)/Hardware Security Modules (HSM) eksternal, pastikan modul yang disediakan oleh layanan stabil dan diperbarui. Bekerja sama dengan vendor penyedia EKM/HSM untuk menyelesaikan masalah apa pun dengan modul yang melakukan enkripsi/dekripsi file.

Anda dapat mengamati gejala berikut dalam log kesalahan SQL ketika masalah ini terjadi:

**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.