Belirtiler
Aşağıdaki senaryoyu ele alalım:
- Microsoft SQL ServerSQL Server'da bölümlenmiş tablolarınız olduğunu ve bunların Change Data CaptureCapture (CDC) veya Transactional Replication'ın parçası olduğunu varsayalım. Bu tablolardan bölüm açar veya kapatırsın.
- Veri İşleme Dili (DML) işlemleri gerçekleştirdiğinizde bölüm değişikliğinden sonra bir EXCEPTION_ACCESS_VIOLATION oluştuğunu ve bir bellek dökümü dosyasının oluşturulduğunu fark edebilirsiniz.
Not
Tarih/Saat ***FilePath\FileName konumuna gönderilen Yığın Dökümü
Tarih/Saat SqlDumpExceptionHandler: İşlem ProcessID önemli özel durum c0000005 EXCEPTION_ACCESS_VIOLATION oluşturdu. SQL ServerSQL Server bu işlemi sonlandırıyor.
Tarih/Saat * *******************************************************************************
Tarih/Saat *
Tarih/Saat * YIĞIN DÖKÜMÜNÜ BAŞLATIN:
Tarih/Saat *
Tarih/Saat *
Tarih/Saat *
Tarih/Saat *
Tarih/Saat * Özel Durum Adresi = 000007FEE724BD80 Module(sqllang+00000000015BBD80)
Tarih/Saat * Özel Durum Kodu = c0000005 EXCEPTION_ACCESS_VIOLATION
Tarih/Saat * Erişim İhlali Yaşandı, Adres 000000000000002A okundu
Tarih/Saat * Giriş Arabelleği 70 bayt
Tarih/Saat * sys.sp_MScdc_capture_job
Tarih/Saat *
Not
Tarih/Saat ***FilePath\FileName konumuna gönderilen Yığın Dökümü
Tarih/Saat SqlDumpExceptionHandler: İşlem PID önemli özel durum c0000005 EXCEPTION_ACCESS_VIOLATION oluşturdu. SQL ServerSQL Server bu işlemi sonlandırıyor.
Tarih/Saat * *******************************************************************************
Tarih/Saat *
Tarih/Saat * YIĞIN DÖKÜMÜNÜ BAŞLATIN:
Tarih/Saat * Tarih/SaatSPID
Tarih/Saat *
Tarih/Saat *
Tarih/Saat * Özel Durum Adresi = 000007FEE9D26640 Module(sqllang+0000000001586640)
Tarih/Saat * Özel Durum Kodu = c0000005 EXCEPTION_ACCESS_VIOLATION
Tarih/Saat * Erişim İhlali Yaşandı, Adres 000000000000002A okundu
Tarih/Saat * Giriş Arabelleği 109 bayt -
Tarih/Saat * 16 00 00 00 12 00 00 00 00 02 00 00 00 00 00 00 00 00
Tarih/Saat * s p _ r e p 01 00 00 00 0b 00 73 00 70 00 5f 00 72 00 65 00 70 00
Tarih/Saat * l c m d s & ô 6c 00 63 00 6d 00 64 00 73 00 00 00 00 00 00 26 04 04 f4
Tarih/Saat * & & ÿ 01 00 00 00 00 26 04 04 00 00 00 00 00 00 00 26 04 04 ff
Tarih/Saat * ÿÿÿ ¥ & ff ff ff 00 00 a5 0a 00 00 00 00 00 26 04 04 8f 13 00
Tarih/Saat * & & ¡ 00 00 00 26 04 04 00 00 00 00 00 00 00 26 04 04 20 A1 07
Tarih/Saat * 00
- Aşağıdaki sorguyu hedef tabloda çalıştırırsanız, is_replicated sütunun değerinin kümelenmemiş dizin için '1' olarak işaretlendiğini fark edebilirsiniz ki bu doğru değildir.
select index_id, partition_number,* from sys.system_internals_partition_columns pc with(nolock)
JOIN sys.partitions p with(nolock)
ON p.partition_id = pc.partition_id
where p.object_id = object_id ('PartitionTable')
order by 2
Çözüm
Bu sorun, SQL ServerSQL Server için aşağıdaki toplu güncelleştirmelerde düzeltildi:
Cumulative Update 1 for SQL ServerSQL Server 2017
Cumulative Update 5 for SQL ServerSQL Server 2016 SP1
Cumulative Update 8 for SQL ServerSQL Server 2014 SP2
SQL Server toplu güncelleştirmeleri hakkında:
SQL Server için her yeni toplu güncelleştirme, önceki toplu güncelleştirmeye dahil edilen tüm düzeltmeleri ve tüm güvenlik düzeltmelerini içerir. SQL Server için en son toplu güncelleştirmelere göz atın:
En son toplu güncelleştirme SQL ServerSQL Server 2017
SQL Server 2016 için en son toplu güncelleştirme
SQL Server 2014 için en son toplu güncelleştirme
Durum
Microsoft bunun, "Şunlar için geçerlidir" bölümünde listelenen Microsoft ürünlerinde sorun olduğunu doğrulamıştır.
Başvurular
Microsoft'un yazılım güncelleştirmelerini tanımlamak için kullandığı terminoloji hakkında bilgi edinin.