SQL Serverdə baza Recovery Modelləri

SQL Serverdə baza Recovery Modelləri
Recovery Modellər bir məlumat bazası özəlliyi olub məlumat bazasının transaction logların necə saxlanılmasını təmin edir.
SQL Serverdə bir məlumat bazasının üçün üç recovery model mövcuddur.
- Simple Recovery Model
- Full Recovery Model
- Bulk Logged Recovery Model
Yuxarıda sadaladığımız recovery modellərə ətraflı nəzər salaq.
Simple Recovery Model
Simple Recovery Model-də məlumat bazasının loglarında saxlanılan tranzaksiyalar Checkpoint əməliyyatından sonra avtomatik silinirlər. Buna görədə Transaction logların saxlanılan faylın şişməsi problemi yaşanmır. Simple recovery modeldə logların idarə edilməsi çox asan olduğu kimi həmçinin də çatışmamazlıqları var. Məlumat bazasında hər hansı bir problem yaşanarsa, transaction loglar silindiyi üçün logların geriyə qayıtmaq mümkün olmayacaq. Buda məlumat itkisinə gətirib çıxaracaq. Çünki hər hansı bir fəlakət baş verərsə ən yaxşı ehtimal alınmış tam ehtiyyat (Full backup) və ya fərqli ehtiyyat (Differential backup) tarixinə məlumat bazamızı geri yükləyə (restore) bilərik.
QEYD: Bir məlumatı unutmayaq ki, hər üç recovery modeldə transaction loglar fayl üzərində saxlanılır. Recovery modelləri öyərənərkən logların saxlanılmaması düşüncəsi sizdə yalnış fikir yaratmasın.
Full Recovery Model
Full Recovery Modeldə bütün transaction loglar saxlanılır və əllə(manual) müdaxilə edilmədikcə qalır. Bunun üçündə Full Recovery Modeldəki məlumat bazasını bəlli bir tarixə və ya əməliyyat əvvəlinə geri yükləmək(restor) etmək mümkündür. Full Recovery Modeldə hər əməliyyat transaction loglara yazıldığı üçün ən güvənilir Recovery Modeldir. Logların silinməsi əllə(manual) müdaxilə edilərək silindiyi üçün müəyyən vaxt aralıqlarında loglar silinməlidir əgər silinməzsə log faylının şişməsinə və sərt diskdə müəyyən yeri tutmasına gətirib çıxaracaq. Log faylların həcminin azaldılması üçün iki yol var. Birincisi transaction logların ehtiyyat(backup) sürətini çıxarmaq və ya transaction logların Shrink edilməsidir.
SQL Server 2005-dən sonrakı versiyalarda bazanın Shrink edilməsi üçün ilk öncə Recovery Model Simpla seçilməlidir və Shrink edildikdən sonra yenidən Recovery model Full edilməlidir.
Full Recovery Modeldə bütün əməliyyatlar yaddaşda saxlanıldığı üçün bu bazanın sürətli işləməsinə azda olsa təsir edir.
Bulk Logged Recovery Model
Bulk Logged Recovery Model Full Recovery modeldən fərqli olaraq toplu(bulk) əməliyyatlarından başqa bütün əməliyyatlar saxlanılır. Hər hansı bulk əməliyyat yerinə yetirərkən yalnız bir məlumat log faylına yazılır. Buda məlumat bazamızı hər hansı bir tarixə geri yükləməyə(restore) imkan vermir. Bulk Logged modeldə hər məlumat tək tək log faylına yazılmadığı üçün Full Recovery modeldən daha sürətli işləyir.
Bulk Logged Recovery Modelde yazdığımız bulk əməliyyatlardan bir neçəsi bunlarıdır: İndex yaratma, silmə, Rebuild, select into və.s.
İndi isə məlumat bazasının Recovery modelin necə dəyişmək olur ona baxaq.
Məlumat bazası üzərində sağ düyməni sıxaraq açılan pəncərdə Properties seçirik və Database Poperties pəncərəsi açılacaq. Sol paneldən Options seçirik və sağ paneldə gördüyümüz Recovery Model-dən seçim edərək Ok düyməsini sıxırıq. (Şəkil.1)
Şəkil.1
SQL Sorğu vasitəsi ilə isə aşağıdakı formada dəyişiklik etmək mümkündür.
ALTER DATABASE BazanınAdı SET RECOVERY RecoveryModelinAdı
ALTER DATABASE EF SET RECOVERY SIMPLE GO ALTER DATABASE EF SET RECOVERY FULL GO ALTER DATABASE EF SET RECOVERY BULK_LOGGED GO
Bu məqaləmizində sonuna gəldik inanıram faydalı olacaq.
Hörmətlə,
Elvin Yusifli


Şərhlər ( 3 )
Elvin bəy, dəyərli məqalədir. Təşəkkür edirik.
Yazan əlləriniz var olsun, təşəkkürlər dəyərli və yararlı məqalələr üçün… Davamlı olsun inşallah, meqalələrinizi oxumaq, öyrənmək xoşdur.
Təşəkkürlər. Faydalı oldu.