2 авг. 2011 г.

Обновление сервера Firebird 2.5 из снэпшота

Внимание! Нижесказанное относится к ситуации, когда сервер Fierbird 2.5.x обновляется новейшей сборкой 2.5.x. Если вы до сих пор работаете на Yaffil, Firebird 1.x, 2.0.x или 2.1.x, то сначала необходимо осуществить процедуру перехода на 2.5.

На сайте firebirdsql.org регулярно обновляются текущие "snapshot" сборки сервера, включающие все последние изменения. Файлы Windows версии 2.5.х можно скачать отсюда. Архивы доступны в формате Zip и 7-Zip, для 32-х и 64-х битных версий ОС. Буквы PDB в имени архива означают, что он содержит сервер, откомпилированный с отладочной информацией.

Обновить работающий сервер на предприятии можно следующим образом:

  1. Делаем архивную копию базы данных и сохраняем ее в надежном месте.
  2. Скачиваем архив с текущей сборкой.
  3. Все пользователи закрывают у себя Гедымин. Если Гедымин работает, а соответствующий пользователь недоступен (вышел покурить, отошел на обед и т.п.), то:
    1. в окне Подключенные пользователи последовательно отключаем активные коннекты или в SQL редакторе выполняем команду DELETE FROM mon$attachments.
    2. если не помогло: на сервере отключаем сетевое соединение или просто выдергиваем кабель локальной сети (не 220В!) из компьютера. Ждем 4-5 минут, пока не отвалятся все коннекты. Если используется версия сервера классической архитектуры, то смотрим в Диспетчер задач, пока там не останется только один процесс fb_inet_server.

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

  4. Убедившись, что все пользователи отключены, заходим в Управление компьютером, Службы и останавливаем Firebird.

    Ни в коем случае нельзя снимать задачу fb_inet_server или fbserver через Диспетчер задач. Такое действие может привести к повреждению файла базы данных (особенно, если отключен режим принудительной записи). Если все же в процессе работы сервера пришлось произвести принудительную перезагрузку, выключение или остановку задачи, то после восстановления работоспособности, первым делом следует проверить файл базы данных командой gfix.

  5. Заменяем файлы в папке C:\Program Files\Firebird содержимым архива. Кроме файла security2.fdb! Его не трогаем.

    Если вы случайно затерли security2.fdb, то придется подключиться Гедымином под учетной записью Administrator и в разделе Исследователь-Сервис-Администратор-Пользователи, на панели инструментов выбрать команду Пересоздать всех пользователей.

  6. Cкачиваем отсюда актуальную библиотеку GUDF.DLL (в соответствии с разрядностью вашей операционной системы) и заменяем ею существующий файл в подкаталоге UDF.
  7. Запускаем службу.
  8. Восстанавливаем сетевое соединение.
Посмотреть версию сервера можно в Гедымине: в главном меню выбрать команду О программе....

После обновления сервера рекомендуется провести бэкап-рестор базы данных и обновить клиентскую библиотеку -- файл fbclient.dll.

Комментариев нет:

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