Переход на Firebird 3.0. Многопользовательский режим
SYSDBA (обсуждение | вклад) |
SYSDBA (обсуждение | вклад) |
||
| Строка 122: | Строка 122: | ||
[[Category:Школа системного администратора]] | [[Category:Школа системного администратора]] | ||
[[Category:Firebird]] | [[Category:Firebird]] | ||
| + | |||
| + | __NOTOC__ | ||
Версия 14:02, 2 марта 2017
Зачем переходить? При работе с базами данных, размер которых составляет десятки Гб и более, основное узкое место в производительности сервера -- это операции ввода/вывода с дисковой подсистемой. Firebird использует диск для размещения базы данных и для записи временных файлов сортировки. Очевидное решение -- задействовать оперативную память. Но, в случае с Firebird 2.5 возникает дилемма: SuperServer позволяет использовать общий на все коннекты кэш страниц, однако, при этом выполнение запросов будет происходить в рамках одной нити и только на одном процессоре/ядре, сколько бы их ни было установлено в системе. ClassicServer позволяет распараллелить коннекты на разные процессоры, но при этом отсутствует общий кэш данных.
В Firebird 3 64bit данные ограничения устранены. Теперь можно добиться значительного увеличения быстродействия (в нашей практике в 5-10 раз) за счет выделения кэша сопоставимого с размером файла базы данных.
Реальный случай, на примере одного из наших клиентов. Размер файла базы данных составляет 60 Гб. Сервер базы данных содержит два 10-ти ядерных процессора и 128 Гб оперативной памяти. Мы установили следующее распределение оперативной памяти:
- 32 Гб для оперативной системы, выполняющихся процессов, файлового кэша оперативной системы
- 32 Гб под буфер сортировки сервера Firebird
- 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
- Убедитесь, что Гедымин работает под сервером Firebird 2.5. Если нет, то сначала сконвертируйте файл базы данных.
- Создайте архивную копию базы данных.
- На сервере остановите службу Firebird 2.5 (как это сделать из командной строки, см. ниже).
- Установите и запустите сервер Firebird 3.
- Скачайте и расположите в папке UDF сервера библиотеку GUDF.DLL соответствующей разрядности.
- Скачать с сайта gsbelarus.com архив с новейшей версией gedemin.exe. Замените его содержимым все файлы в папке, из которой вызывается gedemin.exe.
- Запустите gedemin.exe и восстановите базу данных из архивной копии используя подключение к серверу Firebird 3.
- Подключитесь к базе данных под учетной записью Administrator и обновите ее структуру.
Обновление сервера
Все действия должны выполняться на сервере базы данных. Ниже представлена последовательность действий для операционной системы Windows и ручного обновления сервера без использования автоматического инстолятора:
- Открываем командную строку (Пуск - Выполнить - cmd)
- Переходим в каталог сервера. В зависимости от места установки это может быть c:\program files\firebird. Команды:
- c:
- cd \program files
- cd firebird
- Выполняем команду: instsvc stop
- Выполняем команду: instsvc remove
- Выполняем команду: instreg remove
- Выходим из каталога сервера: cd ..
- Переименовываем каталог сервера, например: rename firebird firebird_old
- Скачиваем архив по приведенным ссылкам:
- Стабильная версия 3.0: для Windows 32bit, для Windows 64bit
- Сборка с последними изменениями (snapshot): Windows32 и Windows64
- Распаковываем архив в новый каталог, например, c:\program files\firebird.
- Переходим в этот каталог.
- Выполняем команду:
- Для установки супер сервера: instsvc install -s -a
- Для установки сервера классической архитектуры: instsvc install -с -a
- Выполняем команду: gsec -add sysdba -pw masterkey -user sysdba
- Выполняем команду: instsvc start
- В соответствии с разрядностью установленного сервера Firebird скачиваем с сайта gsbelarus.com библиотеку gudf.dll по приведенным
ссылкам: для Windows 32bit, для Windows 64bit Распаковываем архив и копируем библиотеку в подкаталог UDF сервера, c:\program files\firebird\udf.
Обновление клиентской библиотеки
Указанные действия выполняем на каждой рабочей станции в локальной сети предприятия.
- Удаляем следующие файлы, если они расположены рядом с файлом gedemin.exe.
- fbclient.dll
- icuuc30.dll
- icuin30.dll
- icudt30.dll
- ib_util.dll
- msvcr80.dll
- msvcp80.dll
- Из каталога сервера копируем и выкладываем рядом с gedemin.exe следующие файлы:
- fbclient.dll
- ib_util.dll
- icudt52.dll
- icuin52.dll
- icuuc52.dll
- msvcp100.dll
- msvcr100.dll
Обратите внимание! Так как gedemin.exe 32-х разрядное приложение, библиотека fbclient.dll должна быть аналогичной разрядности. Если вы установили 64-х разрядный сервер Firebird, то копировать файлы надо не из его каталога, а скачать архив с 32-х разрядной версией сервера и копировать файлы из него.
Восстановление базы данных из архивной копии
Восстановите базу данных из архива.
Запуск программы
- Войдите в программу под учетной записью Administrator. (Может появиться сообщение, что сервер не настроен для работы с платформой Гедымин и предложение выполнить необходимую настройку. Следует согласиться и ввести логин SYSDBA и пароль masterkey)
- Дождитесь окончания процесса изменения структуры базы данных.
- В Исследователе перейдите в раздел Сервис - Администратор.
- Откройте окно Пользователи и на панели инструментов запустите команду Пересоздать учетные записи