Merhaba,

Bu yazımda sizlere SQL Server da Maintenance Plans ile Backup planı oluşturup uzun vadede tek bir job ile veritabanınızın backup ının nasıl alınabileceğini göstereceğim. SQL Server da Backup nasıl alınır ne tip backup lar vardır Backup neden alınır bilgisini bilmeyenler bu linkteki yazımı okuyabilirler.

Kritik sistemlerin Veritabanları afet (Data Kaybının yaşanabileceği her olay ör: Disk Corruption, Sunucunun down olup açılamaması, Doğal afetler) durumlarına karşı yada kullanıcı bazlı hatalara karşı (Drop Table, Drop User, Truncate Table, Drop Database) belli aralıklarla mutlaka yedeklerinin alınması gereklidir.

Bu Yedekleme stratejisi Database in içerdiği dataların kritikliğine göre değişir. Bazı veritabanlarının(Kritikliği az olan) ayda 1 yedekleri alınırken bazı veritabanlarının(Kritik veritabanları) haftada 1 full backup ı alınırken her gün günün belirli aralıklarında Differential backup ı alınmaktadır. Bu backup lar Disklere alınabildiği gibi maliyeti çok çok düşük olan tape lere de alınabilmektedir.

Veri hacmi çok büyük olan büyük şirketler genellikle backup larını Tape backup şeklinde almaktadır çünkü petabyte lara varan veriler için disk maliyeti kimi zaman tape in 100 katı yada 1000 katına çıkabilmektedir. Bundan dolayı büyük holdingler petabyte a yakın databaselerinin backup larını tape almaktadır. Bu kadar girişten sonra şimdi Maintenance Plan ile bir Backup planı oluşturup belirli aralıklarla backup alınmasını göstereceğim.

Maintenance

Maintenance Plan

SQL Server da Maintenance Plan ile veritabanlarımızın devamlılığını sağlayacak koruyacak ve daha performanslı çalıştıracak düzenli ve sürekli çalışacak planlar oluşturabiliriz. Bu planları aşağıdaki gibi listeleyebiliriz.

  1. Veritabanlarımızın belli bir Schedule a göre Full, Differential ve Transaction Log backup larını düzenli olarak aldırabiliriz.
  2. Index maintenance yaparak veritabanımızın performansını artırabiliriz.
  3. Vertabanı objelerimizin istatistiklerini güncelleyebiriz. Ör: Bir sorgu çalışmadan önce sql server onun planını çıkarır ve öyle koşar. Bu istatistikler bazen çeşitli sebeplerle bozulabiliyor bunların düzenli aralıklarla kontrol edilip güncellenmesi gerekli.
  4. Veritabanımızın belli aralıklarla bütünlüğünü kontrol ettirmemiz gerekli bunu manuel olarak DBCC CHECKDB T-Sql koduyla da yapabiliriz. Not: Bu kodu sadece ihtiyaç duyduğumuzda çalıştırmamız gerekli.

Ben bu yazımda sizlere Maintenance plan ile Backup planı oluşturmayı anlatacağım. Örnek olması açısından Backup stratejim aşağıdaki gibi olacaktır.

TestDatabase adındaki database imin 5 Dk da bir Full Backup ını alacağım ve 1 saatten daha eski olan Backupların silinmesini sağlayacağım. Silmenin sebebi hem 1-2 full backup dan fazlasının gereksiz olmasından dolayı hemde yer sıkıntısı yaşanmaması içindir.

Not: Normal canlı sistemlerde böyle bir stratejinin olabileceğini düşünmüyorum ben burda örnek gösterebilmek için bu şekilde yaptım. 5 dk da bir ilgili job ın çalıştığını gösterebilmek için bu şekilde yaptım.

Genellikle canlı sistemlerin backup ları haftada yada 3 günde 1 alınıp her günde Differential backup ve Transaction log backup şeklinde alınır. Yine belirteyim bu stratejiler kurumdan kuruma veritabanlarından veritabanlarına göre değişmektedir.

SQL Server Management Studio Kullanarak Maintenance Plan oluşturma

1.Management Studio dan MYTESTINSTANCE adlı SQL Instance sıma bağlandım ve aşağıdaki gibi daha önceden oluşturduğum TestDatabase adlı veritabanıyla ilgili işlemleri yapacağım.

1

2.Maintenance plan tabı Management Tabı altında aşağıdaki gibi bulunmaktadır. Maintenance Plans Tabına sağ tıkladığımızda aşağıdaki ekran gelecektir.

2

3. Bu adımda New Maintenance Plan a tıklayıp aşağıdaki gibi Maintenance plan ımıza bir isim veriyoruz. Planın Adını işlemimizden dolayı Backup diyorum Ok butonuna tıklayıp devam ediyorum.

3

4. Yukardaki işlemin devamında Management Studio Tool u bize aşağıdaki gibi bir geliştirme ortamı sunacaktır. Burada Toolbox ın içerisindeki işlemleri seçerek planımızı oluşturabiliriz. Her bir işlem kutucuğunun arka planında ilgili T-SQL Kodları bulunmaktadır.

4

5. Yukarıdaki ekranda sol altta bulunan ToolBox dan Backup Database Task tool unu sürükleyip pembe ortama sürüklüyoruz. Sürüklediğimizde Aşağıdaki gibi kare şeklinde bir flow taskı görünecektir. Buna çift tıkladığımızda Backup planı için gerekli ekran aşağıdaki gibi gelecektir.

5

6. Backup Database Task ekranından hangi database in Backup ının alınacağını, Tape mi Disk e mi alınacağı, Compress edilip edilmeyeceği gibi opsiyonlar aşağıdaki gibi seçilir.

6

7

8

7. Bu adıma kadar olan adımda Backup için gerekli opsiyonları belirledik. TestDatabase adlı veritabanının Full Backup ını Diske Sıkıştırılmış bir şekilde (Compression olacak şekilde) plan oluşturulmuştur.  Bu adımda Cleanup taskımızı da oluşturuyoruz. Disk üzerinde biriken eski backup ların silinmesi gerekiyor aksi takdirde disk şişer ve dolar. Genellikle canlı sistemlerde en fazla 1 full backuptan 2 tane bulundurulur eğer yer var ise alınan yeni backuplardan sonra genellikle eski backup lar silinir. Bunun içinde Otomatik Cleanup taskı oluşturuyoruz. Soldaki History Cleanup Task ı sürükleyip flowla bağlıyoruz. Cleanuo taskı mıza Backup alınan file ı tanıtıp burada 1 saatten eski Backup ların silinmesini setliyoruz aşağıdaki gibi.

9

10

8. Bu adıma kadar Backup ve Cleanup task ini oluşturduk. Bu taskleri hangi aralıklarda çalışması gerektiğini plana aşağıdaki schedule dan ekliyoruz. Schedule u sağ üst köşedeki Takvim ikonun tıklayarak aşağıdaki gibi açıyoruz. Schedule ın her gün 24 saat aralıksız olarak her 5 dk da bir çalışması şeklinde aşağıdaki gibi setlendi.

11

9. Taskleri tamamladıktan sonra kaydedip çıkıyoruz. Çıktıktan sonra aşağıdaki gibi SQL Server Agent ın altında Jobs Sekmesinin altında Maintanance Plan sonucu oluşan Joblar create edilmiş.

12

Job ın çalışıp çalışmadığını kontrol ettiğimizde aşağıdaki gibi backup ların alındığını görüyoruz.

16

Yukardaki görüntüden Backupların alındığını görüyoruz. Cleanup task ının çalışıp çalışmadığınıda bir kaç dakka sonra baktığımızda görüyoruz. Aşağıdaki görüntüden de görüldüğü üzere 17:30 da alınan backup dan sonra üstteki resimde görülen 16:30 daki backup ın silinmiş olduğunu görüyoruz. Böylece hem Backup task ı hemde Cleanup task i çalışıyor.

17

Son olarak Job ımızın History sine bakarak hataları görebilir job ın geçmişte neler yaptığını aşağıdaki gibi görebilirz. Bunun için Job a gelip Sağ tıklayıp gelen menüde View History e tıklarsak aşağıdaki gibi ilgili Job ın history sini görebiliriz.

18

 

Böylece bir yazımın daha sonuna gelmiş bulunmaktayım. Bir sonraki yazıda buluşmak dileğiyle…

Esen Kalın….

Mehmet Salih Deveci

Veritabanı Yöneticisi

Reklamlar

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Connecting to %s