Sistem operasi mengembalikan kesalahan 21 (Perangkat tidak siap.)

Setiap kali saya mem-boot ulang Windows, untuk beberapa database saya mendapatkan kesalahan ini:

Sistem operasi mengembalikan kesalahan 21 (Perangkat tidak siap.)

  1. Saya memeriksa disk dengan chkdsk /r - tidak ada bad sector.

  2. Saya telah menjalankan DBCC CHECKDB tanpa kesalahan:

    *(CHECKDB menemukan 0 kesalahan alokasi dan 0 kesalahan konsistensi pada basis data)*
  3. Jika saya me-restart SQL Server, kesalahan-kesalahan tersebut hilang.

Windows 10 dan SQL Server 2016 Express.

Setiap kali saya me-reboot windows, untuk beberapa database keluar kesalahan ini. (Kesalahan OS 21 - Perangkat tidak siap)

Hal ini disebabkan oleh disk yang sedang offline atau tidak online pada saat SQL Server dimulai, atau telah beralih status setelah SQL Server online.

  1. Jika saya me-restart SQL Server, kesalahan menghilang

Ya, karena database telah dipasang kembali di dalam SQL Server. Anda juga bisa offline->online database juga dan itu akan berfungsi, dengan asumsi perangkat disk telah diperbaiki.

Hal ini dapat dengan mudah direproduksi dalam lingkungan pengujian dengan meletakkan database pada disk, menonaktifkan disk, menjalankan kueri pilih (untuk mendapatkan kesalahan), membawa disk kembali online dan memperhatikan bahwa pilih masih gagal dengan kesalahan yang sama. Basis data perlu dipasang kembali agar dapat berfungsi kembali dan tidak mengalami OS Error 21.

Apa yang harus Anda lakukan?

Mintalah seseorang melakukan penelusuran windows untuk mencari tahu mengapa awalnya tidak online atau mengapa ia menjadi offline (transisi status apa pun) atau mengapa ia menunjukkan siap untuk windows tetapi sebenarnya tidak (mungkin driver lain perlu dimuat untuk itu).

Selain itu, periksa juga apakah driver penyaring disk sudah diperbarui untuk hal-hal seperti anti-virus, perlindungan terhadap penyusupan, dan lain-lain, karena mungkin saja hal tersebut juga memblokir layanan/startup/state.

Komentar (2)

Saya pikir saya telah menemukan penyebabnya.

Kemungkinan besar masalahnya disebabkan oleh opsi daya 1engaktifan cepat &"1.

!Pengaktifan Cepat]2

Ini adalah teknik Windows untuk mengurangi waktu booting; Fast Startup menggabungkan elemen-elemen dari shutdown dingin dan fitur hibernasi.

Di sini Anda dapat menemukan artikel lain tentang pro dan kontra

Saya telah menonaktifkannya dan masalahnya tampaknya telah teratasi.

Komentar (1)

Saya telah menemukan masalah yang sama berkali-kali dan saya pikir saya harus membagikan solusi saya (terlepas dari jawaban yang telah disediakan):

Jadi saya memiliki dua contoh SQL (SQL 2008 dan SQL 2017). Kesalahan tidak muncul di Instance SQL08 saya, tetapi di SQl17. Hal ini disebabkan oleh "Kredensial akun" yang disediakan selama Instalasi / pengaturan setiap instance SQL:

Ini dapat dilihat di bawah Layanan Windows. SQL08 diatur untuk menggunakan "Akun Sistem Lokal" sementara SQL17 yang gagal diatur ke "AKUN JARINGAN" selama penyiapan. Jadi, ubah saja dan mulai ulang layanan SQL di sini (atau mulai ulang instance di browser SQL).

Bagian kedua dari masalah ini adalah unik untuk SQL Server 2017 CTP 2.0 ketika menggunakan SQL Server Management Studio V17 dalam hal ini SMO beralih menggunakan " sys.dm_os_enumerate_fixed_drives &" alih-alih " xp_fixeddrives &" yang lama untuk mendapatkan informasi ruang kosong disk lokal Anda. Untuk mengatasinya, buka DEVICE MANAGER dan nonaktifkan sementara drive yang dikutip (dalam kasus saya, drive "G", yang merupakan drive DVD-ROM saya).

Komentar (0)