12
2011
SQL Server da veri bakım ve planlama
Bir uygulamada uygulamanın koşmasını sağlayan kodların önemi ne kadar büyükse, uygulama koşmaya başladıktan ve veri birikimi gerçekleştikten sonra bu verilerin veritabanında düzgün bir şekilde düzenlenmesi ve muhafaza edilmesi gibi işlemler önemi aynı oranda büyümeğe başlar hatta daha da kritik bir hal alır. Dolayısıyla bu konu genel olarak çok zor olmamak ile beraber (projesine göre karmaşık bir hale de gelebilir.) atlanmaması gereken bir husustur.
SQL Server bu derdimize derman olmak amacıyla Bakım Planlama(Maintenance Plans) bileşenlerini bizim kullanımımıza sunar.
Şimdi bakım bileşenlerimize bir göz atalım.
Veritabanı yedekleme görevi (Backup Database Task) : Veritabanımızın yedeğini almamızı sağlayan görevdir.
Veritabanı Bütünlülük kontrol görevi (Check Database Integrity Task): Veritabanınındaki tablolarda bulunan satırların ve sayfaların(pages) bütünlülük kontrolunu yapar.
Ajan görevi koştur (Execute Sql Server Agent Task) : : Ajan görevi koşturur. Yedekleme öncesi yapılmasını istediğiniz bir görevi plan içerisinden bu şekilde çalıştırabilirsiniz.
T-SQL görevi koştur (Execute T-SQL Statement Task) : Üstteki görevden farklı olarak direk T-SQL çalıştırabilirsiniz.
Geçmiş temizle görevi (History Cleanup Task) : Bir zaman sonra baş belası haline gelen gereksiz geçmiş bilgilerinin birikmesini engellemek amacıyla bu kullanılabilecek bir görevdir.
Bakım temizleme görevi (Mainteance Cleanup Task) : Belirli bir alanda bizim belirtiğimiz tarih aralığına ait dosya bulundurmasını garanti eden görevidir. Geçmişe dönük backup birikmesini engeller. Özellikle full yedekler ile çalışmalarda sunucuya ait disk te geçmişe ait(kopyası farklı bir yere alınmış olsun) yedek istenmez ki zaten kendileri genelde çok büyük boyuttadırlar.
Indexlemeleri Yeniden organize et görevi (Reorganize Index Task) : Tablolarımızda meydana gelen değişiklerden dolayı indexlerde meydana gelen ayrışmaların (fragmentasyonlar) tekrar organize edilmesidir. Küçük çaplı ayrışmaları düzeltir.
Indexlemeleri Yeniden inşa et görevi (Rebuild Index Task) : Üstteki görevin daha büyük ayrışmalara karşı alınmış çözümüdür.
Operatoru Uyar Görevi (Notify Operator Task) : Belirli işlemler gerçekleştikten sonra dilersek bu görevi kullanarak opetoru uyarabiliriz.
Veritabanını Süz Görevi (Shrink Database Task) : Veritabanında kullanılmayan silinmiş kayıtlara ait sayfaların boyut kaplamaması amacıyla silinmesini sağlar.
Dilerseniz SQL Yönetim Studyo (Management Studio) ile SQL e bağlanıp işlemelere başlayalım. Sunucu altındaki ağacdan Yönetim (Management) kısmına geliyoruz. Burdan Bakım Planı (Maintance Plans) ile bileşenlere erişmek amacıyla Yeni Bakım Planı (New Maintance Plan..) oluşturuyoruz. (Önemli :Bu sistem zamanlanmış görevler olarak Sql Server Agent a ekleneceği için bu servisin koşuyor durumda olması gerekmektedir. )
Veritabanı yedekleme görevimizi (Backup Database Task) sürükleyip bırakalım. Sağ tuş ile düzenle(edit) dediğimizde karşımıza bir pencere açılıyor. Buradan sırasıyla bağlantı,veritabanı ve yedeğimizin konacağı lokasyon gibi seçimlerimizi yapabiliyoruz.
Planımızın kendini script bazında Sql in agent kısmına kendini eklediğini göreceğiz.
Ajan planımızın içinde olan komutların hangi sıklıkla (gün ve saat) olarak gerçekleşeceğini tanımlamamıza izin veriyor. Bu kısımdan tarih ayarlarımızı yapalım ve tekrar yönetim kısmına dönelim. Aşağıdaki gibi bileşenlerimizi yerleştirelim. (İlk Ekran Görüntülerinde SQL 2005 ait olan kısmını paylaştım. Son ekran görüntüsünde de görüleceği gibi 2008 de Planımızın içerisine alt planlar (subplan) tanımlayabiliyoruz. Bu kısımdan da Ajan’a gitmeden zamanlama ayarlamamızı yapabiliriz.)
Bu şekilde sadece belirtiğimiz zaman sınırına ait en son geçen haftaya ait yedek tut ve her gün şu saatte yedek al diyerek örneğimizi tamamlayabiliriz.
Herkese Kolay Gelsin.
Kariyer
- Yazılım Geliştirme Uzmanları
MobilMutfak - Java Yazılım Uzmanı
Yapı Kredi Emeklilik - Java Yazılım Uzmanı
Universal Bilgi Teknolojileri - Yazılım Geliştirmeci ve Proje Mühendisi
Yapı ve Kredi Bankası - Java Yazılım Uzmanı
Abaküs Finansal Yaz. A.Ş












