Переход на Firebird 3.0. Многопользовательский режим
SYSDBA (обсуждение | вклад) |
SYSDBA (обсуждение | вклад) (→Если файла базы данных больше размера оперативной памяти) |
||
| Строка 47: | Строка 47: | ||
Устанавливаем режим безопасности максимально приближенный к тому, как было в версии 2.5, чтобы не нарушить работу всех существующих рабочих мест. | Устанавливаем режим безопасности максимально приближенный к тому, как было в версии 2.5, чтобы не нарушить работу всех существующих рабочих мест. | ||
| − | ==Если | + | ==Если файл базы данных больше размера оперативной памяти== |
В приведенном выше примере размер файла базы данных меньше размера оперативной памяти компьютера и распределение памяти между кэшем страниц и буфером сортировки не вызывает особых проблем. Но, как распределить память, если она меньше файла базы данных? Здесь потребуется эксперементирование. Начать мы рекомендуем со следующих параметров: | В приведенном выше примере размер файла базы данных меньше размера оперативной памяти компьютера и распределение памяти между кэшем страниц и буфером сортировки не вызывает особых проблем. Но, как распределить память, если она меньше файла базы данных? Здесь потребуется эксперементирование. Начать мы рекомендуем со следующих параметров: | ||
Версия 14:17, 6 марта 2017
Зачем переходить? При работе с базами данных, размер которых составляет десятки Гб и более, основное узкое место в производительности сервера -- это операции ввода/вывода с дисковой подсистемой. Firebird использует диск для размещения базы данных и для записи временных файлов сортировки. Очевидное решение -- задействовать оперативную память. Но, в случае с Firebird 2.5 возникает дилемма: SuperServer позволяет использовать общий на все коннекты кэш страниц, однако, при этом выполнение запросов будет происходить в рамках одной нити и только на одном процессоре/ядре, сколько бы их ни было установлено в системе. ClassicServer позволяет распараллелить коннекты на разные процессоры, но при этом отсутствует общий кэш данных.
В 64-х разрядном Firebird 3 данные ограничения устранены. Теперь можно добиться значительного увеличения быстродействия (в нашей практике в 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, чтобы не нарушить работу всех существующих рабочих мест.
Если файл базы данных больше размера оперативной памяти
В приведенном выше примере размер файла базы данных меньше размера оперативной памяти компьютера и распределение памяти между кэшем страниц и буфером сортировки не вызывает особых проблем. Но, как распределить память, если она меньше файла базы данных? Здесь потребуется эксперементирование. Начать мы рекомендуем со следующих параметров:
- 8-16 Гб под операционную систему, программы, сервисы, файловый кэш ОС
- 2/3 оставшейся памяти под кэш страниц базы данных
- 1/3 -- под буфер сортировки
Далее, наблюдаем за работающей системой:
- Если Windows Performance Monitor показывает значительное использование файла своппинга, следует увеличить количество памяти под нужды операционной системы.
- Если в папке для временных файлов (операционной системы или той, что прописана в firebird.conf) появляются файлы сортировки (и, особенно, если их размер не 0), то следует увеличить размер буфера сортировки за счет уменьшения кэша страниц базы данных.
Порядок перехода на Firebird 3
- Убедитесь, что Гедымин работает под сервером Firebird 2.5. Если нет, то сначала сконвертируйте файл базы данных.
- Создайте архивную копию базы данных.
- На сервере остановите службу Firebird 2.5 (как это сделать из командной строки, см. ниже).
- Установите и запустите сервер Firebird 3.
- Скачайте и расположите в папке UDF сервера библиотеку GUDF.DLL соответствующей разрядности.
- Скачать с сайта gsbelarus.com архив с новейшей версией gedemin.exe. Замените его содержимым все файлы в папке, из которой вызывается gedemin.exe.
- Запустите gedemin.exe и восстановите базу данных из архивной копии используя подключение к серверу Firebird 3.
- Подключитесь к базе данных под учетной записью Administrator и обновите ее структуру.
Остановка работающей службы сервера Firebird 2.5
Перед установкой новейшей версии сервера Firebird 3 следует остановить службу Firebird 2.5. Конечно, если у вас нет необходимости в одновременном использовании двух разных версий сервера. Такой случай подробно рассматривается ниже.
- Открываем командную строку (Пуск - Выполнить - cmd)
- Переходим в папку сервера. В зависимости от места установки это может быть c:\program files\firebird. Команды:
- c:
- cd \program files
- cd firebird
- Выполняем команду: instsvc stop
- Выполняем команду: instsvc remove
- Выполняем команду: instreg remove
- Выходим из папки сервера: cd ..
- Удаляем папку
Если вы устанавливали сервер с помощью инстолятора, то остановить службу и деинсталировать сервер можно через панель управления Windows.
Установка и настройка сервера Firebird 3
Для установки вы можете скачать инстолятор с официального сайта или воспользоваться архивом с текущей ночной сборкой. Мы рекомендуем второй способ, так как официальный инстолятор обновляется не часто -- раз в 4-6 месяцев.
- Скачиваем архив
- Распаковываем архив в новый каталог, например, c:\program files\fb3
- Переходим в этот каталог
- Выполняем команду:
- Для установки супер сервера: 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)
- Дождитесь окончания процесса изменения структуры базы данных.
- В Исследователе перейдите в раздел Сервис - Администратор.
- Откройте окно Пользователи и на панели инструментов запустите команду Пересоздать учетные записи