Firebird где хранятся базы
Перейти к содержимому

Firebird где хранятся базы

  • автор:

Firebird где хранятся базы

Этот раздел описывает различия при установке серверов баз данных.

Для пользователей, ранее использовавших СУБД MS SQL и являющихся новичками в использовании СУБД Firebird , вероятно, простота установки СУБД Firebird будет некоторым приятным сюрпризом. Процесс установки не представляет никаких проблем, Вы можете устанавливать соединение с базой данных сразу после установки СУБД Firebird . Обратите внимание, что по умолчанию именем администратора СУБД Firebird является SYSDBA , и пароль masterkey (пароль при установке в ОС Linux генерируется произвольный или запрашивается у пользователя при установке — прим. перев.); в СУБД MS SQL соответственно sa и пустой пароль.

Заметьте, что Вам не нужно осуществлять выбор используемого набора символов и способ их сортировки при установке СУБД Firebird . В СУБД MS SQL Вы не только должны указать эту информацию при установке, но и, в случае необходимости изменения, Вам необходимо будет переустановить СУБД и указать новые параметры. В дополнение к этому, другие программные пакеты, такие как Microsoft Commerce Server , могут отказываться работать с СУБД MS SQL, если Вы выберите неверные значения параметров.

В отличие от СУБД MS SQL 6.5, СУБД Firebird не имеет понятия « утройства » (devices). Все данные хранятся в обычных файлах доступной файловой системы. Имейте в виду, что Вы не сможете использовать « чистые » разделы диска (raw disk partition, разделы без файловой системы) для хранения Ваших баз данных.

Важное замечание : СУБД MS SQL использует механизм журналирования (логи, logs) для сохранения целостности баз данных, в том числе при непредвиденных сбоях. СУБД Firebird использует многоверсионную архитектуру (multi-generation architect, MGA) для создания копии (версии) записи « на месте », если это необходимо (например, при модификации); но запись новой версии записи на диск может быть отложена, что может дать некоторый выигрыш в скорости работы СУБД. Для каждой базы данных Вы можете установить атрибут Forced Writes (принудительная запись) — рекомендуется устанавливать этот атрибут, чтобы быть уверенным в целостности базы данных в различных чрезвычайных ситуациях, таких как исчезновение питания и т.п. В случае уверенности в конфигурации оборудования, Вы можете не устанавливать этот атрибут (например, для выделенного сервера Linux , наличии источников бесперебойного питания и т.д.).

Firebird Documentation Index → Переход с MS SQL на Firebird → Установка сервера

Инструкция по переносу сервера Firebird

Данная инструкция предназначена для случая, когда на предприятии большое количество рабочих мест и файлы gedemin.exe находятся непосредственно на рабочих местах. Если gedemin.exe вызывается из общей папки и там же находится файл databases.ini, то конфигурирование службы WINS не имеет большого смысла.

Файл базы данных: d:\bases\database.fdb Старый сервер: old_server, ip address: 192.168.0.1 Версия Firebird: 2.5

Все клиенты подключаются по имени сервера и пути к базе данных. Строка подключения:

old_server:d:\bases\database.fdb

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

Новое расположение файла бд: f:\data\new_base.fdb Новый сервер: new_server, ip address: 192.168.0.23 Версия Firebird: 3.0

1. Подготовительный этап

  • На сервере контроллера домена открываем конфигурирование службы имен [WINS] и создаем алиас db_server с адресом 192.168.0.1 (это адрес существующего, старого сервера).
  • На старом сервере базы данных, в папке Firebird 2.5, создаем файл aliases.conf следующего содержания:
db = d:\bases\database.fdb
  • На рабочих местах меняем строку подключения к базе данных. Новая строка:
db_server:db

2. Установка сервера Firsbird 3

На новом компьютере устанавливаем сервер Firebird 3 и настраиваем его параметры.

3. Перенос файла базы данных

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

  1. Подключаемся из Гедымина под Администратором и отключаем всех пользователей.
  2. Чтобы пользователи не подключились в момент копирования файла базы данных, останавливаем службу Firebird 2.5.
  3. Копируем файл базы данных на новый сервер.
  4. На новом сервер воспользуемся переносимой локальной версией Гедымин: Разработчик (скачать можно по этой ссылке).
  5. Подключимся к скопированному файлу с помощью встроенного сервера. Для этого при указании пути к базе данных поле сервер не заполняем.
  6. Создадим бэкап базы данных.

4. Восстановление базы данных из архива

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

5. Настройка databases.conf и службы WINS

  • В конфигурации WINS меняем для алиаса db_server адрес на 192.168.0.23
  • В папке сервера Firebird 3 создаем файла databases.conf и прописываем в нем:
db = f:\data\new_base.fdb

6. Обновление gedemin.exe

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

Подключаемся и тщательно проверяем работоспособность кода.

  • Firebird
  • Школа системного администратора

Firebird где хранятся базы

В директории examples Вашей инсталляции Firebird лежит образец базы данных — employee.fdb , которую можно использовать « для пробы пера ».

Имя сервера и путь

Если Вы вдруг решили переместить образец базы данных на другой диск, убедитесь, что он физически подключен к компьютеру. Разделяемые (shared), присоединенные (mapped) диски или (на Unix) смонтированные (mounted) SMB (Samba) файловые системы не будут работать. Это правило касается любых создаваемых Вами баз данных.

При использовании TCP/IP строка подключения состоит из двух частей: имя сервера и путь к файлу. Формат строки имеет следующий вид:

  • Для Linux-серверов:

имя-сервера:/путь-к-файлу/имя-файла-базы-данных

Пример для Linux или другой Posix-системы с именем serverxyz :

serverxyz:/opt/interbase/examples/employee.fdb

имя-сервера:буква-диска:\путь-к-файлу\имя-файла-базы-данных

Пример для Windows:

serverxyz:C:\Program Files\Firebird\examples\employee.fdb

Оператор CONNECT

Для подключения к базе данных Firebird пользователь должен аутентифицироваться с использованием имени пользователя и правильного пароля. Кроме того, любому пользователю отличному от SYSDBA , root (Posix — системы), или Administrator (на Windows-системах, если Firebird запущен от имени этого пользователя) необходимо иметь разрешения на доступ к объектам внутри самой базы данных (так называемые объектные привилегии). Для простоты, рассмотрим процедуру аутентификации пользователя SYSDBA с использованием пароля masterkey .

Используем isql

Существует несколько способов подключения к базе данных с использованием утилиты isql . Один из них — это использование isql в интерактивном режиме. Перейдите в подкаталог bin директории, в которой установлена Ваша версия Firebird, и в командной строке наберите isql (для Linux: ./isql ) [↵ означает « нажать клавишу Enter »]:

C:\Program Files\Firebird\Firebird_1_5\bin>isql↵ Use CONNECT or CREATE DATABASE to specify a database SQL>CONNECT "C:\Program Files\Firebird\Firebird_1_5\examples\employee.fdb"↵ CON>user 'SYSDBA' password 'masterkey';↵

Важно

  • В isql каждое SQL-выражение должно завершаться точкой с запятой. Если строка не заканчивается точкой с запятой, и Вы нажимаете клавишу Enter , isql будет считать, что выражение будет продолжаться на следующей строке и сменит приглашение с SQL> на CON> . Это позволяет разбивать длинные выражения на несколько строк. Если Вы нажали клавишу Enter , забыв указать точку с запятой, просто наберите символ после приглашения и нажмите Enter ещё раз.
  • Если, используя Classic Server под Linux, не указать имя хоста, будет предпринята попытка организовать прямое локальное соединение. Что, в свою очередь, может закончиться неудачей в случае отсутствия у текущей учетной записи Linux необходимых прав доступа к файлу базы данных. В этом случае попробуйте подключиться к localhost : / . В этом случае файл будет открывать серверный процесс (который в Firebird 1.5 обычно работает от имени firebird ). С другой стороны, попытка сетевого соединения может закончиться неудачно, если пользователь создавал базу данных при локальном подключении и у сервера нет необходимых прав.
  • В случае использования Classic Server под Windows, Вы должны указывать имя хоста (это может быть localhost ) и полный путь, в противном случае подключиться не получиться.

Замечание

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

Кавычки вокруг « SYSDBA » и « masterkey » необязательны. Также не обязательно заключать в кавычки путь к базе данных, не содержащий пробелов.

Далее isql сообщит о том, что Вы подключились:

DATABASE "C:\Program Files\Firebird\Firebird_1_5\examples\employee.fdb", User: sysdba SQL>

Теперь Вы можете продолжить эксперименты с базой employee.fdb . isql означает interactive SQL [utility] (интерактивный SQL). Вы можете использовать её для извлечения данных, получения метаинформации, создания объектов базы данных, запуска скриптов и многого другого.

Для того, чтобы вернуться в командную строку наберите

SQL>QUIT;↵

За дополнительной информацией об использовании isql обращайтесь к Using Firebird, глава 10: Interactive SQL Utility (isql).

Используем графические утилиты

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

Замечание

  • Существуют средства, в которых имя сервера + полный путь ожидаются в виде одной строки
  • Помните, что на Linux и других Posix-системах имена файлов и названия команд являются чувствительными к регистру

Создаем базу данных с помощью isql

Утилита isql позволяет создавать базы данных более, чем одним способом. Мы же рассмотрим простой способ создания базы данных в интерактивном режиме, хотя для серьезного использования Вам, скорее всего, потребуется научиться создавать и использовать скрипты. В руководстве Using Firebird имеется отдельная глава, посвященная этому вопросу.

Запускаем isql

Для создания базы данных с использованием утилиты isql в интерактивном режиме, в командной строке перейдите в директорию bin и наберите isql (Windows) или ./isql (Linux):

C:\Program Files\Firebird\Firebird_1_5\bin>isql↵ Use CONNECT or CREATE DATABASE to specify a database
Оператор CREATE DATABASE

Теперь Вы можете создать базу данных. Предположим, что Вы хотите создать базу данных test.fdb и сохранить её в папке data на диске D :

SQL>CREATE DATABASE 'D:\data\test.fdb' page_size 8192↵ CON>user 'SYSDBA' password 'masterkey';↵

Важно

  • В отличии от оператора CONNECT , в операторе CREATE DATABASE кавычки вокруг пути к файлу, имени пользователя и пароля являются обязательными .
  • Если Вы используете Classic Server под Linux и в пути не указываете имя хоста, будет произведена попытка создать файл базы данных с Вашей учетной записью в Linux в качестве владельца. Может быть это именно то, что Вы и хотите, а может и нет (подумайте о правах доступа, если Вы хотите, чтобы к базе данных мог подключаться кто-то еще). Если же в пути указать, например, localhost: , тогда создавать и влдаеть файлом будет серверный процесс (который в Firebird 1.5 обычно работает от имени firebird ).
  • В случае использования Classic Server под Windows, Вы должны указывать имя хоста (которое может быть localhost ) плюс полный путь к файлу, в противном случае процесс создания закончится неудачей.

Будет создана база данных и через некоторое время вновь появится приглашение SQL. Теперь Вы подключены к новой базе данных и можете создать какие-нибудь объекты в ней.

Чтобы убедиться, что там действительно база данных, выполните запрос:

SQL>SELECT * FROM RDB$RELATIONS;↵

На экран будет выдано большое количество данных! Этот запрос извлекает все строки из системной таблицы, в которой Firebird хранит метаданные для таблиц. « Пустая » база данных на самом деле не очень-то и пустая – она содержит базу данных, которая будет расти, наполняясь метаданными, по мере создания Вами новых объектов в ней.

Для возвращения в командную строку, наберите

SQL>QUIT;↵

За дополнительной информацией об isql обращайтесь к главе 10 Using Firebird: Interactive SQL Utility (isql).

Firebird SQL

Каждая систем управления базами данных имеет свои отличительные особенности в реализации SQL. По сравнению с любой другой СУБД, за возможным исключением « близкой родственницы » — InterBase®, Firebird наиболее строгим образом соответствует стандарту SQL. Разработчики, переходящие с других продуктов, соответствующих стандарту в меньшей степени, ошибочно воспринимают Firebird странным, притом, что многие мнимые « странности » на самом деле не являются таковыми.

Деление целых чисел

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

Например, следующее вычисление является корректным с точки зрения SQL:

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

Например, предыдущий пример, для получения результата отличного от нуля, можно изменить следующим образом:

Firebird где хранятся базы

Далее в таблице приводится принятое по умолчанию расположение компонентов на диске для Windows и Linux систем.

При основательной переработке кода, начатой в версии 1.5, были удалены жесткие привязки, используемые в InterBase®, а также переименованы многие компоненты. В результате Firebird 1.5 позволяет (потенциально) одновременно с собой присутствовать запущенному серверу InterBase®, обеспечивая возможность обоим серверами не слушать один и тот же порт TCP/IP. Если Вам необходима такая возможность, обратитесь к разделу Configuring the port service в Release Notes, прилагаемых к Firebird (см. директорию doc ).

Таблица 2. Компоненты Firebird 1.5 и их расположение

Расположение по умолчанию

32-bit and 64-bit Windows

(Windows 95, 98, ME, NT, 2000, XP, . )

Директория, в которую устанавливается пакет

(далее обозначается как )

fbserver.exe (SS) or fb_inet_server.exe (CS)

Утилиты командной строки

gbak.exe , gfix.exe , gstat.exe , etc.

Образец базы данных

Библиотеки пользовательских функций (UDF)

ib_udf.dll и fbudf.dll

(для поддержки старых приложений, опциально, присутствует gds32.dll )

(копия, опционально, располагается в системной директории Windows– см. замечание ниже)

Linux и, возможно, другие UNIX дистрибутивы

Директория, в которую устанавливается пакет

(далее обозначается как )

fbserver (SS) or fb_inet_server (CS)

Утилиты командной строки

gbak , gfix , gstat , etc.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *