Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ
Шрифт:
InterBaseXpress
InterBaseXpress (IBX) содержит компоненты с открытыми исходными текстами для работы с базой данных и выполнения сервисных функций, которые поставляются вместе с некоторыми продуктами Borland, такими как Delphi, Kylix, C++ Builder. Исправленные от ошибок версии доступны в репозитории Code Central наНе используйте версии, поставляемые с Delphi 5, 6 и с Kylix- это бета-версии с большим количеством ошибок, которые могут привести к разрушению базы данных. Более поздние версии с открытыми исходными кодами распространяются свободно и могут использоваться с Firebird 1.0.x. У некоторых пользователей возникли проблемы при употреблении компонентов соединения с базой данных в Firebird 1.5. IBX не является идеальным выбором для использования с Firebird
165
Тем не менее на текущий момент практически никаких проблем при использовании IBX с Firebird 1.0, 1.5 и 2.0 нет.
– Прим. науч. ред.
IBOAdmin
Это набор оболочек компонентов для Firebird Service API (копирование-восстановление, статистика, безопасность и др.), основанных на кодах, первоначально распространявшихся как компоненты IBX Service. Они являются открытыми исходными кодами и требуют IB Objects. IBOAdmin свободно доступны на http:// www.mengoni.it.
PHP
PHP подтвердила, что является весьма подходящей платформой для разработки Web- клиентов баз данных Firebird при использовании расширений php-interbase. Сейчас стабильной версией PHP является 4.3.6. PHP 5.0 находится на поздней стадии бета- версии. В PHP 5.0 было добавлено множество новых функций для Firebird. Поищите "ibase" наи последующих страницах.
PHP и Apache Web Server - неразделимая пара для разработки приложений 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 создал административный интерфейс (см., который предоставляет наиболее полные возможности доступа.
Некоторые абстрактные средства доступны на страницах Firebird, включая классы ADODB и более компактный вариант ezSQL . PEAR-DB является другим абстрактным средством, которое формирует часть проекта PHP. Доступен также широкий выбор редакторов PHP. См. http://www.php-editors.com/review.
IDE: Eclipse eclipse.org) и phpEclipse view_articles.php) предоставляют средства отладки и приятный набор инструментов редактирования. Eclipse выполняется как под Windows, так и под Linux, и включает встроенного клиента CVS, поддержку документации и возможность плагинов . 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). Сайтрекомендуется
как источник огромного количества скриптов и классов, которые может использовать 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 . Проект приглашает к участию разработчиков и пользователей.
Поддержка: присоединяйтесь к списку переписки на/mailman/listinfo/dbi-inter-base-devel.
Загрузка: отправляйтесь надля получения наиболее позднего стабильного релиза, посетитеза стабильным релизом и релизом разработки.
Приложение 4. Как выполнять ремонт базы данных
Вам придется потратить много сил для разрушения базы данных Firebird - система спроектирована так, чтобы выдержать тяжелые удары, которые ломают базы данных в других системах. Вы узнаете о том, что база данных разрушена, если вы не сможете с ней соединиться, не сможете выполнить ее резервное копирование или когда сообщение в протоколе firebird или от gbak -b сообщает вам, что существуют нарушения в базе, или появляются сообщения об ошибке контрольной суммы.
Если вы хотите понять, как могут появиться нарушения в вашей базе данных, вернитесь к разд. "Как разрушить базу данных Firebird" в конце главы 15 [166]
Восемь шагов восстановления
В этом приложении описаны шаги, которые вам нужно выполнить при использовании инструментов командной строки gfix или gbak, чтобы попытаться восстановить неповрежденные данные при некоторых видах разрушения. Однако имейте в виду, что существуют отдельные виды разрушения сервера, которые такая процедура не может исправить. См. в приложении 12 ресурсы, доступные для использования в этих случаях.
166
Во время написания этой книги автор услышала о первом случае нового способа разрушения баз данных. Жертва проигнорировала все советы и разместила базу данных в каталоге NFS. После этого продолжалось соединение клиентов с базой данных клиентов через два Классических сервера Firebird 1.5 с различных машин, ни одна из которых не была владельцем жесткого диска, на котором находилась база данных. В результате база данных была разру-
Для применения gfix и gbak в этой процедуре сделайте текущим каталог Firebird /bin на серверной машине.
Получение исключительного доступа
Первым делом, что нужно выполнить, когда появилось сообщение о разрушении, - это отключить всех пользователей от системы. Не позволяйте никому пытаться продолжить работу. Продолжение попыток использования базы данных может сделать восстанавливаемую базу данных невосстанавливаемой.
Проверка базы данных требует исключительного доступа к базе данных, иначе вы увидите следующее сообщение при попытке запустить gfix: