5. Tranzaksiya jurnali. Oraliq holatlarni saqlash, tranzaktsiyani tasdiqlash yoki orqaga qaytarish tamoyilini amalga oshirish tranzaksiya jurnali deb ataladigan tizim tuzilmasi yaratilgan maxsus mexanizm tomonidan ta'minlanadi. Tranzaksiya jurnali ma'lumotlar bazasini o'zgartirish yozuvlari ketma-ketligini o'z ichiga oladi. U ma'lumotlar bazasida ishonchli ma'lumotlarni saqlashni ta'minlash uchun mo'ljallangan. Bu har qanday apparat va dasturiy ta'minotdagi nosozliklardan so'ng ma'lumotlar bazasining barqaror holatini tiklash qobiliyatini nazarda tutadi. Ro'yxatga olish va qayta tiklashning umumiy tamoyillari:
· amalga oshirilgan operatsiyalar natijalari ma'lumotlar bazasining tiklangan holatida saqlanishi kerak;
· amalga oshirilmagan operatsiyalar natijalari ma'lumotlar bazasining tiklangan holatida bo'lmasligi kerak.
Bu ma'lumotlar bazasining oxirgi barqaror holati tiklanganligini anglatadi.
Ma'lumotlar bazasi holatini tiklash zarur bo'lgan quyidagi holatlar mumkin:
· RAM tarkibini to'satdan yo'qotishdan tiklash (yumshoq nosozlik). Bu holat quyidagi hollarda yuzaga kelishi mumkin: favqulodda quvvat o'chirilganda yoki halokatli protsessor ishdan chiqqanda. Vaziyat nosozlik paytida RAM buferlarida bo'lgan ma'lumotlar bazasi qismining yo'qolishi bilan tavsiflanadi.
· Asosiy tashqi ma'lumotlar bazasi vositalarining buzilishidan tiklash (qattiq nosozlik).
Tizim kichik uzilishlar (masalan, muvaffaqiyatsiz tranzaksiyalar) va katta uzilishlardan keyin (masalan, elektr uzilishlari, qattiq nosozliklar) tiklanishi kerak.
Yumshoq ishlamay qolsa, disklarda saqlangan tranzaksiya jurnallari tarkibidan ma'lumotlar bazasi tarkibini tiklash kerak. Qattiq muvaffaqiyatsizlikka uchragan taqdirda, ma'lumotlar bazasi tarkibini arxiv nusxalari va tranzaksiya jurnallaridan buzilmagan tashqi muhitda saqlanadigan qayta tiklash kerak.
Jurnal ma'lumotlarini saqlashning ikkita asosiy varianti mavjud. 1-variantda ushbu tranzaksiya bo'yicha har bir tranzaksiya uchun alohida mahalliy ma'lumotlar bazasini o'zgartirish jurnali yuritiladi. Bunday jurnallar mahalliy jurnallar deb ataladi. Ular tranzaktsiyalarni mahalliy qaytarish uchun ishlatiladi. Bundan tashqari, umumiy ma'lumotlar bazasini o'zgartirish jurnali yuritiladi, u yumshoq va qattiq nosozliklardan keyin ma'lumotlar bazasini tiklash uchun ishlatiladi.
Ushbu yondashuv sizga individual tranzaksiyalarni tezda qaytarish imkonini beradi, lekin mahalliy va umumiy jurnallarda takroriy ma'lumotlarga olib keladi. Shuning uchun, ikkinchi variant ko'proq qo'llaniladi - faqat ma'lumotlar bazasini o'zgartirishning umumiy jurnalini yuritish, bu alohida orqaga qaytarishni amalga oshirishda ham qo'llaniladi.
Jurnalning umumiy tuzilishi ketma-ket fayl ko'rinishida ifodalanishi mumkin, unda tranzaktsiyani bajarish jarayonida ma'lumotlar bazasida sodir bo'lgan har bir o'zgarish qayd etiladi. Barcha tranzaktsiyalar ichki raqamlarga ega, shuning uchun barcha operatsiyalar bo'yicha kiritilgan barcha o'zgarishlar tranzaktsiyalar jurnalida qayd etiladi.
Har bir jurnal yozuvi tegishli bo'lgan tranzaktsiyaning raqami va u o'zgartiradigan atributlarning qiymatlari bilan belgilanadi, bundan tashqari, jurnaldagi har bir tranzaksiya uchun tranzaktsiyani boshlash va tugatish buyrug'i yoziladi.
Kattaroq ishonchlilik uchun tranzaktsiyalar jurnali ko'pincha DBMSning tizim vositalari tomonidan takrorlanadi, shuning uchun tashqi xotira hajmi ma'lumotlar bazasidagi ma'lumotlarning haqiqiy hajmidan bir necha baravar ko'pdir.
Tranzaktsiyalar jurnali uchun ikkita variant mavjud: kechiktirilgan yangilash protokoli va darhol yangilash protokoli.
Yalang'och yangilanish jurnali quyidagi tranzaksiyani bajarish mexanizmini nazarda tutadi:
1. T1 tranzaktsiyasi boshlanganda protokolga yozuv kiritiladi