Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
BD-2007-0.doc
Скачиваний:
4
Добавлен:
01.03.2025
Размер:
2.68 Mб
Скачать

9.3.5. Разработка и внедрение стандартов

Желательно стандартизировать процедуру доступа пользователей к базе данных. Желательно описать правила именования таблиц и столбцов.

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

9.3.6. О хранении данных

Типичная СУБД должна предоставлять такие функции восстановления, как:

  • механизм резервного копирования, предназначенный для периодического создания копий базы данных;

  • средства ведения журнала, в котором фиксируются текущее состояние транзакций и вносимые в базу данных изменения;

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

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

Помимо журналов транзакций, создаваемых для некоторых типов таблиц, в MySQL имеются еще семь различных журналов, все – необязательные. Если такие журналы начали вестись, то нужно следить за их размерами, поскольку они непрерывно разрастаются, причем некоторые – довольно быстро. Журнальные файлы можно удалять вручную после остановки сервера или поручить эту задачу сценарию.

9.3.6.1. Журнал транзакций

Журнал транзакций служит для фиксации хода выполнения транзакций в БД. Он содержит сведения обо всех обновлениях, выполненных в базе данных. В файл журнала может помещаться следующая информация:

  • записи о транзакциях, включающие:

    • идентификатор транзакции,

    • тип записи журнала (начало транзакции, операции вставки, обновления или удаления, отмена или фиксация транзакции);

    • идентификатор элемента данных, вовлеченного в операцию обработки базы данных (операции вставки, обновления или удаления);

    • копию элемента до операции, т.е. его значение до изменения (только операции обновления или удаления);

    • копию элемента после операции, т.е. его значение до изменения (только операции обновления или удаления);

    • служебную информацию файла журнала, включающую указатели на предыдущую и следующую записи журнала для этой транзакции (любые операции);

  • записи контрольных точек.

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

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

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

Контрольные точки организуются через установленный интервал времени и включают выполнение следующих действий:

  • запись всех имеющихся в оперативной памяти записей журнала во вторичную память,

  • запись всех модифицированных блоков в буферах базы данных во вторичную память,

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]