Herkese merhaba. Bu yazıda SQL Server’da yedekleme geçmişi ve job geçmişinin nasıl temizleneceği ile ilgili bilgi vermeye çalışacağım.
SQL Server’da bazı durumlarda yedekleme geçmişi ve job geçmişini temizlemek isteyebilirsiniz.
SQL Server, gerçekleştirdiği her yedekleme ve geri yükleme işleminin kaydını tutar. Bu bilgiler aşağıdaki tablolarda kaydedilir.
msdb.dbo.backupfile
msdb.dbo.backupfilegroup
msdb.dbo.backupmediafamily
msdb.dbo.backupmediaset
msdb.dbo.backupset
msdb.dbo.restorefile
msdb.dbo.restorefilegroup
msdb.dbo.restorehistory
SQL Server’da yedekleme ve geri yükleme işleminin kayıtlarının otomatik temizlenmesi işlemi yoktur fakat bu kayıtların temizlenme işlemi zamanla önemli hale gelebilir.
SQL Server’ı yükseltmeden önce, bu tablolardan herhangi biri 10.000 satırı aşarsa bu, yükseltmenin askıda kalmasına neden olabilir, bu nedenle eski kayıtların silinmesi önerilir.
Tüm bu tablolardaki satırları azaltmak için sp_delete_backuphistory adındanki prosedürü çalıştırabilirsiniz. Bu prosedür, belirtilen bir tarihten daha eski yedekleme kümeleri için tüm yedekleme ve geri yükleme geçmişi bilgilerini siler. Aşağıda bir örnek gösterilmiştir.
EXEC msdb..sp_delete_backuphistory '20231201 12:00:00.000'
Benzer şekilde msdb.dbo.sysjobhistory‘den kayıtları kaldırmak için aşağıdaki örneği kendinize göre revize edebilirsiniz.
EXEC msdb..sp_purge_jobhistory @oldest_date = '20231201 12:00:00.000'
Bu tabloları temizlemek için bir Job ayarlayabilirsiniz, ancak bunları ne sıklıkta temizlemeniz gerektiğini biraz düşünmeniz gerekir.
Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.