Jurnalizatsiya
MBBTning asosiy talablaridan biri tashqi xotirada ma'lumotlarni saqlash ishonchliligi hisoblanadi. Saqlash ishonchliligi ma'lumotlar bazasi har qanday apparat yoki dasturiy ta'minot ishdan chiqqanidan so'ng MBning oxirgi izchil holatini tiklash imkoniyatiga ega ekanligini anglatadi. Uskuna etishmovchiligining ikkita mumkin bo'lgan turlari odatda ko'rib chiqiladi: kompyuterning to'satdan yopilishi (masalan, favqulodda quvvatni o'chirish) va tashqi xotira tashuvchisida ma'lumotlarning yo'qolishi bilan tavsiflanadigan yomon muvaffaqiyatsizliklar. Dasturiy ta'minotning ishlamay qolishiga misollar quyidagilardan iborat bo'lishi mumkin: MBBT-ni g'ayritabiiy ravishda tugatish (dasturdagi xato yoki ba'zi bir apparat ishlamay qolishi natijasida) yoki foydalanuvchi dasturining g'ayritabiiy ravishda to'xtatilishi, natijada ba'zi operatsiyalar to'liqsiz bo'lib qolmoqda. Birinchi vaziyatga yumshoq apparat yetishmovchiligining maxsus turi sifatida qarash mumkin; ikkinchisi sodir bo'lganda, faqat bitta operatsiyaning oqibatlarini bartaraf etish talab etiladi.
Ma'lumki, har qanday holatda ham, ma'lumotlar bazasini tiklash uchun siz qo'shimcha ma'lumotlarga ega bo'lishingiz kerak. Boshqacha qilib aytganda, ma'lumotlar bazasida ma'lumotlarni saqlash ishonchliligini ta'minlash uchun juda ko'p miqdordagi ma'lumotlar saqlanishi talab etiladi va tiklash uchun foydalaniladigan ma'lumotlarning alohida qismi ishonchli saqlanishi kerak. Bunday ortiqcha ma'lumotlarni saqlashning eng keng tarqalgan usuli bu ma'lumotlar bazasini o'zgartirish jurnalini yuritishdir.
Jurnal bu ma'lumotlar bazasining alohida qismi bo'lib, u MBBT foydalanuvchilari uchun imkoni yo'q va alohida g'amxo'rlik bilan saqlanadi (ba'zida turli xil fizik disklarda joylashgan jurnalning ikkita nusxasi saqlanadi), u ma'lumotlar bazasining asosiy qismidagi barcha o'zgarishlar to'g'risidagi yozuvlarni oladi. Turli xil ma'lumotlar bazalarida ma'lumotlar bazasidagi o'zgarishlar turli darajalarda qayd qilinadi: ba'zan jurnal yozuvi ma'lumotlar bazasini o'zgartirishning mantiqiy ishlashiga (masalan, ma'lumotlar bazasi jadvalidan qatorni o'chirish bo'yicha operatsiya), ba'zida esa - tashqi xotira sahifasini o'zgartirishning minimal ichki ishlashiga to'g'ri keladi; ba'zi tizimlar ikkala yondashuvni bir vaqtning o'zida ishlatadilar.
Barcha holatlarda ular "oldindan xabar berish" ro'yxatga olish strategiyasini ("Write Ahead Log - WAL protokoli" deb nomlanadi) bajaradilar. Taxminan aytganda, ushbu strategiya biron bir ma'lumotlar bazasi obyekti o'zgarishi to'g'risidagi yozuv o'zgartirilgan obyekt ma'lumotlar bazasining asosiy qismining tashqi xotirasiga kirmasdan oldin jurnalning tashqi xotirasini kiritishi kerakligidan iborat. Ma'lumki, agar WAL protokoli ma'lumotlar bazasida to'g'ri kuzatilgan bo'lsa, u holda jurnal yordamida biron bir nosozlikdan so'ng ma'lumotlar bazasini tiklash bilan bog'liq barcha muammolarni hal qilishingiz mumkin.
Qayta tiklashning eng oddiy holati - bu tranzaksiyaning individual qaytarilishi. Qat'iy aytganda, bu tizimdagi ma'lumotlar bazasini o'zgartirish dasturini talab qilmaydi. Ushbu tranzaksiyada bajarilgan ma'lumotlar bazasini o'zgartirish operatsiyalarining lokal jurnalini yuritish va lokal jurnal oxiridan boshlab teskari operatsiyalarni bajarish orqali operatsiyani orqaga qaytarish kifoya. Ba'zi bir ma'lumotlar bazalarida ular buni amalga oshiradilar, lekin ko'pgina tizimlarda lokal jurnallar qo'llab-quvvatlanmaydi va alohida tranzaksiyalar butun tizim jurnaliga ko'ra qaytariladi, buning uchun bitta tranzaksiyaning barcha yozuvlari teskari ro'yxatda (oxiridan boshiga) bog'lanadi.
Dostları ilə paylaş: |