10 Eylül 2016 Cumartesi

SQL: Sunucudaki Tüm Veri Tabanları için Son Backup Alınan Tarihi Bulmak

Gece gece can sıkıntısı. Uyku tutmadı. Ufak tefek bir şeyler karalayayım dedim.


Veri ile çalışırken yedeklemenin önemi büyük. En son ne zaman yedek aldığınızı merak ettiniz mi hiç? Bir SQL Server Instance'ı içerisinde yer alan tüm veri tabanları için son yedek alma zamanını görmek istediğimde aşağıdaki sorguyu kullanıyorum.

Üzerinde çalışacağımız nesneleri tanıyalım:
select * from sys.sysdatabases
select * from msdb.dbo.backupset

Sunucudaki Tüm Veri Tabanları için Son Backup Alınan Tarihi Gösteren Sorgu:

Öğrenciden Soru: database_name bilgisi msdb.dbo.backupset içerisinde varsa neden join yapıyoruz ki? Sadece msdb.dbo.backupset üzerine bir sorgu atsak zaten aynı bilgiyi alamaz mıyız?

Cevap: Sunucuda daha önce backup'ı hiç alınmamış veri tabanları var ise, msdb.dbo.backupset içerisinde onlara ait hiç bilgi olmayacaktır. Yani join yapmadan tek tarafı sorgularsak, daha önce en az 1 defa backup'ı alınmış veri tabanlarının son yedekleme tarihlerini görürüz. join yaparak sorgu oluşturduğumuzda ise, hiç yedeklenmemiş veri tabanlarını bile yanlarında bir tarih olmadan görebiliriz. Bu sayede daha önce hiç yedeklenmemiş bir veri tabanını yedeklememiz gerektiğine karar verebiliriz. Aksi takdirde bu tarz veri tabanlarını sorgu sonucunda hiç görmeyeceğimiz için kolayca gözden kaçırmak mümkün olur.

Hiç yorum yok: