Відновлення баз даних
Відновлення бази даних −усунення порушень логічної абофізичної цілісності БД з метою забезпечення її подальшого використання.
Цілісність бази даних логічна −властивість стану БД,якахарактеризується відсутністю порушень всіх обмежень цілісності, які явно визначені в логічній схемі.
Цілісність бази даних фізична −властивість стану БД,якахарактеризується відсутністю порушень специфікацій схеми зберігання, а також фізичних руйнувань даних на носіях інформації.
Причини руйнування БД, головні функції і методи відновлення БД показані на рис. 13.2. Головною одиницею відновлення в системах з БД є транзакції. Транзакція у разі успішного завершення виконує операцію Commit, а у разі невдачі − операцію Rollback. При виконанні роботи з БД СУБД використовує буфер. Буфер БД − це область основної пам'яті для тимчасового зберігання даних, яка призначена для прискорення операцій з диском.
Причини необхідності відновлення бази даних
Аварійне завершення | Відказ носіїв | Стихійні | ||||
роботи системи | інформації | лиха | ||||
Помилки прикладних | Недбале поводження з | |||||
програм | базою даних | |||||
Функції відновлення бази даних
Резервне копіювання Засоби ведення журналу
Створення контрольних точок
Методи відновлення бази даних
Відновлення з | Відновлення з | |
використанням | використанням | |
відкладеного оновлення | негайного оновлення | |
Відновлення останньої резервної копії
Рис. 13.2. Засоби для організації відновлення бази даних
У відновленні БД ключову роль грає журнал, в якому зберігаються зміни внесені в БД, а також стан кожної транзакції.
Журнал −функціональний компонент СУБД,якийзабезпечує реєстрацію в процесі функціонування системи БД відомостей про виконання транзакцій, про працюючих користувачів, про застосування що використовуються, про доступ до різних структур даних і т.ін.
Журнал забезпечує фіксацію всіх дій транзакцій: старт транзакції, зміну значень елементів БД, результатів або припинення роботи. Інформація журналу і зміни, які вносяться в елементи даних повинні виконуватися синхронно, але конкретний спосіб синхронізації залежить від обраного режиму протоколювання. Існують два основних методи відновлення БД: з відкладеним оновленням і негайним оновленням.
Відновлення з використанням відкладеного оновлення передбачає, що оновлення не заносяться в БД до тих пір, поки транзакція не видасть команду фіксації зроблених змін. Якщо виконання транзакції було закінчено до досягнення цієї точки, то ніяких змін в БД виконано не буде, тому і не потрібна їх відміна (рис. 13.3).
Транзакція | |||||||||||||||
Успішне | |||||||||||||||
Start Transaction | Операції транзакції | завершення | |||||||||||||
Аварійне | |||||||||||||||
завершення | |||||||||||||||
Журнал | |||||||||||||||
Commit | |||||||||||||||
Запис в журналі | Запис в журнал проміжних даних і | ||||||||||||||
про початок | Rollback | ||||||||||||||
транзакції | результатів виконання транзакції | ||||||||||||||
Читання даних | Анулювання | Запис всіх змін даних з | |||||||||||||
журналу в базу даних (Commit) | |||||||||||||||
транзакції | |||||||||||||||
База даних | (Rollback) | База даних | |||||||||||||
Рис.13.3. Схема відновлення з використанням відкладеного оновлення
Відновлення з використанням негайного оновлення передбачає, що всі зміни вносяться в БД одразу після їх виконання в транзакції, ще до досягнення моменту фіксації зроблених змін. Якщо виконання транзакції було закінчено до досягнення цієї точки (аварійно), то для відміни внесених змін у БД використовується журнал. Відміна операцій транзакцій виконується у зворотному порядку (рис. 13.4).
Транзакція | |||||||||||||||||
Успішне | |||||||||||||||||
Start Transaction | Операції транзакції | завершення | |||||||||||||||
Аварійне | |||||||||||||||||
завершення | |||||||||||||||||
Журнал | |||||||||||||||||
Commit | |||||||||||||||||
Запис в журналі | Запис в журнал проміжних даних і | ||||||||||||||||
Rollback | |||||||||||||||||
про початок | |||||||||||||||||
результатів виконання транзакції | |||||||||||||||||
транзакції | |||||||||||||||||
Читання даних | Запис в буфер всіх | Анулювання всіх змін даних | |||||||||||||||
(Rollback) | |||||||||||||||||
поточних змін | |||||||||||||||||
Відновлення попереднього | |||||||||||||||||
даних дії транзакції | |||||||||||||||||
База даних | стану БД | ||||||||||||||||
Буфер бази | База даних | ||||||||||||||||
даних |
Запис всіх змін даних з буферу в базу даних (Commit)
Рис. 13.4. Схема відновлення з використанням негайного оновлення
Контрольна точка −сукупність даних,яка зв'язана здеякою транзакцією в певний момент часу, і зберігається для відновлення (у разі необхідності) стану БД і транзакції, що виконується на цей момент, з метою забезпечення можливості повторного її використання починаючи з цього моменту. Створення контрольних точок під час виконання транзакцій дозволяє виконувати при необхідності її відкат не на початок, а до останньої за часом контрольної точки, завдяки чому суттєво підвищується продуктивність системи.
Засоби ведення журналу дозволяють захистити систему від наслідків втрати даних в оперативній пам'яті. Для відновлення БД від руйнування дискових пристроїв застосовується архівування. Архів являє собою повну або часткову копію БД, яка зберігається у безпечному місці.
Відновлення це процес, який складається з таких етапів:
· створення пустої БД із заданими параметрами (розміром сторінки, режимом запису і т.ін.);
· додавання метаданих (таблиць, різних обмежень і перевірок і т.ін.);
· наповнення даними з файлу резервної копії;
· створення необхідних індексів.
Дата добавления: 2016-03-22; просмотров: 1557;