Читаем Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ полностью

Если вы хотите понять, как могут появиться нарушения в вашей базе данных, вернитесь к разд. "Как разрушить базу данных Firebird" в конце главы 15[166]

<p>Восемь шагов восстановления</p>

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

Для применения gfix и gbak в этой процедуре сделайте текущим каталог Firebird /bin на серверной машине.

<p>Получение исключительного доступа</p>

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

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

OBJECT database_name IS IN USE [Объект имя-базы-данных используется]

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

Для получения исключительного доступа выполните останов базы данных, находясь пользователем SYSDBA или пользователем, являющимся владельцем базы данных. Подробности см. в главе 39. Например, следующая команда заблокирует все другие попытки соединения с базой данных и приведет к ее останову через две минуты:

gfix -sh -force 120 -user SYSDBA-password yourpword

<p>Создание копии работающего файла</p>

В этот момент gbak не может выполнить резервное копирование базы данных, содержащей разрушенные данные. Поскольку вы имеете исключительный доступ, выполните копирование средствами файловой системы (а не с помощью gbak) файла базы данных. В POSIX используйте команду ср, а в Windows команду сору или эквивалентное действие копировать/вставить в графическом интерфейсе. Убедитесь, что в этот момент нет пользователей, соединенных с базой данных, - даже вас!

Например, в Windows, находясь в каталоге базы данных, выполните:

copy damaged.fdb repaircopy.fdb

! ! !

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

. ! .

Работайте с repaircopy.fdb.

<p>Выполнение проверки</p>

В первую очередь используются переключатели -v[alidate] и -f[ull] утилиты gfix для проверки структур записей и страниц. Процесс проверки сообщает о разрушенных структурах и освобождает неназначенные фрагменты записей или "осиротевших страниц" (т. е. страниц, которые выделены, но не назначены никаким структурам данных).

gfix -v -full {путь}repaircopy.fdb -user SYSDBA -password yourpword

Переключатель -n[o update] может быть использован вместе с -v для проверки и выдачи сообщений о разрушенных или не назначенных структурах без попыток их исправить:

gfix -v -n {путь}repaircopy.fdb -user SYSDBA -password yourpword

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

gfix -v -n -i {путь}repaircopy.fdb -user SYSDBA -password yourpword

<p>Исправление разрушенных страниц</p>

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

Переключатель -m[end] отмечает разрушенные записи как недоступные, следовательно, они будут пропущены в процессе последующего резервного копирования. Включите переключатель -f[ull], чтобы запрос исправлял все разрушенные структуры, и переключатель -i[gnore], чтобы обходить ошибки контрольных сумм в процессе исправления.

gfix -mend -full -ignore {путь}repaircopy.fdb -user SYSDBA -password yourpword

или короче:

gfix -m -f -i {nyTb}repaircopy.fdb -user SYSDBA -password yourpword

<p>Проверка после исправления -mend</p>

После того как команда с переключателем -mend завершит свою работу, опять выполните

gfix -v -full {путь}repaircopy.fdb -user SYSDBA -password yourpword для проверки, остались ли еще разрушенные структуры.

<p>Очистка и восстановление базы данных</p>
Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных

Все жанры