Aracılığıyla paylaş


MSSQLSERVER_824

Şunlar için geçerlidir: SQL Server

Ayrıntılar

Özellik Değer
Ürün adı SQL Server
Olay Kimliği 824
Olay Kaynağı MSSQLSERVER
Bileşen SQLEngine
Sembolik Ad B_HARDSSERR
İleti Metni SQL Server mantıksal tutarlılık tabanlı G/Ç hatası algıladı: %ls. '%ls' dosyasındaki ofset %#016I64x veritabanı kimliği %d olan sayfa %S_PGID üzerindeki %S_MSG esnasında oluştu. SQL Server hata günlüğü veya işletim sistemi hata günlüğündeki ek iletiler daha fazla ayrıntı sağlayabilir. Bu, veritabanı bütünlüğünü tehdit eden ve hemen düzeltilmesi gereken ciddi bir hata koşuludur. Tam veritabanı tutarlılığı denetimini (DBCC CHECKDB) tamamlayın. Bu hata birçok faktörden kaynaklanabilir; daha fazla bilgi için bkz. https://go.microsoft.com/fwlink/?linkid=2252374.

Belirti

Veritabanı sayfasını okuduktan veya yazdıktan sonra mantıksal tutarlılık denetimi başarısız olursa SQL Server hata günlüğünde veya Windows Uygulaması olay günlüğünde aşağıdaki hata iletisiyle karşılaşabilirsiniz:

2022-11-02 15:46:42.90 spid51      Error: 824, Severity: 24, State: 2.
2022-11-02 15:46:42.90 spid51      SQL Server detected a logical consistency-based I/O error: incorrect pageid (expected 1:43686; actual 0:0). It occurred during a read of page (1:43686) in database ID 23 at offset 0x0000001554c000 in file 'H:\MSSQL16.MSSQLSERVER\MSSQL\DATA\my_db.mdf'. Additional messages in the SQL Server error log or operating system error log may provide more detail. This is a severe 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 https://go.microsoft.com/fwlink/?linkid=2252374.

Select veya DML sorgusu bu iletiyle karşılaşırsa, hata iletisi uygulamaya döndürülür ve veritabanı bağlantısı sonlandırılır.

Nedeni

Bu hata, Windows'un sayfanın diskten başarıyla okunduğunu bildirdiğini, ancak SQL Server'ın sayfayla ilgili bir sorun keşfettiğini gösterir. Bu hata, Windows'un hatayı algılamamış olması dışında Hata 823'e benzer. Hata 824 genellikle G/Ç alt sisteminde disk sürücülerinin başarısız olması, üretici yazılımı sorunları, hatalı cihaz sürücüleri vb. gibi bir sorunu gösterir. G/Ç hataları hakkında daha fazla bilgi için bkz. Microsoft SQL Server G/Ç Temelleri, Bölüm 2.

SQL Server, G/Ç işlemlerini gerçekleştirmek için aşağıdaki Windows API'lerini kullanır: ReadFile, WriteFile, ReadFileScatterve WriteFileGather. Bu G/Ç işlemlerini tamamladıktan sonra, SQL Server bu API çağrılarıyla ilişkili tüm hata koşullarını denetler. Bu API çağrıları bir İşletim Sistemi hatasıyla başarısız olursa SQL Server Hata 823'i bildirir. Windows API çağrısının gerçekten başarılı olduğu durumlar olabilir, ancak G/Ç işlemi tarafından aktarılan veriler mantıksal tutarlılık sorunuyla karşılaşmış olabilir. Bu mantıksal tutarlılık sorunları Hata 824 aracılığıyla bildirilir.

824 hatası aşağıdaki bilgileri içerir:

  • G/Ç işleminin gerçekleştirildiği veritabanı dosyası
  • G/Ç işleminin gerçekleştirilmeye çalışıldığı dosya ile ilgili offset
  • Bu dosyanın ait olduğu veritabanı
  • G/Ç işlemine dahil olan sayfa numarası
  • İşlem bir okuma veya yazma işlemi miydi?
  • Başarısız olan mantıksal tutarlılık denetimiyle ilgili ayrıntılar (denetim türü, gerçek değer ve bu denetim için kullanılan beklenen değer)

Bu mantıksal tutarlılık denetimleri, G/Ç aktarımında yer alan verilerin temel öğelerinin G/Ç işlemi boyunca olduğu gibi kalmasını sağlamak için SQL Server tarafından gerçekleştirilen bütünlük denetimleridir. Denetimler Sağlama Toplamı, Yırtılmış Sayfa, Kısa aktarım, Hatalı Sayfa Kimliği, Eski Okuma ve Sayfa Denetimi Hatası'nı içerir. Gerçekleştirilen denetimlerin yapısı, veritabanı ve sunucu düzeyindeki farklı yapılandırma seçeneklerine bağlı olarak değişir.

824 hata iletisi genellikle temel alınan depolama sistemiyle, donanımla veya G/Ç isteğinin yolundaki bir sürücüyle ilgili bir sorun olduğunu gösterir. Dosya sisteminde tutarsızlıklar olduğunda veya veritabanı dosyası zarar gördüğünde bu hatayla karşılaşabilirsiniz.

Çözünürlük

824 hatasıyla karşılaşırsanız aşağıdaki çözümleri deneyebilirsiniz:

  • diğer sayfaların ( aynı veritabanında veya farklı veritabanlarında msdb ) bu sorunla karşılaşıp karşılaşmadiğini denetlemek için suspect_pages tablosunu gözden geçirin.

    SELECT * FROM msdb..suspect_pages
    WHERE (event_type = 1 OR event_type = 2 OR event_type = 3);
    
  • DBCC CHECKDB komutunu kullanarak aynı birimde (824 iletisinde bildirilen) bulunan veritabanlarının tutarlılığını denetleyin. Komutunda DBCC CHECKDB tutarsızlıklar bulursanız, DBCC CHECKDB tarafından bildirilen veritabanı tutarlılığı hatalarını giderme bilgi bankası makalesindeki yönergeleri kullanın.

    DBCC CHECKDB;
    
  • Bu 824 hatalarıyla karşılaşan veritabanında veritabanı seçeneği açık değilse PAGE_VERIFY CHECKSUM , seçeneği hemen açın. 824 hatası, sağlama toplamı hatası dışında başka nedenlerden dolayı meydana gelebilir, ancak CHECKSUM, sayfa diske yazıldıktan sonra tutarlılığını doğrulamak için en iyi seçeneği sunar. CHECKSUM seçeneğinin etkin olmadığı veritabanlarını tanımlamak için bu betiği kullanın:

    SELECT * FROM sys.databases
    WHERE page_verify_option_desc != 'CHECKSUM';
    
  • İşletim Sisteminden, Depolama Cihazından veya Cihaz Sürücüsünden bildirilen hatalar veya iletiler için Windows Olay günlüklerini gözden geçirin. Bu hatayla bir şekilde ilgiliyse, önce bu hataları gidermeniz gerekir. Örneğin, 824 iletisinin dışında, Olay Günlüğü'nde Disk kaynağı tarafından bildirilen "Sürücü \Device\Harddisk4\DR4 üzerinde bir denetleyici hatası algılandı" gibi bir olay da görebilirsiniz. Bu durumda, bu dosyanın bu cihazda mevcut olup olmadığını değerlendirmeniz ve ardından önce bu disk hatalarını düzeltmeniz gerekir.

  • Bu 824 hatalarının normal SQL Server G/Ç istekleri dışında yeniden oluşturulıp oluşturulamadığını öğrenmek için SQLIOSim yardımcı programını kullanın. SQLIOSim, SQL Server 2008 (10.0.x) ve sonraki sürümleriyle birlikte gönderilir, dolayısıyla ayrı bir indirmeye gerek yoktur.

  • Şunlardan emin olmak için donanım satıcınızla veya cihaz üreticinizle birlikte çalışın:

    • Donanım cihazları ve yapılandırma , SQL Server'ın G/Ç gereksinimlerine uygundur.
    • G/Ç yolundaki tüm cihazların cihaz sürücüleri ve diğer destekleyici yazılım bileşenleri güncelleştirilir.
  • Donanım satıcısı veya cihaz üreticisi size herhangi bir tanılama yardımcı programı sağladıysa, G/Ç sisteminin durumunu değerlendirmek için bunları kullanın.

  • Bu isteklerin G/Ç yolunda Filtre Sürücüleri olup olmadığını değerlendirin. Sistemdeki tüm filtre sürücülerini listelemek için aşağıdaki komutları çalıştırabilirsiniz:

    fltmc filters
    fltmc instances
    
    • Veritabanı ve günlük dosyalarının bu tür filtre sürücüleri tarafından taranmasını hariç tutun. Daha fazla bilgi için bkz. Virüs taramasının dışında tutulacak dizinler ve dosya adı uzantıları
    • Bu filtre sürücülerde güncelleştirme olup olmadığını denetleyin
    • 824 hatasıyla sonuçlanacak sorunun giderilip giderilmediğini gözlemlemek için bu filtre sürücüleri kaldırılabilir veya devre dışı bırakılabilir mi?
  • Bir sanal makine çalıştırıyorsanız tüm sanallaştırma sürücülerinin güncelleştirildiğinden emin olun veya daha fazla bilgi için sanallaştırma satıcısına başvurun.

  • Sorun donanımla ilgili değilse ve bilinen bir temiz yedekleme varsa veritabanını yedekten geri yükleyin.