- Maintenance Plans ile Ms Sql tarafında maintenance işlemleri (bakım-onarım) yapılabilir. Buradaki seçeneklere bakalım;
- Check Database Integrity
Veri tabanı bütünlüğünü kontrol eder. DBCC CHECKDB prosedürünü çalıştırıp, ilgili veritabanlarında bozulmak olup olmadığını kontrol eder ve bütünlük sorunlarının rapor edilmesini sağlar.
Sunucularda ve depolama aygıtlarında veri bozulması yaygın bir konu değildir aslında. Sql server tarafında veri dosyalarında bozulmalar meydana gelirse, sql server sunucusu bunu ve sunucu yöneticisi bu bozulmayı hemen fark edemeyebilir. Fark etmesi günler, haftalar belki de ay sürebilir. Genel de veri dosyası bozulmalarında alınmış olan backup tekrar restore edilir. Eğer veri dosyası bozulmuş ve fark edilmemiş ise bu süre zarfında bozuk olan veri dosyası da yedeklenmiş olabilir. İlgili problem fark edildiğinde restore edilmek istenirse yine bozuk olan veri dosyası restore edilir. Bu durum sonuçta veri kaybına neden olabilir. Bu gibi sorunların önüne geçmek için Check Database Integrity aracı ile bakım planları oluşturulur. Bu planların sonuçlarında oluşmuş olabilecek bir sorun anında görünür ve müdahale edilebilir.
- Shrink Databae
Veritabanlarının boyutunu küçültmeye yarayan bir görevdir. Veri tabanı üzerinden zaman için de silinen kayıtlar boyut olarak kalmaya devam eder. Bu gereksiz alanları birleştirmek için shrink kullanılır.
Veritabanı, veritabanının en küçük boyutundan daha küçük olamaz. Minumum boyut veritabanı oluşturulurken belirtilen boyuttur. Veritabanı backup alınırken shrink yapılamaz. Shrink işlemi yapılırkende backup işlemi yapılamaz. Bu işlemi yapabilmek için db_owner rolüne sahip olunmalıdır.
Bir veritabanı standart olarak 2 fiziksel dosyadan oluşmaktadır. Bunlar mdf ve ldf dosyası olarak ortaya çıkar. Aslında bir veritabanı daha fazla olabilir. Ama standart olarak 2 dosyadan oluşmaktadır. Veritabanları kullanıldıkça büyümeye başlar. Bu büyüme sunucu performansı ve disk alanları üzerinde etki oluşturmaya başlar. Ayrıca bu büyüme, mdf ve ldf dosyalarının fragmante olmasına, log dosyalarının aşırı büyümesine de neden olur.
Shrink işlemi, büyüyen veritabanları üzerindeki kullanılmayan alanların kaldırılmasını sağlar.
- Reorganize index
İndex parçalanmalarını organize etmek için kullanılır.
Reorganize index; ALTERINDEX deyimini çalıştırır. Bu görev index parçalanmalarını kaldırmaya yardımcı olur. İndex ve kolon istatistiklerini güncellemez. Bu görev online olarak çalıştığından çalışma safhasında performans sorunları görünebilir.
- Rebuild index
İndex parçalanmalarını yeniden oluşturmak için kullanılır.
Rebuild index, ALTERINDEX deyimini çalıştırır. Seçilen veritabanlarında index leri fiziksek olarak yeniden oluşturur. Fragmentation değerleri yüksel olan index leri kaldırır ve istatistikleri aynı anda günceller. Eğer bu seçenek kullanılıyor ise Reorganize index bakım aracının çalıştırılmasına gerek yoktur.
İndex değerleri bozulmuş, veri sayfalarında aşırı boşluklar meydana gelmiş ise, sunucu üzerinde öncelikle ön bellek, disk, cpu tarafında performans sorunları meydana gelebilir. Bu bakım aracı çalıştırıldığında, veritabanı üzerindeki her dizin fiziksel olarak kapatılır ve yeniden düzenlenir. Veri sayfalarında boş alanlar kapatıldığından sunucu verilere daha hızlı bir şekilde ulaşır buda sunucu performansına etki eder.
- Günlük olarak çalıştırılması yararlıdır. Günlük olarak çalıştırılamıyor ise hafta bir çalıştırılması yaralıdır.
- Rebuild-online sadece SQL Server Enterprice versiyonunda bulunmakta. Mümkün ise günlük yada haftalık online rebuild yapmak yararlı olur.
- Eğer SQL Server Standart versiyonu kullanıyorsanız ReOrganize İndex ve ardından update statistic kullanmanız yararlı olur.
- İndex Türüne karar verme – Rebuild – Reorganize Kararı
- İndex defrag işlemlerine başlamadan önce yapılması gereken ilk işlem indexin ne kadar framente olduğunu bulmaktadır. Bulunan değerlere göre Rebuil yada Reorganize yapılmasına karar verilebilir.
Genelde kabul görmüş olan oranlar
Fragmante Oranı – İndex Türü
<= 30 Reorganize
> 30 Rebuild
– Update Statistics
Bu görev ile veritabanlarında her bir dizenin dağıtım istatistikleri yeniden oluşturulur. Dağıtım istatistikleri T-Sql sorgularının işlenmesi sırasında tablo performanslarını iyi duruma getirmek için kullanılır. Sql Server her tablonun satır sayısı ve veri değişimine göre sıklık oranlarını tablo bazında örnekleyerek bir değer atar. Daha sonrada daha iyi sorgu planları yapmak için bu değerleri kullanır. Eğer istatistik değerleri güncel değil ise sorgu sırasında performans sorunları olabilir.
- Clean Up History
Bu görev Backup – Restore geçmişi, Sql Server Agent job geçmişi ve diğer bakım planlarının geçmişini silme amacı ile kullanılır. Sp_purge_jobhistory ve sp_delete_backuphistory splerini kullanır.
- Backup Up Database (Full)
Tüm veritabanları için db bazında tam yedekleme yapar.
Bir sql server veritabanının yedeklenmesinin yapılmasının amacı, verilerin bir kopyasını oluşturmak ve herhangi bir sistem hatası, hasar gibi felaket anında veriyi geri yüklemek için kullanmaktır. Yapılması gereken en önemli bakım planı herhalde budur.
- Backup Up Database (Differential)
Backup Up Database (Full) ile alınmış olan tam yedekten sonra sadece değişen data parçalarını alır ve yedekler. Backup işlemi sırasında daha az veri yedeklediğinden zaman tasarrufu sağlar.
- Backup Up Database (Transactional Log)
Sql server tarafında yapılan her bir işlem sql tarafından farklı bir birim üzerinde loglanır. (Farklı bir veritabanında izlenir diyebiliriz). sql server herhangi bir recovery durumu oluştuğunda Transactional log dosyası ile recovery durumunu gerçekleştirir. Sql server yapılan her bir işlemi farklı id ler ile saklar. Bu id lere LSN (log Sequence Number) adı verilir. Backup Up Database (Transactional Log), işte bu log veritabanlarının yedeklenmesi için kullanılır.
Bir veritabanı oluşturulduğunda, Recovery model : Simple Recovery Mode olarak oluşur. Eğer veritabanı Simple recovery olarak bırakılırsa, Backup Up Database (Transactional Log) işlemi yapılamaz. Bunun yapılabilmesi için Full Model yada bul-logged Recovery model seçili olması gereklidir.
- Maintenance Cleanup Task
Yapılan bakımların planlarını ve raporlarını temizlemek için kullanılan bakım planıdır. Maintenance Cleanup Task, bir disk üzerindeki yedek dosyaları, yada bir klasör içerisindeki rapor artıkları ile rapor dosyalarını, silmek içinde kullanılabilir. Bu işlemi yaparken uzantıların göre yada dosya adlarına göre bu işlem için parametrelendirilebilir. Farklı bir kurguda, dosyaların yaşı yada uzunlukları olabilir. Örneğin 3 haftadan daha uzun süreli dosyaların silinmesi gibi.