Кіріспе

Деректер қорын басқару жүйесі атқарған әрекеттердің тарихы. Компьютер ғылымындағы деректер қорында транзакция журналы (сондай-ақ транзакция тіркелмесі, деректер қоры журналы, бинарлық журнал немесе аудит іздері) – деректер қорын басқару жүйесі атқарған әрекеттердің тарихы. Бұл, апаттар немесе аппараттық іркілістер кезінде ACID қасиеттерін кепілдіру үшін пайдаланылады. Физикалық тұрғыдан алғанда, журнал – тұрақты сақтау форматында сақталатын деректер қорына енгізілген өзгерістердің тізімін қамтитын файл. Егер жүйе іске қосылғаннан кейін деректер қоры үйлесімсіз күйде табылса немесе дұрыс тоқтатылмаса, деректер қорын басқару жүйесі деректер қоры журналын қарап, аяқталмаған транзакцияларды кері қайтарады және осы транзакциялардың жасаған өзгерістерін жояды. Сонымен қатар, бұрын аяқталған, бірақ өзгерістері деректер қорында әлі бекітілмеген барлық транзакциялар қайтадан қолданылады. Бұл екеуі де транзакциялардың атомарлығы мен беріктігін қамтамасыз ету үшін жасалады. Бұл терминді деректер қорын басқару жүйесі әдетте ұсынатын, адам оқи алатын басқа журналдармен шатастыруға болмайды. Деректер қорын басқару жүйелерінде журнал – белгілі бір процесспен өзгертілген деректердің тіркелмесі.

Деректер қорының журналы жазбаларының түрлері

Барлық журнал жазбалары жоғарыда көрсетілген жалпы журнал атрибуттарын, сондай-ақ олардың түріне байланысты басқа атрибуттарды қамтиды (Type атрибутында жазылғандай, жоғарыда көрсетілген). Жаңарту журналы жазбасы дерекқорындағы жаңартуды (өзгерісті) тіркеуге арналған. Онда келесі қосымша ақпарат бар:
PageID: Өзгертілген беттің Page ID мекенжайы. Ұзындығы және офсеті: Беттің ұзындығы байттармен және офсеті әдетте қосылады. Before and After Images: Беттің өзгеруінен бұрынғы және кейінгі байттарының мәнін қамтиды. Кейбір дерекқорыларда бір немесе екі суретті қамтитын журналдар болуы мүмкін. Компенсациялық журнал жазбасы (CLR) дерекқордағы нақты бір өзгерісті кері қайтаруды тіркеуге арналған. Әрқайсысы дәл бір жаңарту журналы жазбасына сәйкес келеді (бірақ сәйкес жаңарту журналы жазбасы әдетте Компенсациялық журнал жазбасында сақталмайды). Онда келесі қосымша ақпарат бар:
undoNextLSN: Бұл өріс соңғы жаңарту журналын жазған транзакция үшін кері қайтарылатын келесі журнал жазбасының LSN-ін қамтиды. Сауда-саттықты бекіту туралы жазба. Аборт жазбасы транзакцияны тоқтату және оны кері қайтару туралы шешімді тіркеуге арналған. Бақылау нүктесі жазбасы бақылау нүктесі жасалғанын тіркеуге арналған. Бұл қалпына келтіру жылдамдығын арттыру үшін қолданылады. Олар журналды ұзақ оқымай-ақ қолдануға болатын ақпаратты жазады. Бұл бақылау нүктесі алгоритміне байланысты өзгереді. Егер барлық «кір» беттер бақылау нүктесін жасау кезінде тазартылса (PostgreSQL-дегідей), онда:
redoLSN: Бұл «кір» бетке сәйкес келетін бірінші журнал жазбасының мекенжайы. Яғни, бақылау нүктесінде тазартылмаған алғашқы жаңарту. Қалпына келтіру кезінде қайта жасау осы жерден басталуы керек. undoLSN: Бұл ең ескі ағымдағы транзакцияның ең ескі журнал жазбасының мекенжайы. Бұл барлық ағымдағы транзакцияларды кері қайтару үшін қажетті ең ескі журнал жазбасы. Аяқталу жазбасы осы нақты транзакция бойынша барлық жұмыстар аяқталғанын тіркеуге арналған. (Бұл транзакция толығымен бекітілген немесе тоқтатылған).