MSSQLSERVER_605

Şunlar için geçerlidir: SQL Server

Ayrıntılar

Özellik Value
Ürün Adı SQL Server
Olay Kimliği 605
Olay Kaynağı MSSQLSERVER
Bileşen SQLEngine
Sembolik Ad YANLIŞ SAYFA
İleti Metni Veritabanı %d mantıksal sayfa %S_PGID getirme girişimi başarısız oldu. 64d %Iayırma birimine aittir, %I64d birimine değil.

Explanation

Bu hata genellikle belirlenen veritabanında sayfa veya tahsis bozulmasını gösterir. SQL Server, bir tabloya ait sayfaları okurken ya sayfa bağlantılarını takip ederek ya da Index Allocation Map (IAM) kullanarak bozulmayı tespit eder. Bir tabloya tahsis edilen tüm sayfalar, tabloya bağlı ayrılan birimlerden birine ait olmalıdır. Sayfa başlığındaki tahsis birimi kimliği, tabloya bağlı tahsis birimi ID'siyle eşleşmiyorsa, bu istisna ortaya çıkar. Hata mesajında listelenen ilk tahsis birimi ID, sayfa başlığında bulunan ID'dir ve ikinci tahsis birimi değeri tabloya bağlı ID'dir.

Veri Bozulma Hataları

21 şiddet seviyesi olası veri bozulmasını gösterir. Olası nedenler, o nesne için bozuk bir sayfa zinciri, bozuk bir IAM veya sys.objects katalog görünümünde geçersiz bir girdidir. Bu hatalar genellikle donanım veya disk aygıtı sürücüsü arızasından kaynaklanır.

Geçici Hatalar

12 şiddet seviyesi olası geçici bir hata işareti verir; yani, önbellekte oluşur ve diskteki veriye zarar verdiğini göstermez. Geçici 605 hataları aşağıdaki koşullardan kaynaklanabilir:

  • İşletim sistemi, SQL Server'a bir I/O işleminin tamamlandığını erken bildirir; hata mesajı, gerçek bir veri bozulması olmasa bile görüntülenir.

  • Optimizer ipucu NOLOCK ile sorgu çalıştırmak veya işlem izolasyon seviyesini OKUMAK KARARSIZ. NOLOCK veya READ UNCOMMITTED işlem izolasyon seviyesini kullanan bir sorgu, başka bir kullanıcı tarafından taşınan veya değiştirilen verileri okumaya çalıştığında, 605 hatası oluşur. Geçici bir 605 hatası olup olmadığını doğrulamak için sorguyu daha sonra tekrar çalıştırın.

Genel olarak, hata veri erişimi sırasında meydana gelirse ancak sonraki DBCC CHECKDB işlemleri hatasız tamamlanırsa, 605 hatası muhtemelen geçici bir hata olmuştur.

Kullanıcı Eylemi

605 hatası geçici değilse, sorun ciddidir ve aşağıdaki görevlerin yerine getirilerek düzeltilmesi gerekir:

  1. Mesajda belirtilen tahsis birimleriyle ilişkili tabloları aşağıdaki sorguyu çalıştırarak belirleyin. Hata mesajında belirtilen tahsis birimleriyle değiştirin allocation_unit_id .

    USE [database_name];  
    
    GO  
    
    SELECT au.allocation_unit_id, OBJECT_NAME(p.object_id) AS table_name, fg.name AS filegroup_name,  
    
    au.type_desc AS allocation_type, au.data_pages, partition_number  
    
    FROM sys.allocation_units AS au  
    
    JOIN sys.partitions AS p ON au.container_id = p.partition_id  
    
    JOIN sys.filegroups AS fg ON fg.data_space_id = au.data_space_id  
    
    WHERE au.allocation_unit_id = '<allocation_unit_id>' OR au.allocation_unit_id = '<allocation_unit_id>'  
    
    ORDER BY au.allocation_unit_id;  
    
    GO  
    
  2. DBCC CHECKTABLE'ı, hata mesajında belirtilen ikinci tahsis birimi kimliğiyle ilişkili tabloda REPAIR maddesi olmadan çalıştırın.

  3. DBCC CHECKDB'yi REPAIR maddesi olmadan mümkün olan en kısa sürede çalıştırarak tüm veritabanındaki bozulmanın tam boyutunu belirleyin.

  4. 605 hatasına sıklıkla eşlik eden diğer hatalar için hata kaydını kontrol edin ve sistem veya donanımla ilgili herhangi bir sorun için Windows Olay Günlüğü'nü inceleyin. Loglarda bulunan donanımla ilgili sorunları düzeltin.

Sorun donanımla ilgili değilse, aşağıdaki görevlerden birini gerçekleştirin:

  1. Veritabanını bilinen temiz bir yedeklemeden geri yüklemek. Sadece hasar görmüş sayfaları geri yüklemek için sayfa geri yükleme özelliğini kullanabilirsiniz.

  2. Bozulmayı onarmak için DBCC CHECKDB işleminin 3. adımda uygulandığı REPAIR maddesi ile DBCC CHECKDB çalıştırın. DBCC CHECKDB'yi TAMIR maddelerinden biriyle çalıştırmak sorunu çözmüyorsa, ana destek sağlayıcınızla iletişime geçin. DBCC CHECKDB'den çıkan çıktıyı incelemek için hazır bulundurun.

    Caution

    DBCC CHECKDB ile TAMIR maddesinin verileriniz üzerinde ne etkisi olduğundan emin değilseniz, bu bildirimi çalıştırmadan önce ana destek sağlayıcınızla iletişime geçin.

  • DBCC CHECKTABLE (Transact-SQL)