Восстановление данных и стандарт SQL

Восстановление после жесткого сбоя

При жестком сбое база данных на диске нарушается физически. Основой восстановления в этом случае является журнал транзакций и архивная копия базы данных. Архивная копия базы данных должна создаваться периодически, а именно с учетом скорости наполнения журнала транзакций.

Восстановление начинается с обратного копирования базы данных из архивной копии. Затем выполняется просмотр журнала транзакций для выявления всех транзакций, которые закончились успешно до наступления сбоя. (Транзакции, закончившиеся откатом до наступления сбоя, можно не рассматривать). После этого по журналу транзакций в прямом направлении повторяются все успешно законченные транзакции. При этом нет необходимости отката транзакций, прерванных в результате сбоя, т.к. изменения, внесенными этими транзакциями, отсутствуют после восстановления базы данных из резервной копии.

Наиболее плохим случаем является ситуация, когда разрушены физически и база данных, и журнал транзакций. В этом случае единственное, что можно сделать - это восстановить состояние базы данных на момент последнего резервного копирования. Для того чтобы не допустить возникновение такой ситуации, базу данных и журнал транзакций обычно располагают на физически разных дисках, управляемых физически разными контроллерами.

Стандарт языка SQL не содержит требований к восстановимости данных, оставляя эти вопросы на усмотрение разработчиков СУБД.

Выводы

Главное требование долговечности данных транзакций состоит в том, что данные зафиксированных транзакций должны сохраняться в системе, даже если в следующий момент произойдет сбой системы. Избыточность хранения данных, позволяющую восстановить систему после сбоя обычно обеспечивает журнал транзакций.

Восстановление базы данных может производиться в следующих случаях:

  • Индивидуальный откат транзакции.
  • Мягкий сбой системы (аварийный отказ программного обеспечения).
  • Жесткий сбой системы (аварийный отказ аппаратуры).

Страницы базы данных и журнала транзакций не записываются сразу на диск, а предварительно буферизируются в оперативной памяти. Страницы базы данных, содержимое которых в буфере отличается от содержимого на диске, называются "грязными" (dirty) страницами. Запись "грязных" страниц из буфера на диск называется выталкиванием страниц во внешнюю память.

Основным принципом согласованной политики выталкивания буфера журнала и буферов страниц базы данных является протокол журнализации Write Ahead Log (WAL) - "пиши сначала в журнал".

Минимальным требованием, гарантирующим возможность восстановления последнего согласованного состояния базы данных, является выталкивание при фиксации транзакции во внешнюю память журнала всех записей об изменении базы данных этой транзакцией.

Индивидуальный откат транзакции выполняется при помощи журнала транзакций.

Восстановление системы после мягкого сбоя осуществляется как часть процедуры перезагрузки системы. При перезагрузке системы транзакции проходят процедуру идентификации для выявления завершившихся и прерванных в результате сбоя транзакций. Транзакции, успешно завершившиеся до наступления сбоя, и данные о которых отсутствуют в базе данных, повторяются заново. Транзакции, не успевшие завершиться к моменту сбоя, и данные о которых имеются в базе данных, откатываются.

Восстановление системы после жесткого сбоя выполняется при помощи архивной копии базы данных и журнала транзакций.


Список литературы

  1. Атре Ш. Структурный подход к организации баз данных. - М.: Финансы и статистика, 1983. - 320 с.
  2. Беренсон Х., Бернштейн Ф., Грэй Д., Мелтон Д., О"Нил Э., О"Нил П. Критика уровней изолированности в стандарте ANSI SQL //СУБД. - 1996. - №2. - С.45-60.
  3. Бойко В.В., Савинков В.М. Проектирование баз данных информационных систем. - М.: Финансы и стати-стика, 1989. - 351 с.
  4. Боуман Д, Эмерсон С., Дарновски М. Практическое руководство по SQL. - Киев: Диалектика, 1997.
  5. Васкевич Д. Стратегии клиент/сервер. - Киев: Диалектика, 1997.
  6. Гилуа М.М. Множественная модель данных в информационных системах. - М.: Наука, 1992.
  7. Голосов А.О. Аномалии в реляционных базах данных //СУБД. - 1986. - №3. - С.23-28.
  8. Грабер М. Введение в SQL. - М.: Лори, 1996. - 379 с.
  9. Грабер М. Справочное руководство по SQL. - М.: Лори, 1997. - 291 с.
  10. Дейт К. Руководство по реляционной СУБД DB2. - М.: Финансы и статистика, 1988. - 320 с.
  11. Дейт К. Введение в системы баз данных //6-издание. - Киев: Диалектика, 1998. - 784 с.
  12. Джексон Г. Проектирование реляционных баз данных для использования с микроЭВМ. - М.: Мир, 1991. - 252 с.
  13. Диго С.М. Проектирование и использование баз данных. - М.: Финансы и статистика, 1995. - 208 с.
  14. Злуф М.М. Query-by-Example: язык баз данных //СУБД. - 1996. - №3. - С.149-160.
  15. Кириллов В.В. Структуризованный язык запросов (SQL). - СПб.: ИТМО, 1994. - 80 с.
  16. Кузнецов С.Д. Введение в системы управления базами данных //СУБД. - 1995. - №1,2,3,4, 1996. - №1,2,3,4,5.
  17. Кузнецов С.Д. Стандарты языка реляционных баз данных SQL: краткий обзор //СУБД. - 1996. - №2. - С.6-36.
  18. Кузнецов С.Д. Операционные системы для управления базами данных //СУБД. - 1996. - №3. - С.95-102.
  19. Кузнецов С.Д. Дубликаты, неопределенные значения, первичные и возможные ключи и другие экзотиче-ские прелести языка SQL //СУБД. - 1997. - №3. - С.77-80.
  20. Кузнецов С.Д. Неопределенная информация и трехзначная логика //СУБД. - 1997. - №5. - С.65-67.
  21. Ладыженский Г.М. Системы управления базами данных - коротко о главном //СУБД. - 1995. - №1,2,3,4.
  22. Мартин Д. Планирование развития автоматизированных систем. - М.: Финансы и статистика, 1984. - 196 с.
  23. Мейер М. Теория реляционных баз данных. - М.: Мир, 1987. - 608 с.
  24. Оззу М.Т., Валдуриз П. Распределенные и параллельные системы баз данных //СУБД. - 1996. - №4. - С.4-26.
  25. Озкарахан Э. Машины баз данных и управление базами данных. - М.: Мир, 1989.
  26. Пржиялковский В. В. Абстракции в проектировании БД //СУБД. - 1998. - №1. - С.90-97.
  27. Прохоров А, Определение оптимальной структуры базы данных //Informix magazine. Русское издание. - 1998. - Апрель.
  28. Нагао М., Катаяма Т., Уэмура С. Структуры и базы данных. - М.: Мир, 1986. - 197 с.
  29. Тиори Т., Фрай Д. Проектирование структур баз данных. В 2 кн., - М.: Мир, 1985. Кн. 1. - 287 с.: Кн. 2. - 320 с.
  30. Ульман Д. Основы систем баз данных. - М.: Финансы и статистика, 1983. - 334 с.
  31. Ульман Д. Базы данных на Паскале. - М.: Машиностроение, 1990. - 386 с.
  32. Хаббард Д. Автоматизированное проектирование баз данных. - М.: Мир, 1984. - 294 с.
  33. Цаленко М.Ш. Моделирование семантики в базах данных. - М.: Наука, 1988.
  34. Цикритизис Д., Лоховски Ф. Модели данных. - М.: Финансы и статистика, 1985. - 344 с.
  35. Чамберлин Д.Д., Астрахан М.М., Эсваран К.П., Грифитс П.П., Лори Р.А., Мел Д.В., Райшер П., Вейд Б.В. SEQUEL 2: унифицированный подход к определению, манипулированию и контролю данных //СУБД. - 1996. - №1. - С.144-159.
  36. Чаудхари С. Методы оптимизации запросов в реляционных системах //СУБД. - 1998. - №3. - С.22-36.
  37. Чен П. Модель "сущность-связь" - шаг к единому представлению о данных //СУБД. - 1995. - №3. - С.137-158.
  38. ANSI X3.135-1992, American National Standart for Information Systems - Database Language - SQL, November, 1992.
  39. Astrahan M.M., System R: A Relational Approach to Data Base Management //ACM Transactions on Data Base Systems. - 1976. - V1, 97, June.
  40. Boyce R.F., Chamberlin D.D., King W.F., Hammer M.M. Specifying Queries as Relational Expressions: The SQUARE Data Sublanguage //Communications ACM. - 1975. V.18, November. - P.621.
  41. Chamberlin D.D., Raymond F.B. SEQUEL: A Structured English Query Language. //Proc. ACM-SIGMOD. - 1974. - Workshop, Ann Arbor, Michigan, May.
  42. Chamberlin D.D., Gray J.N., Traiger L.L. Views, Authorization and Locking in a Relational Data Base System //Proceedings of AFIPS National Computer Conference, Anaheim, CA, May. - 1975.
  43. Codd E.F. Relation Model of Data for Large Shared Data Banks //Comm. ACM. - 1970. - V.13, №.6. - P.377-383. (Имеется перевод: Кодд Е.Ф. Реляционная модель данных для больших совместно используемых банков данных //СУБД. - 1995. - №1. - С.145-160.)
  44. Codd E.F. Normalized Data Base Structure: A Brief Tutorial //Proc. of 1971 ACM-SIGFIDET Workshop on Data Description, Access and Control.- N.-Y.: ACM. - 1971. - P.1-17.
  45. Codd E.F. A data base sublanguage founded on the relational calculus //Proc. ACM-SIGFIDET/ - 1971. - Workshop, San Diego, Calif., Nov. P.35-68.
  46. Codd E.F. Further Normalization of the Data base Relational Model //Data Base Systems.- N.J.: Prentice-Hall, 1972. - P.33-64.
  47. Codd E.F. Recent investigations in relational data base systems //Proc. IFIP Congress. - 1974. - North-Holland Pub. Co., Amsterdam. - P.1017-1021.
  48. Codd E.F. Extending the Database Relation Model to Capture More Meaning. //ACM Transaction on Database Systems. 1979.- V.4, №4. - P.397-434. (Имеется перевод: Кодд Э.Ф. Расширение реляционной модели для лучщего отражения семантики //СУБД. - 1996. - №5-6. - С.163-192.)
  49. Eswaran K.P. Chamberlin D.D. Functional specifications of a subsystem for data base integrity //Proc. Very Large Data Base Conf., Framingham, Mass., Sept. - 1975. - P.48-68.
  50. Eswaran K.P., Gray J.N., Lorie R.A., Traiger I.L. The Notions of Consistency and Predicate Locks in a Data Base System //CACM. - 1976. - V.19, №11.
  51. Fagin R.A. Normal Form for Relational Databases That is Based on Domains and Key //ACM Transactions on Database Systems. - 1981. - V.6, №3. - P.387-415.
  52. Fagin R. Multivalued Dependencies and New Normal Form for Relational Databases //ACM TODS. - 1977. - V.2, №3.
  53. Gray J., Lorie R., Putzolu G., Traiger I. Granularity of Locks and Degrees of Consistency in a Shared Data Base //in Readings in Database Systems, Second Edition, Chapter 3, Michael Stonebraker, Ed., Morgan Kaufmann. - 1994.
  54. Heath I.J. Unacceptable File Operations in Relational Database //Proc. 1971 ACM SIGFIDET Workshop on Data Description, Access, and Control. - San Diego, Calif. - 1971.
  55. Held G.D., Stonebraker M.R., Wong E. INGRES: A Relational Data Base System //Proceedings of AFIPS National Computer Conference, Anaheim, CA, May. - 1975.
  56. Meiton J., Simon A.R. Understanding The New SQL: A Comlete Guide //Morgan Kaufmann. - 1993.
  57. Reisner P., Boyce R.F., Chamberlin D.D. Human Factors Evaluation of Two Data Base Query Languages: SQUARE and SEQUEL //Proceedings of AFIPS National ComputerConference, Anaheim, CA, May. - 1975.
  58. Smith J.M., Smith D.C. Database Abstractions: Aggregation and Generalization. //ACM Transactions on Database Systems. - 1977. - V.2, №2, June.- P.105-133. (Имеется перевод: Смит Д.М., Смит Д.К. Абстракции баз дан-ных: Агрегация и обобщение //СУБД. - 1996. - №2. - С.141-160.)
  59. Zloof M.M. Query By Example //Proceedings of AFIPS National Computer Conference, Anaheim, CA, May. - 1975.