Bu makalede Olahallengren script’i çalıştırılırken karşılaşılan bir hataya değinmiş olacağım. Veritabanları üzerinde fiziksel ve mantıksal denetim işlemi yapmak için belirli script değişkenlerini kullanmak isteyebiliriz. Kullanmaya çalıştığımızda aşağıda belirtilen hata ile karşılaşırız.
Hata Mesajı:
Msg 50000, Level 16, State 1, Procedure dbo.DatabaseIntegrityCheck, Line 1026 [Batch Start Line 0]
The stored procedure CommandExecute needs to be updated. Download https://ola.hallengren.com/scripts/CommandExecute.sql.
Msg 50000, Level 16, State 1, Procedure dbo.DatabaseIntegrityCheck, Line 1026 [Batch Start Line 0]
The documentation is available at https://ola.hallengren.com/sql-server-integrity-check.html.

Ola Hallengren scriptleri birbirine bağımlı stored procedure içerir. En kritik ikisi:
• DatabaseIntegrityCheck
• CommandExecute
Bu prosedürler tek başına değil, birlikte ve aynı sürümde çalışmak zorundadır.
Bu hata ile karşılaşmamızın sebebi Olahallengren scriptlerinde procedure’lerin parça parça çalışmasından dolayı sürüm farklılıkları oluşmaktadır. Mevcutta bulunan DatabaseIntegrityCheck, eski CommandExecute ile çalışamayacağını fark eder. Bu sebepten hata mesajını almaktayız. Kısacası stored procedure sürüm uyumsuzluğundan kaynaklanmaktadır.
Bu sorunun önüne geçmek için Olahallengren sayfasından belirtilen stored procedure yapısının indirilmesi gerekmektedir.

Biz tüm procedure’lerimizin güncellenmesi için MaintenanceSolution.sql scriptini indirip mevcutta bulunan stored procedure yapılarının ismini değiştiriyoruz. Oluşturulan procedure hangi veritabanı altında oluşturulmuşsa ilgili veritabanı Programmability kısmından görülebilir.

Yapı bu şekle dönüştürüldükten sonra ilgili script’in başarılı bir şekilde çalıştığı görülmektedir.

Not: İlgili script yeniden oluşturulduğunda sql agent altındaki job bölümünde joblar tekrardan oluşmaktadır. Bunların silinmesi gerekmektedir. Silinmemesinde de herhangi bir sıkıntı teşkil etmez. Çünkü jobların bir schedule bilgisi bulunmamaktadır. Command log tablosunda herhangi bir sıkıntıya sebep vermez. Aynı job isimleri varsa önceden oluşturulan job ismini referans almaktadır.
Bu makalede SQL Server DatabaseIntegrityCheck Hatası ve CommandExecute Stored Procedure Sürüm Uyumsuzluğu sorunuyla karşılaştığımızda ne gibi önlerler alabileceğimize değindik.
Başka makalede görüşmek dileğiyle…
“Ey İman Edenler! Allah’tan Korkun ve Doğru Söz Söyleyin ki, Allah İşlerinizi Düzeltsin ve Günahlarınızı Bağışlasın.”(Ahzâb: 70-71)