Вход/Регистрация
Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ
вернуться

Борри Хелен

Шрифт:

Проверка и починка данных

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

* Ненормальное завершение сервера. Ненормальное завершение не влияет на целостность базы данных. Однако если Firebird уже назначил страницу данных для неподтвержденных изменений, запрошенных клиентом, эта страница становится бесхозной, "осиротевшей". Поскольку такие страницы являются вполне безобидными, они лишь занимают дисковое пространство, которое должно быть возвращено в свободное пространство. Проверка может отыскать и освободить это пространство.

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

Когда проверять базу данных

Вы должны проверять базу данных:

* всякий раз при неуспешном копировании базы данных;

* всякий раз, когда приложение получает сообщение об ошибке "разрушена база данных";

* периодически в качестве регулярной процедуры для отслеживания разрушения структур данных или нераспределенного пространства;

* каждый раз, когда вы подозреваете, что данные разрушены.

Утилита командной строки gbak может быть использована вместе с gfix для выполнения последовательной проверки и починки данных.

Выполнение проверки базы данных

Пров базы данных требует исключительного доступа к базе данных. Без исключительного доступа вы получите сообщение об ошибке:

OBJECT имя-базы-данных IS IN OSE

Для проверки базы данных просто введите команду:

gfix -v

Проверка будет молча отыскивать и освобождать неназначенные страницы или нераспределенные структуры, которые она найдет. Она будет сообщать о любых разрушенных структурах, но не будет пытаться их исправлять. Для получения протокола об ошибках gfix, но без попыток освобождения пространства введите переключатель -n[o_update]:

gfix -v -n

Вы можете заставить проверку игнорировать ошибки контрольных сумм, добавив переключатель -i [gnore]:

gfix -v -i

! ! !

ПРИМЕЧАНИЕ. Даже если вы сможете восстановить исправленную базу данных, которая сообщала об ошибках контрольных сумм, объем потерянных данных трудно будет определить. Если это вас беспокоит, вы можете восстановить вашу базу данных с более ранней копии.

. ! .

Восстановление разрушенной базы данных

Если вы подозреваете, что ваша база данных разрушена, важно точно придерживаться последовательности шагов восстановления, чтобы избежать дальнейших разрушений. Подробное описание рекомендуемой процедуры восстановления см. в приложении 4 [157] .

157

Информацию по ремонту баз данных можно найти здесь:и- Прим. науч. ред.

Восстановление транзакций

Утилита gfix предоставляет инструменты для восстановления зависших транзакций 2РС - транзакций с несколькими базами данных после потери соединения с одной из них.

Двухфазное подтверждение

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

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

На второй фазе, следуя точно в том же порядке, что и при их подготовке и записи, Firebird отмечает каждую подтранзакцию как подтвержденную.

Зависшие транзакции

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

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

Восстановление транзакции

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

  • Читать дальше
  • 1
  • ...
  • 332
  • 333
  • 334
  • 335
  • 336
  • 337
  • 338
  • 339
  • 340
  • 341
  • 342
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: