17 Mayıs 2009 Pazar

SQL Server 2005'te Veritabanı Yedekleme Planı (Recovery) ve Maintenance Plan

SQL Server 2005'te
Veritabanı Yedekleme Planı (Recovery) ve
Maintenance Plan

Merhabalar. Bu yazımızda veritabanı kurtarma (recovery) seçeneklerini irdeleyeceğiz. Maintenance plan hakkında inceleme yaptıktan sonra örnek uygulamalarla pekiştireceğiz.
Veritabanı Yedekleme Planı (Recovery) Türleri


Veritabanımızın belli aralıklar yedeklerini alırız. Ancak, acaba veritabanımız üzerinde hangi recovery model formatında yedekleme işlemi gerçekleştiriliyor.

SQL Server Management Studio'da veritabanı üzerinde sağ tuş yaptıktan sonra, gelen menüden Properties seçeneği tıklayalım.

Click the image to open in full size.

Properties arayüzünden, Options seçeneğini tıkladığımızda veritabanımız için geri yükleme seçeneklerini görüyor olacağız

Click this bar to view the full image.
Click the image to open in full size.


2.Resim: Recovery seçenekleri.


Üç çeşit geri yükleme çeşidi bulunmaktadır:

* Simple Recovery Model: Bu model ile veritabanımızı basit olarak kayıt edebiliriz. Bu yedekleme türünü küçük çaplı veritabanları için veya yanlız okuma işlemi yapılan yani üzerinde sorgu yürütülen veritabanları için kullanabiliriz. Bu seçenekle beraber Transaction Log'ları kayıt edemeyiz. Bu tür yedek aldığımızda, son yedeğimizden sonra geçen sürede yapılan değişikleri kurtarma imkanımız yoktur.

* Full Recovery Model: Full Recovery Model metodunda Transaction Log'lar kayıt edilir. Veritabanını geri yükleme durumunda veritabanındakilerle verilerle birlikte bütün Transaction Log'lar elde edilebilir. Simple Recovery Model'in yanında, Full Recovery Model'inde veriler üzerinde yapılan tüm değişikler kayıt edilir. Bu model sayesinde veritabanında son ana kadar yapılan değişiklikler kurtarılabilir. SQL Server 2005'in recovery modeli varsayılan değer olarak Full Recovery Model'dir.

* Bulk logged Recovery Model: Bulk operasyonları ile elde edilen veriyi tutması haricinde, Full Recovery kurtarma modeli ile benzerlik göstermektedir. Eğer sunucu göçmeden önce elimizdeki son yedek Full Recovery Model'i ile elde ettiğimiz yedek türü ise, bunu geri yüklediğimizde veritabanımızda hiç bir değişiklik olmadan kullanmaya devam edebiliriz. Ancak Bulk Logged Recovery Model'inde bulk işlem olarak yaptığımız işlemleri geri alamayız. Bulk logged Recovery modelinde bulk işlemler haricindeki (örneğin bulk copy ve SELECT INTO olarak gerçekleştirdiğimiz işlemleri) tüm işlemleri ve verilerimizin son haline kadar geri elde etmemize olanak tanır.

Maintenance Plans İle Yedekleme İşlemi

SQL Server 2005 üzerinde bakım planlama (maintenance plans) işlemi SQL Server 2000'e göre bir çok özellik içermektedir. SQL Server 2005 Maintenance Plans sayesinde bir çok özelliği grafik arayüzü sayesinde daha hızlı ve pratik bir şekilde yapabilmekteyiz.

Maintenance Plan'i iki şekilde başlatabiliriz.

İlk olarak, Microsoft SQL Server Management Studio'dan sol tarafta veritabanı nesnelerinin listelendiği Object Browser'dan yapabiliriz. Object Browser'da listelenen ağaç yapısından Management sekmesinin üzerinde sağ tuş ile tıklayalım.

Click the image to open in full size.

3.Resim: Management Studio aracılığı bakım planlaması.

Açılan menüden New Maintenance Plan diyerek yeni bir bakım planlaması oluşturabiliriz.

Click the image to open in full size.

4.Resim: Management Studio aracılığı bakım planlaması.


İkinci olarak ise, SQL Server Business Intelligence Development Studio aracılığı ile oluşturabiliriz. SQL Server Business Intelligence Development Studio'ya menü olarak sırasıyla All Programs | Microsoft SQL Server 2005 | SQL Server Business Intelligence Development ile ulaşabiliriz.

Click this bar to view the full image.
Click the image to open in full size.


5.Resim: Management Studio aracılığı bakım planlaması.


SQL Server Business Intelligence Development Studio'da üstteki File menüsünden New | New Project seçeneğini seçerek yeni bir proje oluşturalım.

Click this bar to view the full image.
Click the image to open in full size.


6.Resim: Integration Services projesi oluşturma.

Gelen proje seçeneklerinden Project Integration Services'i seçerek bakım planlama projemizi başlatabiliriz.

Aslına bakarsanız, görevi oluşturduktan sonra yapacağımız işlemler çokta kompleks işlemler değildir. Maintenance plan ekranında sol panelde yer alan kontrol kutusundan kendi akışımıza uygun olan elemanları seçeriz. Seçtiğimiz elemanları tutup sürüklemek suretiyle kullacağımız alana bırakırız. Kullanacağımız diğer nesnelerle okları kullanarak ilişkilendirebiliriz. Yerleştirdiğimiz herbir elementi çift tıklayarak konfigurasyon işlemlerini gerçekleştirebiliriz.

Önemli görevlerden bir tanesi de veritabanı seçme işlemidir. İşlemlerimizi hangi veritabanı üzerinde işleteceğimizi seçebiliriz.
SQL Server Management Studio İle Maintaince Plan Oluşturma

Maintenance Plan Wizard'ı çalıştıralım. SQL Server Management Studio'yu açalım. Object Explorer'dan Management klasörüne gelelim. Eğer Object Explorer'ı göremiyorsak, Managemenet Studio'nun üstünde yer alan menüden sırasıyla View->Object Explorer'ı tıklayalım. Maintenance Plans klasörü üzerinde sağ tuşla tıklayalım. Gelen menüden Maintenance Plan Wizard seçeneğini seçelim.

Click the image to open in full size.

7.Resim: Yeni Maintaince Plan başlatma


Sihirbazın ilk ekranı olan karşılama ekranı karşımıza gelecektir. Next komut düğmesine tıklayalım.

Karşımıza gelen ekranda, Select a Target Server seçeneği görünecektir. Oluşturacağımız plana isim verelim ve hedef seçelim. Maintenance planın kullanacağı yetkilendirme türünü seçerek Windows yetkilendirme mi yoksa SQL Server yetki türümü olduğunu belirleyelim. Hangi seçeneği seçersek seçelim, seçtiğimiz kullanıcının, maintenance planı yapacağımız veritabanında yetkisi olup olmadığından emin olmalıyız. Next komut düğmesine tıklayalım.
Sonrasında gelen ekranımız "Select Maintenance Tasks" ekranıdır. Üzerinde yapılandırma yapabileceğimiz görevler hakkında bir liste karşımıza gelecektir bu ekranda.
Maintaince ekranımız şu şekilde görünmektedir.

Click this bar to view the full image.
Click the image to open in full size.


8.Resim: Yeni Maintaince Plan başlatma.

Bu örneğimizde, bütün seçenekleri aktif hale getirelim.
Maintaince Plan, veritabanı yöneticisinin SQL Server üzerinde yapabileceği önemli işlemlerden biridir.
Model kutusunda çeşitli seçenekler mevcuttur.

* Bütün veritabanlarını
* Sistem veritabanlarını
* Kullanıcı veritabanlarını
* İstediğimiz bir veritabanını seçebiliriz.

Click this bar to view the full image.
Click the image to open in full size.


9.Resim: Yeni Maintaince Plan başlatma


İşlem yapacağımız veritabanımızı seçtikten sonra ayarlarımız şu şekilde görünecektir.

Click this bar to view the full image.
Click the image to open in full size.


10.Resim: Yeni Maintaince Plan başlatma
Maintenance Plan Tasks


Maintenance Plan ile şu işlemleri yapabiliriz:

Click the image to open in full size.

11.Resim: Maintenance Plan Task

Şimdi bu işlemler üzerinde inceleme yapalım.
Back Up Database Task

Veritabanı görev yedekleme işlemi SQL Server veritabanı yedekleme işleminden farklıdır.
Back Up Database görevi ile, oluşturduğumuz paket bir veritabanının veya birden fazla veritabanının yedeğini alabiliriz. Eğer tek bir veritabanı üzerinde Back Up Database Task görevini işleteceksek, yedekleme bileşeni olarak, veritabanı veya veritabanı dosyaları ve dosya gruplarını seçebiliriz.

Back Up Database görevinin desteklediği yedekleme planı ve yedek türleri şu şekildedir.

Click this bar to view the full image.
Click the image to open in full size.


12.Resim: Maintenance Plan Task
Check Database Integrity Task


Birinci görev olan ?Data Check Integrity? seçeneği veritabanı yapısal bütünlüğünü kontrol eder. Örnek olarak, SQL içindeki boş dis alanı kontrolü, sistem metadata tabloları arasındaki uyumluluk kontrolünü ve yapısal kontrolü sağlar. Bu görev yaygın ve yoğun olarak kullanılır. Bu görevi zamanlamamız ve çalıştırmamız oldukça kısa zamanımızı alır. TempDB'de yeterli disk alanı olup olmadığından emin olmamız gerekmektedir.
Bir çok sihirbaz ekranında olduğu gibi, hedef olan nesneyi seçmemiz gerekmektedir. Bu bütün veritabanları olabileceği gibi, özellikle seçtiğimiz bir veritabanı da olabilir. Bu örnek için AdventureWorks veritabanı seçeceğiz.
Bu ekranda, ekleme veya çıkarma işlemi için seçme kutuları karşımıza gelecektir. Bu örneğimiz için bütün seçme kutularını seçelim. Aşağıdaki T-SQL kodu sihirbaz ile oluşturduğumuz işlemi yapmaktadır.

USE AdventureWorks
GO
DBCC CHECKDB WITH NO_INFOMSGS


Not: ?WITH NO_INFOMSGS? parametresi gereksiz bilgi mesajlarına karşı korumaktadır.
Execute SQL Server Agent Job Task

SQL Server Agent job'larını çalıştırmak için kullanılan görev seçeneğidir. SQL Server Agent servisi, SQL Server üzerinde belirli aralıklarla çalıştırılması ayarlanmış olan işleri (jobs) çalıştırılmasını sağlayan servistir. Job (iş) oluşturmak için T-SQL kullanabileceğimiz gibi Management Studio aracılığı ile de oluşturabiliriz. Bunların yanı sıra, paket oluşturup çalıştırarak da SQL Server 2005 üzerinde görev paketi oluşturabiliriz.
Execute SQL Server Agent Job görevini kullanarak, SQL Server 2005 bileşenleri ile ilişkili olarak yönetici görevi olarak işlettirebiliriz.
Execute T-SQL Statement Task

Execute T-SQL Statement görevi T-SQL komutları çalıştırmamızı sağlayan görev işletme yöntemidir.
Bu görev yöntemi Execute SQL görevi ile benzerlik göstermektedir. Bunlara rağmen, Execute T-SQL Statement görevi ile yalnızca Transact-SQL versiyonunu destekler. Onun haricinde kullandığımız SQL komutlarını desteklemez ve çalıştırmaz. Eğer sorgumuzla birlikte parametre kullanarak sorgumuzu işleteceksek, Execute T-SQL Statement görevi yerine Execute SQL görevini kullanmalıyız.
History Cleanup Task

History Cleanup görevi ile SQL Server'daki msdb veritabanındaki geçmiş tabloları silebiliriz.
Maintenance Cleanup Task

Maintenance Cleanup görevi; belirlediğimiz sunucu üzerindeki maintenance plan raporlarını veya yedekleme dosyalarını silme işlemini gerçekleştiren görevdir.

Maintenance Cleanup görevi, herhangi bir dosya veya dosya grubunu silmemiz için seçenek imkanı sunmaktadır. Seçenek olarakü, belirli uzantıya sahip olan dosyaları silme imkanı tanımaktadır.
Notify Operator Task

Yedekleme ünitesinde yapılan işlemin başarılı olup olmadığının uyarısını verdirtebiliriz.

Notify Operator görevi, SQL Server Agent operatörüne uyarı mesajı göndermekle görevlidir. SQL Server Agent operatörü uyarıları kabul eden belirli bir gruba sahiptir.

Notify Operator'ü kullanarak, paketimizde belirlediğimiz belirli bir işlem sonucunda kendimize uyarı mesajı gönderebiliriz. Bu uyarı mesajlarını eposta olarak, sayfa olarak veya net send komutu ile belirli bilgisayarlara gönderebiliriz. Her bir operatör farklı metodlarla uyarılabilir. Örneğin, OperatörA eposta ve sayfa ile uyarılırken, OperatorB net send komutu ile uyarılabilir. Bu operatorler, görev tarafından uyarı mesajı olan alıcı operatör, Notify Operator görevi üzerinde OperatorNotify koleksiyonun üyeleri olmaları gerekiyor.
Rebuild Index Task

SQL Server veritabanındaki tablo ve görünümler içindeki dizin yapısının yeniden derlenmesini sağlar.
Bu adım, tanımlanmış olan dizinin sihirbaz aracılığı ile belirttiğimiz şekilde düzenler.

* ?Change free space per page? seçeneği, her bir Index Page dosyası için ayrılacak olan alanı belirlememizi sağlar.
* ?Sort results in tempdb? seçeneği, çalışılan verilerin üzerinde sıralama işlemi yapılacağı zaman, hafıza yer kaplamak yerine tempdb veritabanı içinde işlem yapımını gerçekleştirir.
* ?Ignore Duplicate Keys? seçeneğini seçerek, bir çok veri girişi gerçekleştiğinde ve çift anahtar olduğunda bu durumun göz ardı edilmesi gerektiğini belirtmiş oluruz.
* ?Keep Index Online? seçeneğini seçerek, yeni bir dizin (index) oluştururken bile, arka tarafta kullanıcıların var olan dizinleri (index) kullanabilmesine imkan tanırız.

Aşağıdaki T-SQL kodu bu adımda yaptığımız işlemi yapmaktadır.

Click this bar to view the full image.
Click the image to open in full size.


Reorganize Index Task

Reorganize Index görevi, SQL Server üzerindeki veritabanlarındaki ve görünümlerdeki dizin yapısını yeniden düzenleme işlemini sağlar.
Reorganize Index görevini kullanarak, oluşturduğumuz paketi tek veritabanı üzerinde veya birden fazla veritabanı üzerinde çalıştırabiliriz. Tek bir veritabanı üzerinde çalıştığımız sırada, yeniden düzenlemek istediğimiz dizinleri (index) tablo ve görünüm bazında seçebiliyoruz.

Reorganize Index görevi, ek olarak Compact Large Object Data seçeneği sunmaktadır. Bu seçenek sayesinde; IMAGE, TEXT, NTEXT, VARCHAR(MAX), NVARCHAR(MAX), VARBINARY(MAX) veya XML veri türleri üzerinde işlem yapılmasına uyumlu hale gelir.

Aşağıdaki T-SQL kodu sihirbazın bu adımının yaptığı işlemi yapmaktadır.

Click this bar to view the full image.
Click the image to open in full size.


Shrink Database Task

Shrink Database görevi, veritabanı ve log dosyalarımızın fiziksel boyutu üzerinde indirme işlemi yapma görevidir. ?Shrink database when it grows beyond? alanına girilen değer, job (iş) başladığı zaman değerlendirilecek olan değerdir. Eğer veritabanı boyutu, buraya girilen boyuttan daha fazla boyuta ulaşırsa, bu görev çalıştırılacaktır.

Bir sonraki adım ?Amount of free space to retain? adımıdır. SQL Server'ını veritabanı için net olarak ne kadar alan ayırabileceğini belirlediğimiz adımdır.

Eğer boş alan sıfır olarak kalırsa, her bir veritabanı ihtiyacı olan alanı SQL motoruna bildirir. Ek disk alanı işletim sistemi tarafından sağlanır.

?Return freed space to operating system? seçtiğimizde, SQL'in herhangi bir boş alana ihtiyaç duyduğunda işletim sisteminden yeniden talep eder. Diğer taraftan ?retain? seçeneği ile boş alanın SQL'de kalmasını sağlayabiliriz.

Aşağıdaki T-SQL kodu bu sihirbazın yapmış olduğu işi üretiyor.

Click this bar to view the full image.
Click the image to open in full size.


Update Statistics Task

Update Statistic görevi, belirlediğimiz tablolar üzerindeki bir veya birden fazla istatistik grup anahtar değerlerinin güncellenmesi işlemini görevini yürütür.
Update Statistics görevini kullanarak oluşturduğumuz görev paketi, tek veritabanı veya birden fazla veritabanı üzerinde istatistik günceller. Eğer tek bir veritabanı üzerinde istatistik güncelleme işlemi gerçekleştirilecekse, tabloların mı yoksa görünümlerin mi istatistiklerinin güncelleneceğini özel olarak belirleyebiliriz. Yapcağımız özel konfigürasyonlar ile bütün istatistikleri güncelleyebileceğimiz gibi, yalnızca kolon istatistiklerini veya yalnızca dizin (index) istatistiklerini güncelleyebiliriz.
SONUÇ

SQL Server 2005 Maintenance Plan sihirbazı veritabanı bakımı açısından birçok temel görevi ve seçeneği vardır. Bu sihirbazın kullanımı oldukça kolay ve anlaşılırdır. Bunlara ek olarak, oluşturduğumuz paketi kayıt edebilir ve güncelleyebiliriz

SQL Server 2000'de, birçok veritabanı yöneticisi veritabanlarının performanslarını arttırmak için maintenance plan kullanmaktadırlar. Maintenance plan basit bir sihirbaz arayüzü ile yapılandırılabiliyordu. Sihirbaz adımlarındaki varsayılan değerler ile birlikte kullanımı oldukça kolaydı. Mükemmel değildi fakat çalışıyor ve iş görüyordu. SQL Server 2005'in yayınlanmasıyla birlikte, Maintenance plan'daki değişiklerle veritabanı yöneticilerine verdiği cevap kompleksleşmiştir. Maintenance plan fonksiyonelliği SSIS (Integration Services) içinde birleştirilmiştir. Maintenance plan ile çalışmalarımızdaki görevlerin akışını birbiri ile ilişkilendirebiliriz. Bu şekilde Maintenance Plan bize bir çok imkan sağlamaktadır.

Digg Google Bookmarks reddit Mixx StumbleUpon Technorati Yahoo! Buzz DesignFloat Delicious BlinkList Furl

0 yorum: on "SQL Server 2005'te Veritabanı Yedekleme Planı (Recovery) ve Maintenance Plan"

Yorum Gönder