Журналізація змін — функція СКБД, яка зберігає інформацію, необхідну для відновлення бази даних в попередній узгоджений стан в разі збою в роботі СКБД (програмного чи апаратного), а також для забезпечення можливості скасування транзакцій.
У найпростішому випадку журналювання змін полягає в послідовному записі у зовнішню пам'ять всіх змін, які виконуються в базі даних. Записується наступна інформація:
- Порядковий номер, тип і час зміни;
- Ідентифікатор транзакції;
- Об'єкт, що піддався зміні (номер зберігається файлу і номер блоку даних в ньому, номер рядка всередині блоку);
- Попередній стан об'єкта і новий стан об'єкта.
Формована таким чином інформація називається журнал змін бази даних. Журнал містить позначки початку і завершення транзакції, і позначки прийняття Контрольні точки програми (див. Нижче).
В блоки даних зовнішньої пам'яті забезпечуються позначкою порядкового номера останньої зміни, яке було виконано над цим блоком даних. У разі збою системи ця позначка дозволяє дізнатися яка версія блоку даних встигла досягти зовнішньої пам'яті.
СУБД з відкладеним записом періодично виконує контрольні точки. Під час виконання цього процесу всі незаписані дані переносяться на зовнішню пам'ять, а в журнал пишеться відмітка прийняття контрольної точки. Після цього вміст журналу, записаний до контрольної точки може бути видалено.
Журнал змін може не записуватися безпосередньо в зовнішню пам'ять, а акумулюватися в оперативній. У разі підтвердження транзакції СКБД очікує запису решти журналу на зовнішню пам'ять. Таким чином гарантується, що всі дані, внесені після сигналу підтвердження, будуть перенесені на зовнішній пам'ять, не чекаючи перепису всіх змінених блоків з . СКБД очікує запису решти журналу також і при виконанні контрольної точки.
'В разі логічної відмови' або сигналу відкату однієї транзакції журнал сканується в зворотному напрямку, і всі записи скасовуваної транзакції витягуються з журналу аж до позначки початку транзакції. Згідно витягнутої інформації виконуються дії, що скасовують дії транзакції, а в журнал записуються компенсувальні записи. Цей процес називається 'відкат' (rollback).
'В разі фізичного відмови' , якщо ні журнал, ні сама база даних не пошкоджена, то виконується процес прогону (англ. rollforward). Журнал сканується в прямому напрямку, починаючи від попередньої контрольної точки. Всі записи витягуються з журналу аж до кінця журналу. Витягнута з журналу інформація вноситься в блоки даних в зовнішній пам'яті, у яких позначка номера змін менше, ніж записана в журналі. Якщо в процесі прогону знову виникає збій, то сканування журналу знову почнеться спочатку, але фактично відновлення продовжиться з того моменту, звідки воно перервалося. Після успішного завершення прогону здебільшого виконується контрольна точка.
Типи записів журналу баз даних
Цей розділ потребує додаткових для поліпшення його . (Квітень 2018) |
Всі записи журналу містять загальні атрибути журналу вище, а також інші атрибути залежно від їх типу (який записується у атрибуті «Тип», як зазначено вище).
- Запис про зміну даних відзначає оновлення (зміну) в базі даних. Вона включає в себе таку додаткову інформацію:
- PageID: посилання на ідентифікатор сторінки модифікованої сторінки.
- Довжина і зміщення: зазвичай входить довжина в байтах та зміщення сторінки.
- Before and After Images: Включає значення байтів сторінки до і після зміни сторінки. У деяких базах даних можуть бути журнали, які містять одне або обидва зображення.
- Компенсувальний запис відзначає відкат певної зміни в базі даних. Кожна з них відповідає єдиному запису про зміну даних (хоча відповідний запис про зміну даних не зберігається в компенсувальному записі). Вона включає в себе таку додаткову інформацію:
- undoNextLSN: це поле містить LSN наступного запису журналу, який потрібно скасувати для транзакції, яка написала останній запис про зміну.
- Запис про Commit відзначає рішення про завершення (commit) транзакції.
- Запис про Abort відзначає рішення про перерву і, отже, відкат транзакції.
- Запис про контрольну точку зазначає, що була виконана контрольна точка. Вони використовуються для прискорення відновлення. Вони записують інформацію, яка усуває необхідність прочитати багато минулих даних з журналу. Поведінка залежить від алгоритму контрольної точки. Якщо всі брудні (змінені) сторінки записуються на носій даних при створенні контрольної точки (як у PostgreSQL), цей запис може містити:
- redoLSN: посилання на перший запис журналу, який відповідає брудній сторінці. тобто перша зміна даних, яка не була записана на носій. Саме тут слід починати відновлення в процесі прогону.
- undoLSN: посилання на найстаріший запис журналу найстарішої транзакції, що ще виконується. Це найстаріший запис журналу, необхідний для скасування всіх поточних операцій.
- Запис про завершення транзакції зазначає, що для цієї конкретної транзакції виконана уся робота. (Вона повністю підтверджена або відкочена)
Мультиплексування
Для збільшення відмовостійкості СКБД може записувати одночасно кілька ідентичних копій журналу змін. Якщо в разі відмови одна з копій журналу виявиться недоступною, СКБД відновить базу даних використовуючи будь-яку з доступних копій. Така стратегія називається мультиплексуванням журналу змін.
Архівування
Як правило, журнал змін перезаписується спочатку, як тільки закінчується простір зовнішньої пам'яті, виділений під нього. Це дозволяє відновити базу даних до актуального та узгодженого стану, але тільки в тому випадку, якщо сама база даних не втрачена, нехай навіть і не в актуальному стані.
Однак в деяких інформаційних системах відновлення повинно бути гарантовано, навіть якщо вся база даних втрачена. У таких системах періодично виконуються резервне копіювання бази даних, а журнал змін розділяється на послідовні відрізки і архівується. Перед початком резервного копіювання виконується контрольна точка і журнал розділяється на відрізки, записані до і після початку резервного копіювання. По завершенні процесу резервного копіювання весь журнал змін записаний до початку резервного копіювання видаляється. Таким чином, при наявності резервної копії і всіх архівів журналів змін, записаних з моменту створення резервної копії, база даних може бути відновлена до актуального стану, навіть якщо усі блоки даних були втрачені.
Реалізації
Не всі реальні СКБД слідують класичній схемі реалізації журналу змін, зокрема з міркувань ефективності.
Oracle Database
В Oracle Database використовуються журнали змін двох видів: циклічний оперативний журнал повтору (redo log) і архівний журнал повтору (archive log), в якій переносяться записи з першого журналу при проходженні повного циклу першого. Обидва журнали записуються на постійний носій. В оперативний журнал дані про операції потрапляють в момент перед фіксацією даних на енергонезалежному носії, архівний журнал працює тільки в особливому режимі підтримки журнального архівування бази даних (archivelog). Інформація з журналів змін не використовується для відкоту транзакції, але застосовується для відновлення. Процес відновлення проводиться адміністратором з використанням резервної копії бази даних і послідовного застосування до неї архівних журналів і журналів повтору.
Інформація для відкату (журнал відкату,undo log) групується в сегменти відкату, які обслуговуються табличними просторами спеціального типу. Для цих даних також ведеться журнал повтору, тобто, вони захищені таким же чином, як інші дані в базі. У разі відкату журнал використовується для відновлення запису змінною транзакції. Крім того, інформація з журналу відкату використовується для підтримки для забезпечення доступу до знімка даних, зробленому в момент вибірки.
Informix
В СУБД Informix журнал змін вдає із себе дисковий простір, розділений на частини, звані файлами журналу транзакцій (ці файли не мають нічого спільного з файлами на файловій системі) або 'логічним журналом' . Запис змін в цей журнал залежить від того, в якому режимі знаходиться база даних — без журналювания, з буферизованим журналюванням або з небуферизованим жарналюванням. Всі зміни спочатку потрапляють в буфер логічного журналу, а подальше скидання їх в журнал транзакцій залежить від режиму журналювання бази даних.
Для відновлення в разі відмови використовується т. Зв. 'Фізичний журнал' , в який копіюються образи сторінок перед їх зміною. У разі збою сервера непідтверджені дані будуть відновлені під час запуску.
Див. також
Примітки
- Controlling Archiving
Література
- Когаловский М. Р. Энциклопедия технологий баз данных. — М.: Финансы и статистика, 2002. — 800 с. — .
- Кузнецов С. Д. Основы баз данных. — 2-е изд. — М.: Интернет-университет информационных технологий; БИНОМ. Лаборатория знаний, 2007. — 484 с. — .
- Дейт К. Дж. Введение в системы баз данных = Introduction to Database Systems. — 8-е изд. — М.: Вильямс, 2005. — 1328 с. — (рус.) 0-321-19784-4 (англ.).
- Коннолли Т., Бегг К. Базы данных. Проектирование, реализация и сопровождение. Теория и практика = Database Systems: A Practical Approach to Design, Implementation, and Management. — 3-е изд. — М.: Вильямс, 2003. — 1436 с. — .
- Гарсиа-Молина Г., Ульман Дж., Уидом Дж. Системы баз данных. Полный курс = Database Systems: The Complete Book. — Вильямс, 2003. — 1088 с. — .
- C. J. Date. Date on Database: Writings 2000—2006. — Apress, 2006. — 566 с. — , 1-59059-746-X.
Ця стаття має кілька недоліків. Будь ласка, допоможіть удосконалити її або обговоріть ці проблеми на .
|
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Zhurnalizaciya zmin funkciya SKBD yaka zberigaye informaciyu neobhidnu dlya vidnovlennya bazi danih v poperednij uzgodzhenij stan v razi zboyu v roboti SKBD programnogo chi aparatnogo a takozh dlya zabezpechennya mozhlivosti skasuvannya tranzakcij U najprostishomu vipadku zhurnalyuvannya zmin polyagaye v poslidovnomu zapisi u zovnishnyu pam yat vsih zmin yaki vikonuyutsya v bazi danih Zapisuyetsya nastupna informaciya Poryadkovij nomer tip i chas zmini Identifikator tranzakciyi Ob yekt sho piddavsya zmini nomer zberigayetsya fajlu i nomer bloku danih v nomu nomer ryadka vseredini bloku Poperednij stan ob yekta i novij stan ob yekta Formovana takim chinom informaciya nazivayetsya zhurnal zmin bazi danih Zhurnal mistit poznachki pochatku i zavershennya tranzakciyi i poznachki prijnyattya Kontrolni tochki programi div Nizhche V bloki danih zovnishnoyi pam yati zabezpechuyutsya poznachkoyu poryadkovogo nomera ostannoyi zmini yake bulo vikonano nad cim blokom danih U razi zboyu sistemi cya poznachka dozvolyaye diznatisya yaka versiya bloku danih vstigla dosyagti zovnishnoyi pam yati SUBD z vidkladenim zapisom periodichno vikonuye kontrolni tochki Pid chas vikonannya cogo procesu vsi nezapisani dani perenosyatsya na zovnishnyu pam yat a v zhurnal pishetsya vidmitka prijnyattya kontrolnoyi tochki Pislya cogo vmist zhurnalu zapisanij do kontrolnoyi tochki mozhe buti vidaleno Zhurnal zmin mozhe ne zapisuvatisya bezposeredno v zovnishnyu pam yat a akumulyuvatisya v operativnij U razi pidtverdzhennya tranzakciyi SKBD ochikuye zapisu reshti zhurnalu na zovnishnyu pam yat Takim chinom garantuyetsya sho vsi dani vneseni pislya signalu pidtverdzhennya budut pereneseni na zovnishnij pam yat ne chekayuchi perepisu vsih zminenih blokiv z SKBD ochikuye zapisu reshti zhurnalu takozh i pri vikonanni kontrolnoyi tochki V razi logichnoyi vidmovi abo signalu vidkatu odniyeyi tranzakciyi zhurnal skanuyetsya v zvorotnomu napryamku i vsi zapisi skasovuvanoyi tranzakciyi vityaguyutsya z zhurnalu azh do poznachki pochatku tranzakciyi Zgidno vityagnutoyi informaciyi vikonuyutsya diyi sho skasovuyut diyi tranzakciyi a v zhurnal zapisuyutsya kompensuvalni zapisi Cej proces nazivayetsya vidkat rollback V razi fizichnogo vidmovi yaksho ni zhurnal ni sama baza danih ne poshkodzhena to vikonuyetsya proces progonu angl rollforward Zhurnal skanuyetsya v pryamomu napryamku pochinayuchi vid poperednoyi kontrolnoyi tochki Vsi zapisi vityaguyutsya z zhurnalu azh do kincya zhurnalu Vityagnuta z zhurnalu informaciya vnositsya v bloki danih v zovnishnij pam yati u yakih poznachka nomera zmin menshe nizh zapisana v zhurnali Yaksho v procesi progonu znovu vinikaye zbij to skanuvannya zhurnalu znovu pochnetsya spochatku ale faktichno vidnovlennya prodovzhitsya z togo momentu zvidki vono perervalosya Pislya uspishnogo zavershennya progonu zdebilshogo vikonuyetsya kontrolna tochka Tipi zapisiv zhurnalu baz danihCej rozdil potrebuye dodatkovih posilan na dzherela dlya polipshennya jogo perevirnosti Bud laska dopomozhit udoskonaliti cej rozdil dodavshi posilannya na nadijni avtoritetni dzherela Zvernitsya na storinku obgovorennya za poyasnennyami ta dopomozhit vipraviti nedoliki Material bez dzherel mozhe buti piddano sumnivu ta vilucheno Kviten 2018 Vsi zapisi zhurnalu mistyat zagalni atributi zhurnalu vishe a takozh inshi atributi zalezhno vid yih tipu yakij zapisuyetsya u atributi Tip yak zaznacheno vishe Zapis pro zminu danih vidznachaye onovlennya zminu v bazi danih Vona vklyuchaye v sebe taku dodatkovu informaciyu PageID posilannya na identifikator storinki modifikovanoyi storinki Dovzhina i zmishennya zazvichaj vhodit dovzhina v bajtah ta zmishennya storinki Before and After Images Vklyuchaye znachennya bajtiv storinki do i pislya zmini storinki U deyakih bazah danih mozhut buti zhurnali yaki mistyat odne abo obidva zobrazhennya Kompensuvalnij zapis vidznachaye vidkat pevnoyi zmini v bazi danih Kozhna z nih vidpovidaye yedinomu zapisu pro zminu danih hocha vidpovidnij zapis pro zminu danih ne zberigayetsya v kompensuvalnomu zapisi Vona vklyuchaye v sebe taku dodatkovu informaciyu undoNextLSN ce pole mistit LSN nastupnogo zapisu zhurnalu yakij potribno skasuvati dlya tranzakciyi yaka napisala ostannij zapis pro zminu Zapis pro Commit vidznachaye rishennya pro zavershennya commit tranzakciyi Zapis pro Abort vidznachaye rishennya pro perervu i otzhe vidkat tranzakciyi Zapis pro kontrolnu tochku zaznachaye sho bula vikonana kontrolna tochka Voni vikoristovuyutsya dlya priskorennya vidnovlennya Voni zapisuyut informaciyu yaka usuvaye neobhidnist prochitati bagato minulih danih z zhurnalu Povedinka zalezhit vid algoritmu kontrolnoyi tochki Yaksho vsi brudni zmineni storinki zapisuyutsya na nosij danih pri stvorenni kontrolnoyi tochki yak u PostgreSQL cej zapis mozhe mistiti redoLSN posilannya na pershij zapis zhurnalu yakij vidpovidaye brudnij storinci tobto persha zmina danih yaka ne bula zapisana na nosij Same tut slid pochinati vidnovlennya v procesi progonu undoLSN posilannya na najstarishij zapis zhurnalu najstarishoyi tranzakciyi sho she vikonuyetsya Ce najstarishij zapis zhurnalu neobhidnij dlya skasuvannya vsih potochnih operacij Zapis pro zavershennya tranzakciyi zaznachaye sho dlya ciyeyi konkretnoyi tranzakciyi vikonana usya robota Vona povnistyu pidtverdzhena abo vidkochena MultipleksuvannyaDlya zbilshennya vidmovostijkosti SKBD mozhe zapisuvati odnochasno kilka identichnih kopij zhurnalu zmin Yaksho v razi vidmovi odna z kopij zhurnalu viyavitsya nedostupnoyu SKBD vidnovit bazu danih vikoristovuyuchi bud yaku z dostupnih kopij Taka strategiya nazivayetsya multipleksuvannyam zhurnalu zmin ArhivuvannyaYak pravilo zhurnal zmin perezapisuyetsya spochatku yak tilki zakinchuyetsya prostir zovnishnoyi pam yati vidilenij pid nogo Ce dozvolyaye vidnoviti bazu danih do aktualnogo ta uzgodzhenogo stanu ale tilki v tomu vipadku yaksho sama baza danih ne vtrachena nehaj navit i ne v aktualnomu stani Odnak v deyakih informacijnih sistemah vidnovlennya povinno buti garantovano navit yaksho vsya baza danih vtrachena U takih sistemah periodichno vikonuyutsya rezervne kopiyuvannya bazi danih a zhurnal zmin rozdilyayetsya na poslidovni vidrizki i arhivuyetsya Pered pochatkom rezervnogo kopiyuvannya vikonuyetsya kontrolna tochka i zhurnal rozdilyayetsya na vidrizki zapisani do i pislya pochatku rezervnogo kopiyuvannya Po zavershenni procesu rezervnogo kopiyuvannya ves zhurnal zmin zapisanij do pochatku rezervnogo kopiyuvannya vidalyayetsya Takim chinom pri nayavnosti rezervnoyi kopiyi i vsih arhiviv zhurnaliv zmin zapisanih z momentu stvorennya rezervnoyi kopiyi baza danih mozhe buti vidnovlena do aktualnogo stanu navit yaksho usi bloki danih buli vtracheni RealizaciyiNe vsi realni SKBD sliduyut klasichnij shemi realizaciyi zhurnalu zmin zokrema z mirkuvan efektivnosti Oracle Database V Oracle Database vikoristovuyutsya zhurnali zmin dvoh vidiv ciklichnij operativnij zhurnal povtoru redo log i arhivnij zhurnal povtoru archive log v yakij perenosyatsya zapisi z pershogo zhurnalu pri prohodzhenni povnogo ciklu pershogo Obidva zhurnali zapisuyutsya na postijnij nosij V operativnij zhurnal dani pro operaciyi potraplyayut v moment pered fiksaciyeyu danih na energonezalezhnomu nosiyi arhivnij zhurnal pracyuye tilki v osoblivomu rezhimi pidtrimki zhurnalnogo arhivuvannya bazi danih archivelog Informaciya z zhurnaliv zmin ne vikoristovuyetsya dlya vidkotu tranzakciyi ale zastosovuyetsya dlya vidnovlennya Proces vidnovlennya provoditsya administratorom z vikoristannyam rezervnoyi kopiyi bazi danih i poslidovnogo zastosuvannya do neyi arhivnih zhurnaliv i zhurnaliv povtoru Informaciya dlya vidkatu zhurnal vidkatu undo log grupuyetsya v segmenti vidkatu yaki obslugovuyutsya tablichnimi prostorami specialnogo tipu Dlya cih danih takozh vedetsya zhurnal povtoru tobto voni zahisheni takim zhe chinom yak inshi dani v bazi U razi vidkatu zhurnal vikoristovuyetsya dlya vidnovlennya zapisu zminnoyu tranzakciyi Krim togo informaciya z zhurnalu vidkatu vikoristovuyetsya dlya pidtrimki dlya zabezpechennya dostupu do znimka danih zroblenomu v moment vibirki Informix V SUBD Informix zhurnal zmin vdaye iz sebe diskovij prostir rozdilenij na chastini zvani fajlami zhurnalu tranzakcij ci fajli ne mayut nichogo spilnogo z fajlami na fajlovij sistemi abo logichnim zhurnalom Zapis zmin v cej zhurnal zalezhit vid togo v yakomu rezhimi znahoditsya baza danih bez zhurnalyuvaniya z buferizovanim zhurnalyuvannyam abo z nebuferizovanim zharnalyuvannyam Vsi zmini spochatku potraplyayut v bufer logichnogo zhurnalu a podalshe skidannya yih v zhurnal tranzakcij zalezhit vid rezhimu zhurnalyuvannya bazi danih Dlya vidnovlennya v razi vidmovi vikoristovuyetsya t Zv Fizichnij zhurnal v yakij kopiyuyutsya obrazi storinok pered yih zminoyu U razi zboyu servera nepidtverdzheni dani budut vidnovleni pid chas zapusku Div takozhZhurnalyuvannya Viyavlennya ta vipravlennya pomilok WAL zhurnalyuvannyaPrimitkiControlling ArchivingLiteraturaKogalovskij M R Enciklopediya tehnologij baz dannyh M Finansy i statistika 2002 800 s ISBN 5 279 02276 4 Kuznecov S D Osnovy baz dannyh 2 e izd M Internet universitet informacionnyh tehnologij BINOM Laboratoriya znanij 2007 484 s ISBN 978 5 94774 736 2 Dejt K Dzh Vvedenie v sistemy baz dannyh Introduction to Database Systems 8 e izd M Vilyams 2005 1328 s ISBN 5 8459 0788 8 rus 0 321 19784 4 angl Konnolli T Begg K Bazy dannyh Proektirovanie realizaciya i soprovozhdenie Teoriya i praktika Database Systems A Practical Approach to Design Implementation and Management 3 e izd M Vilyams 2003 1436 s ISBN 0 201 70857 4 Garsia Molina G Ulman Dzh Uidom Dzh Sistemy baz dannyh Polnyj kurs Database Systems The Complete Book Vilyams 2003 1088 s ISBN 5 8459 0384 X C J Date Date on Database Writings 2000 2006 Apress 2006 566 s ISBN 978 1 59059 746 0 1 59059 746 X Cya stattya maye kilka nedolikiv Bud laska dopomozhit udoskonaliti yiyi abo obgovorit ci problemi na storinci obgovorennya Cya stattya mistit pravopisni leksichni gramatichni stilistichni abo inshi movni pomilki yaki treba vipraviti Vi mozhete dopomogti vdoskonaliti cyu stattyu pogodivshi yiyi iz chinnimi movnimi standartami kviten 2018 Cya stattya ne mistit posilan na dzherela Vi mozhete dopomogti polipshiti cyu stattyu dodavshi posilannya na nadijni avtoritetni dzherela Material bez dzherel mozhe buti piddano sumnivu ta vilucheno kviten 2018