Читать интересную книгу Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ - Хелен Борри

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 200 201 202 203 204 205 206 207 208 ... 238

PHP

PHP подтвердила, что является весьма подходящей платформой для разработки Web- клиентов баз данных Firebird при использовании расширений php-interbase. Сейчас стабильной версией PHP является 4.3.6. PHP 5.0 находится на поздней стадии бета- версии. В PHP 5.0 было добавлено множество новых функций для Firebird. Поищите "ibase" на http://www.php.net/ChangeLog-5.php#5.0.0RCl и последующих страницах.

PHP (http://www.php.net) и Apache Web Server (http://httpd.apache.org)- неразделимая пара для разработки приложений Firebird для Web. Платформами являются Windows (CGI, ISAPI) и Linux (CGI). Приверженцы Firebird PHP Windows рекомендуют использовать версию CGI на Windows Server 2003 и версию ISAPI на Windows 2000 для высокой производительности.

Расширения php-interbase прекрасно выполняются со всеми версиями Firebird на Apache 1 и Apache 2, но с одной проблемой реализации. PHP не обрабатывает 64-битовые целые (тип BIGINT) обычным образом, так что вам нужно будет преобразовывать значения BIGINT В строки. Вероятно, это не относится к PHP 5. Новая функция получения значения генератора Firebird, ibase_gen_id(), возвращает целое.

Как и другие общие интерфейсы доступа к данным, PHP использует модель "одна транзакция на одно соединение". При этом он не поддерживает множество транзакций. PHP следит за подтверждением незавершенных транзакций. Двухфазное подтверждение и события Firebird появились в PHP 5.

В Windows расширения php-interbase активизируются в файле PHP.ini после инсталляции. В Linux эти расширения должны создаваться из исходных кодов.

Доступны многие функции API, включая управление пользователями. Lutz Bruckner создал административный интерфейс (см. http://ibwebadmin.sf.net), который предоставляет наиболее полные возможности доступа.

Некоторые абстрактные средства доступны на страницах Firebird, включая классы ADODB (http://freshmeat.net/projects/adodb) и более компактный вариант ezSQL (http://php.justinvincent.com). PEAR-DB является другим абстрактным средством, которое формирует часть проекта PHP. Доступен также широкий выбор редакторов PHP. См. http://www.php-editors.com/review.

IDE: Eclipse (http://www. eclipse.org) и phpEclipse (http://www.phpeclipse.de/tiki- view_articles.php) предоставляют средства отладки и приятный набор инструментов редактирования. Eclipse выполняется как под Windows, так и под Linux, и включает встроенного клиента CVS, поддержку документации и возможность плагинов (http://www.eclipse-plugins.info/eclipse/plugins.jsp). Eclipse 3 был выпущен летом 2004 года.

Поддержка: разработчики Firebird PHP имеют небольшой, но активный список поддержки. Подпишитесь на http://www.yahoogroups.com/community/firebird-php.

* Для ADODB: http://phplens.com/lens/lensforum/topics.php?id=4.

* Для phpEclipse: http://www.phpeclipse.de/tiki-forums.php.

Ресурсы: лучшим началом работы с PHP является учебник (http:// www.php.net/docs.php). Сайт http://www.hotscripts.com/PHP/index.html рекомендуется как источник огромного количества скриптов и классов, которые может использовать Firebird.

Python

KlnterbasDB является пакетом расширения Python, который реализует совместимую с Python Database API 2.0 поддержку Firebird. В дополнение к минимальному набору возможностей Python Database API KlnterbasDB предоставляет полный API клиента Firebird.

После релиза версии 3.1 была объявлена самая новая доступная версия. Пакет распространяется свободно под разрешающей лицензией в стиле BSD, которую должны принять коммерческие и некоммерческие пользователи.

Поддержка, загрузка, документация онлайн и другая информация на

http://kinterbasdb.sourceforge.net/.

Perl

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

DBD::InterBase являются открытыми кодами драйвера DBD для Firebird и InterBase. Располагаются на SourceForge (http://sourceforge.net/projects/dbi-interbase). Проект приглашает к участию разработчиков и пользователей.

Поддержка: присоединяйтесь к списку переписки на http://lists.sourceforge.net /mailman/listinfo/dbi-inter-base-devel.

Загрузка: отправляйтесь на http://www.cpan.org/moduIes/by-module/DBD для получения наиболее позднего стабильного релиза, посетите http://dbi.interbase.or.id за стабильным релизом и релизом разработки.

Приложение 4. Как выполнять ремонт базы данных

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

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

Восемь шагов восстановления

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

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

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

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

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

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

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

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

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

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

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

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

copy damaged.fdb repaircopy.fdb

! ! !

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

. ! .

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

Выполнение проверки

В первую очередь используются переключатели -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

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

Если 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

Проверка после исправления -mend

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

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

1 ... 200 201 202 203 204 205 206 207 208 ... 238
На этом сайте Вы можете читать книги онлайн бесплатно русская версия Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ - Хелен Борри.
Книги, аналогичгные Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ - Хелен Борри

Оставить комментарий