Переход на Firebird 3.0. Многопользовательский режим

Материал из GedeminWiki
(Различия между версиями)
Перейти к: навигация, поиск
(Порядок перехода на Firebird 3)
Строка 50: Строка 50:
  
 
# Убедитесь, что Гедымин работает под сервером Firebird 2.5. Если нет, то сначала [[Переход на Firebird 2.5. Многопользовательский режим|сконвертируйте файл базы данных]].
 
# Убедитесь, что Гедымин работает под сервером Firebird 2.5. Если нет, то сначала [[Переход на Firebird 2.5. Многопользовательский режим|сконвертируйте файл базы данных]].
# Создайте архивную копию базы данных.
+
# Создайте [[Архивное копирование БД и восстановление БД из архива|архивную копию базы данных]].
 
# На сервере остановите службу Firebird 2.5 (как это сделать из командной строки, см. ниже).
 
# На сервере остановите службу Firebird 2.5 (как это сделать из командной строки, см. ниже).
 
# Установите и запустите сервер Firebird 3.
 
# Установите и запустите сервер Firebird 3.
Строка 57: Строка 57:
 
# Запустите gedemin.exe и восстановите базу данных из архивной копии используя подключение к серверу Firebird 3.
 
# Запустите gedemin.exe и восстановите базу данных из архивной копии используя подключение к серверу Firebird 3.
 
# Подключитесь к базе данных под учетной записью Administrator и обновите ее структуру.
 
# Подключитесь к базе данных под учетной записью Administrator и обновите ее структуру.
 
 
  
 
== Обновление сервера ==
 
== Обновление сервера ==

Версия 14:13, 2 марта 2017

Зачем переходить? При работе с базами данных, размер которых составляет десятки Гб и более, основное узкое место в производительности сервера -- это операции ввода/вывода с дисковой подсистемой. Firebird использует диск для размещения базы данных и для записи временных файлов сортировки. Очевидное решение -- задействовать оперативную память. Но, в случае с Firebird 2.5 возникает дилемма: SuperServer позволяет использовать общий на все коннекты кэш страниц, однако, при этом выполнение запросов будет происходить в рамках одной нити и только на одном процессоре/ядре, сколько бы их ни было установлено в системе. ClassicServer позволяет распараллелить коннекты на разные процессоры, но при этом отсутствует общий кэш данных.

В Firebird 3 64bit данные ограничения устранены. Теперь можно добиться значительного увеличения быстродействия (в нашей практике в 5-10 раз) за счет выделения кэша сопоставимого с размером файла базы данных.

Реальный случай, на примере одного из наших клиентов. Размер файла базы данных составляет 60 Гб. Сервер базы данных содержит два 10-ти ядерных процессора и 128 Гб оперативной памяти. Мы установили следующее распределение оперативной памяти:

fb3_1.png

  1. 32 Гб для оперативной системы, выполняющихся процессов, файлового кэша оперативной системы
  2. 32 Гб под буфер сортировки сервера Firebird
  3. 64 Гб под кэш данных сервера Firebird

Использовались следующие параметры:

  • размер страницы 8192 байт
  • количество страниц в буфере 8 388 608
  • Forced Writes = ON

Параметры в файле firebird.conf:

 DatabaseGrowthIncrement = 1024M

Чтобы не дергать лишний раз файловую систему при увеличении размера базы данных.

 FileSystemCacheThreshold = 10M

Разрешим операционной системе использовать свой файловый кэш для нашей базы данных. Число должно быть больше, чем размер буфера в страницах.

 FileSystemCacheSize = 20

Разрешим ОС использовать до 20% оперативной памяти под файловый кэш.

 TempBlockSize = 2M

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

 TempCacheLimit = 32768M

32 Гб выделяем под буфер сортировки в оперативной памяти.

 AuthServer = Legacy_Auth
 AuthClient = Legacy_Auth
 UserManager = Legacy_UserManager
 WireCrypt = Disabled
 WireCompression = false

Устанавливаем режим безопасности максимально приближенный к тому, как было в версии 2.5, чтобы не нарушить работу всех существующих рабочих мест.

Порядок перехода на Firebird 3

  1. Убедитесь, что Гедымин работает под сервером Firebird 2.5. Если нет, то сначала сконвертируйте файл базы данных.
  2. Создайте архивную копию базы данных.
  3. На сервере остановите службу Firebird 2.5 (как это сделать из командной строки, см. ниже).
  4. Установите и запустите сервер Firebird 3.
  5. Скачайте и расположите в папке UDF сервера библиотеку GUDF.DLL соответствующей разрядности.
  6. Скачать с сайта gsbelarus.com архив с новейшей версией gedemin.exe. Замените его содержимым все файлы в папке, из которой вызывается gedemin.exe.
  7. Запустите gedemin.exe и восстановите базу данных из архивной копии используя подключение к серверу Firebird 3.
  8. Подключитесь к базе данных под учетной записью Administrator и обновите ее структуру.

Обновление сервера

Все действия должны выполняться на сервере базы данных. Ниже представлена последовательность действий для операционной системы Windows и ручного обновления сервера без использования автоматического инстолятора:

  1. Открываем командную строку (Пуск - Выполнить - cmd)
  2. Переходим в каталог сервера. В зависимости от места установки это может быть c:\program files\firebird. Команды:
    1. c:
    2. cd \program files
    3. cd firebird
  1. Выполняем команду: instsvc stop
  2. Выполняем команду: instsvc remove
  3. Выполняем команду: instreg remove
  4. Выходим из каталога сервера: cd ..
  5. Переименовываем каталог сервера, например: rename firebird firebird_old
  1. Скачиваем архив по приведенным ссылкам:
    1. Стабильная версия 3.0: для Windows 32bit, для Windows 64bit
    2. Сборка с последними изменениями (snapshot): Windows32 и Windows64
  2. Распаковываем архив в новый каталог, например, c:\program files\firebird.
  3. Переходим в этот каталог.
  4. Выполняем команду:
    1. Для установки супер сервера: instsvc install -s -a
    2. Для установки сервера классической архитектуры: instsvc install -с -a
  5. Выполняем команду: gsec -add sysdba -pw masterkey -user sysdba
  6. Выполняем команду: instsvc start
  7. В соответствии с разрядностью установленного сервера Firebird скачиваем с сайта gsbelarus.com библиотеку gudf.dll по приведенным

ссылкам: для Windows 32bit, для Windows 64bit Распаковываем архив и копируем библиотеку в подкаталог UDF сервера, c:\program files\firebird\udf.

Обновление клиентской библиотеки

Указанные действия выполняем на каждой рабочей станции в локальной сети предприятия.

  1. Удаляем следующие файлы, если они расположены рядом с файлом gedemin.exe.
    1. fbclient.dll
    2. icuuc30.dll
    3. icuin30.dll
    4. icudt30.dll
    5. ib_util.dll
    6. msvcr80.dll
    7. msvcp80.dll
  2. Из каталога сервера копируем и выкладываем рядом с gedemin.exe следующие файлы:
    1. fbclient.dll
    2. ib_util.dll
    3. icudt52.dll
    4. icuin52.dll
    5. icuuc52.dll
    6. msvcp100.dll
    7. msvcr100.dll

Обратите внимание! Так как gedemin.exe 32-х разрядное приложение, библиотека fbclient.dll должна быть аналогичной разрядности. Если вы установили 64-х разрядный сервер Firebird, то копировать файлы надо не из его каталога, а скачать архив с 32-х разрядной версией сервера и копировать файлы из него.

Восстановление базы данных из архивной копии

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

Запуск программы

  1. Войдите в программу под учетной записью Administrator. (Может появиться сообщение, что сервер не настроен для работы с платформой Гедымин и предложение выполнить необходимую настройку. Следует согласиться и ввести логин SYSDBA и пароль masterkey)
  2. Дождитесь окончания процесса изменения структуры базы данных.
  3. В Исследователе перейдите в раздел Сервис - Администратор.
  4. Откройте окно Пользователи и на панели инструментов запустите команду Пересоздать учетные записи
Персональные инструменты
Пространства имён

Варианты
Действия
Навигация
Инструменты