Veritabanı 2'de mantıksal sayfa (5: 65424) getirilemedi


11

SqlExceptionSaklı yordam çağırma aşağıdaki alıyorum :

Veritabanı 2'de mantıksal sayfa (5: 65424) getirilemedi. 4899918190390149120'ye göre olmayan 7349876362857938944 tahsis birimine aittir.

System.Data.SqlClient.SqlException oluştu
Message = "Veritabanı 2'de mantıksal sayfa (5: 65424) getirilmeye çalışılamadı. 4899918190390149120 değil, 7349876362857938944 ayırma birimine aittir.

Kaynak = ". Net SqlClient Veri Sağlayıcısı"
ErrorCode = -2146232060
Sınıf = 21
SatırNumarası = 257
Sayı = 605
Yordam = "ispDisplayCount"
Sunucu = " 10.10.1.1 "
Durum = 3

Bu istisna ne anlama geliyor? Yukarıdaki sorunla ilgili herhangi bir çözüm var mı?

Yukarıdaki hatada atıfta bulunulan veritabanı tempdb'yi göstermesine rağmen, Message 605'i referans alan benzer hatalar aşağıdaki cevaplar kullanılarak düzeltilebilir.

Msg 605, Seviye 21, Durum 3, Satır 1
Veritabanı 7'de mantıksal sayfa (1: 8687634) getirilemedi. 72057594052476928'e değil, 72057594364821504 tahsis birimine aittir.

Yanıtlar:


11

Hata mesajıyla belirtilen veritabanı kimliği ise 2, etkilenen veritabanı tempdb olur. Tempdb'de bu tür bozulmaları düzeltmenin bir yolu SQL Server örneğini yeniden başlatmaktır. 2 dışındaki veritabanı kimlikleri için aşağıdaki önerileri uygulayın.

Yedeklemeden geri yüklemeniz gerekebilir, ancak şunu deneyin:

Sysadmin rolünün bir üyesi olarak DBCC PAGE (2, 5, 65424, 3);, Metadata: IndexIddeğeri yürütün ve arayın .

  • Eğer durum bu ise 0(yığın) veya 1(kümelenmiş dizin) yedekten geri gerekir.
  • Değilse veya değilse , kümelenmemiş dizini yeniden oluşturabilirsiniz.01

DBCC komutunu çalıştırın ve ne bulduğunuzu bize bildirin. Kontrol https://www.mssqltips.com/sqlservertip/1578/using-dbcc-page-to-examine-sql-server-table-and-index-data/ ilgili ayrıntılar için DBCC PAGEkomuta


10

Veritabanınız bozuk. İyi bir yedeklemeden geri yükleme zamanı. Yedeklemeniz yoksa , Kurtarma Planınızı Test Etmenin Önemi hakkında bilgi edinme zamanı . Ayrıca, donanımınızın güvenilirliğine ilişkin bir araştırma yapılması gerekir, sistem günlüklerinde uyarı ve hatalara dikkat edin.


9

Hata, veritabanınızın bozuk olduğunu gösterir. İyi haber şu ki, veritabanı kimliği 2 bunun tempdb veritabanı olduğunu gösterir, bu yüzden bunu düzeltmek kolaydır - sadece veritabanı örneğini yeniden başlatın.

Örneği yeniden başlattıktan sonra, yolsuzluğun neden olduğunu anlamanız gerekir. chkdskSorunlu dosyanın açık olduğu sürücüde çalışarak başlayın . Ardından, depolama alanının kendisine bakmanız ve orada herhangi bir sorun olup olmadığını görmeniz gerekir. Fiziksel disk sorunu olabilir, HBA veya RAID kart sürücüleri vb. Olabilir.


Denny, RAM sağlık kontrolleri yapmanın da faydalı olacağını düşünüyor musunuz? RAM'deki bozuk bir sayfanın diskteki bozulmaya da çevrildiğini gördünüz mü?
Ali Razeghi

1
Bir sayfanın kirli olarak bildirilmesine neden olabilecek kötü bir RAM çubuğu varsa. Disk alt sistemiyle ilgili bir sorun bellekten çok daha yüksek. Diskler gerçekten iyi olup olmadığına bakmak için bir sonraki yer olurdu.
mrdenny

2

Ben SQL önbelleklerini temizleyerek çözmek mümkün:

DBCC FREEPROCCACHE
GO
DBCC DROPCLEANBUFFERS
GO

Görünüşe göre SQL hizmetinin yeniden başlatılması da aynı etkiyi yaratacaktı.

( Made By SQL ile , başkalarına yardım etmek için burada çoğaltılmıştır!)


1

Benim durumumda, ilgili tablolardaki verilerin kesilmesi ve yeniden doldurulması çözümdü.

Büyük olasılıkla tabloların içindeki veriler bozuldu.


1

Bir çok insandan duyduğunuz şey, " veritabanı bozuk, geri yüklemeniz gerekiyor ", hatta aşağıdakilerden bazılarını yapmak için birkaç dakika almanızı tavsiye etmeden; günlüklerinizi gözden geçirin, sorunun ilk ne zaman ortaya çıktığını, o satırdan önce gelen hatayı öğrenin, sayfanın ait olduğu veritabanını / tabloyu kontrol edin

Benim durumumda bu hata;

'XYZ' veritabanında 629577281 tablosunun dizin kimliği 9'da dizin girdisi bulunamadı. Belirtilen dizin bozuk veya mevcut güncelleme planıyla ilgili bir sorun var

Çözüm, atıfta bulunulan dizini izlemek ve geçici olarak silmekti.

Daha sonra sorunumu açıklayan ve bir çözüm bağlantısı sunan bu Microsoft bağlantısını buldum

umarım bu gelecekte başkalarına yardım eder

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.