Makale Özeti

Merhaba Sevgili Arkadaşlar, SQL Server da aldığımız hatalardan biri olan ERROR 9002 hatası nedir ve nasıl çözümleriz bu makalemizde bundan bahsedeceğim.

Makale

LOG dosyalarımızın şişmesinden dolayı SQL Server Log dosyamızı küçültmemizi bizden bekler. Fakat Shrink işlemlerimizi yapmaya kalktığımızda da 9002 hatasını bize döndürür. Yani direk bir shrink işlemi ile bunu çözümleyemiyoruz.

Peki bunun için ne yapmalıyız.

 

İlk önce aşağıda ki scripti çalıştırarak ;

dbcc sqlperf ( logspace )

Database’ lerin yukarıda ki ekranda da görüldüğü üzere Log Size larına ve yüzdelik dilimlerine ulaşabiliyoruz. Buradan edindiğimiz bilgi eşliğinde Database’ imizin üzerine gelip sağ tıkladıktan sonra aşağıda ki pencere karşımıza çıkmaktadır. Bu pencereden Proparties sekmesine tıklanılarak DB ayarlarına girmiş oluyoruz.

Bunun üzerine önümüze gelen ekranda sol tarafta ki “Select a page”  bölümünde DB ayarlarımızın başlıkları yer almaktadır. Bizim bu bölümde kullanacağımız bölüm “Options” dır.

Options sekmesine tıkladıktan sonra sağ tarafta bu sekmeye ait özellikleri düzenleyebileceğimiz alan gelmektedir. Bu alan içinde “Recovery Model” alanında DB ‘ mizi Simple moda çekmemiz gerekmektedir.

Simple Mod : Transaction logları neredeyse tutulmaz. Bundan dolayı Log Backup alınamaz. Doğal olarak alınan son full/differential backup’dan sonra herhangi bir hata durumunda loglar vasıtasıyla dönüş imkanları yoktur.

Veri kaybının çok önemli olmadığı, CRUD işlemlerinin az gerçekleştiği sistemlerde tercih edilebilir.

Sürekli olarak Full veya Differential Backup almak durumundan dolayı yer ve yedekleme performans sıkıntısı ortaya çıkar.

Proparties bölümünde Recovery Model ‘i Simple Mod ‘a çektikten sonra OK butonuna basıyoruz.

Daha sonra Database ‘imiz üzerine gelip sağ tıklıyoruz ve aşağıda ki ekranda da görüldüğü üzere Task sekmesinden Shrink sekmesini seçiğoradan da Files bölümüne tıklıyoruz.

Bu işlemlerden sonra aşağıdaki ekranla karşılaşıyoruz. Shrink File ekranında File Type ‘ı Log olarak seçiyoruz ve OK butonuna basıyoruz.

Tüm işlemler tamamlandıktan sonra New Query diyoruz ve ilk başta çalıştırdığımız scriptimizi tekrar çalıştırıyoruz. Bunun üzerine ilkve şu anda ki sonuçlar arasında ki farka bakıp iyileştirmemizin sonucu görmüş oluyoruz.

Son olarak yapacağımız işlem ise DB ‘mizin Recovery Model ‘ini Full Mod ‘a çekmek olacaktır. Bunu da aynı Simple Mod ‘da yaptığımız işlemleri yaparak gerçekleştirebiliyoruz.

DB ‘mize sağ tıklayıp Proparties sekmesine geliyoruz ve buradan  Options a gelip Recovery Model ‘den Full ‘ü seçiyoruz ve OK butonuna tıklıyoruz.

En Güvenilir Recovery Modeldir.

Full Mod : Yapılan tüm transactionlar loglara yazılır. Doğal olarak tüm yedekleme türlerini destekler.

Point in Time Recovery (Belli bir zamana kadarki verilere dönmek) desteklenir.

Transactional Log Backup alınabildiğinden dolayı sürekli Full veya Differential backup almak durumunda değilsiniz.

Log Backupları uzun sure alınmadığında loglardaki şişme sistemin yavaşlamasına neden olur. Log Backup alınarak yedeği daha once alınmamış loglar serbest bırakılır ve ardından bir shrink işlemi gerçekleştirilebilir.

Evet arkadaşlar ! Karşılaştığımız bu önemli sorunun ortadan kalktığını görmüş olacağız.

Diğer Makalelerimde Görüşmek Dileğiyle….

Saygılarımla

Yusuf KAHVECİ

Database Administrator

(İzin Alınmadığı Sürece Makalelerin Yayınlanması Yasaktır! )