Содержание

Проект "Агбис Конвертор БД"

Программа прежде всего предназначена для выполнения конвертации базы данных для работы с новой версией сервера Firebird в режиме автоконвертации без диалогового окна.
Программа выполняет запуск двух программ gbak.exe из состава Firebird для выполнения двух операций Backup и Restory.
Если вторая программа gbak.exe берется из состава Firebird старшей версии, то в результате выполняется конвертация данных к новой версии Firebird.
Если вторая программа gbak.exe берется из состава Firebird исходной версии, то в результате выполняется оптимизация данных в рамках текущей версии Firebird.

Перед выполнением конвертации создается резервная копия базы данных.
В случае возникновения ошибок в процессе конвертирования, выполняется откат - резервная копия возвращается на место исходной базы данных и система возвращается к ситуации до начала конвертирования.
Если конвертирование проходит успешно, то новая база заменяет исходную, а новый Firebird переключается на работу через порт на котором работал старый Firebird.
В результате, приложения не требуют дополнительной настройки подключений, сразу начинают работать с новой базой через новый Firebird.
Старый Firebird отключается, чтобы не перехватывал работу с базой.
Новый Firebird автоматически скачивается с серверов АГБИС и устанавливается как служба.

Подготовка к применению

1. Подключение к «Исходной» базе данных должно быть локальным, так как для выполнения операций используется режим Embedded Firebird. Программа должна иметь локальный доступ к файлу базы данных.
2. На время выполнения конвертора отключаются все программы от базы данных, останавливаются службы (агенты), поэтому операцию следует согласовывать с клиентом.
3. Останавливается, а затем заменяется, сервер Firebird, что может повлечь остановку других программ, которые работают с другими базами данных. В этом случае потребуется дополнительная настройка серверов Firebird и подключений приложений: изменение портов и порядка запуска служб Firebird.
4. В процессе конвертации создается две копии базы данных, поэтому следует проверить, что на диске свободного места в 2.5 раза больше чем размер самой базы данных.

Установка программы

Программу можно загрузить по ссылке
ПРОВЕРИТЬ

http://agbis.co/download/admin_tools/agbdbconvertor.zip

Папку agbDBConvertor с программой agbDBConvertor.exe следует разместить в папку с программами АГБИС.
Обычно это e:\Agbis\agbDBConvertor\agbDBConvertor.exe

Параметры командной строки

Все параметры могут быть заданы через файл agbDBConvertor.ini.
Значение параметра в командной строке имеет приоритет перед значение в ini-файле.
Файл agbis.xml ищется в родительской папке. То есть, если запускается D:\Agbis\agbDBConvertor\agbDBConvertor.exe, то будет считываться D:\Agbis\agbis.xml

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

Запуск программы интерактивном режиме

agbDBConvertor.exe

Считываются параметры из agbDBConvertor.ini и открывается форма для ввода параметров.

Можно выбрать файл базы данных, порт для подключения к базе данных и версию Firebird для новой базы данных.
Кнопка «Конвертация БД» запускает процесс.
Более подробно можно посмотреть в разделе Форма "Конвертор базы данных"

Дополнительно, пункт главного меню "Настройка Firebird" открывает форму для просмотра и натройки параметров Firebird.

Запуск программы режиме автоконвертации

agbDBConvertor.exe /run AliasBase="Agbis" FirebirdNum=3 CLIENT_DEP_ID=2 timeout=1

Так как задан параметр /run, то после запуска программы сразу запускается процесс конвертации. Все параметры заданы в командной строке. Если параметры не позволяют найти и открыть базу данных, то процесс атоматически завершается. Результат работы можно увидеть в логах в папке Logs\

Возможен вариант

agbDBConvertor.exe /run 

В этом случае, так как задан параметр /run, то после запуска программы также сразу запускается процесс конвертации, но параметры берет из файла agbDBConvertor.ini.

Особенности применения

Подключение к «Исходной» базе данных должно быть локальным, так как для выполнения операций используется режим Embedded Firebird.
Программа должна иметь локальный доступ к файлу базы данных.

При выполнении Backup/Restory происходит оптимизация базы данных.
Например, при удалении фотографий объем данных сильно уменьшается, однако размер файла базы данных остается прежний и уменьшается только после Backup/Restory.
Кроме этого происходит дефрагментация страниц данных, обновление индексов и тому подобное. Это может существенно увеличить скорость работы базы данных.

При этом выполняются следующие операции:

Таким образом новая версия Firebird замещает старую и все программы переключаются на работу с новой базой данных без дополнительных настроек.

При выполнении оптимизации/конвертации останавливается служба Firebird.
Поэтому нужно предупредить пользователей, чтобы они смогли завершить работу программ, которые используют доступ к базе данных.
Операция длительная, в зависимости от объема базы данных может занимать до часу времени.

В случае возникновения ошибок исходная база остается без изменений.
Полученную базу с ошибками и логи выполнения операции требуется передать в техническую поддержку АГБИС для выяснения причин.
В случае успешного завершения исходная база будет переименована и сохранена в прежнем каталоге. Со временем ее можно будет удалить для экономии места.

Термины

К этой базе, настроено постоянное подключение программ через сервер Firebird.
Подключение выполняется напрямую к базе, поэтому требуются логин и пароль пользователя базы данных.
Логин и пароль пользователя программы, как правило, не совпадают логином и паролем базы данных.

После проверки целостности «Исходная» база данных переименовывается и становится резервной копией, а «Новая» база данных переименовывается и становится «Исходной».
Кроме того новая версия Firebird переключается на работу через порт старой версии Firebird. В результате все программы переключаются на работу с новой базой данных через новый Firebird без дополнительных настроек запуска этих программ.

Оптимизация базы данных

Запускается программа agbDBConvertor.ехе от имени администратора.
Права администратора нужны для включения/выключения служб.
Если доступен файл agbis.xml, то параметры подключения будут считаны из него и дополнительных настроек не потребуется.

На всякий случай, следует проверить путь к базе данных в поле «Файл базы данных».
Далее запускается процесс оптимизации кнопкой «Оптимизация БД (B/R)».

Нажимается кнопка «Да».
Ждем завершения процесса.
В случае успешного завершения должно появится сообщение «База данных успешно пересоздана - выполнены Backup/Restory».

В папке с базой данных появится файл типа arm_20210302_162659.fdb, где суффикс показывает дату и время выполнения оптимизации.
Если потребуется откатить изменения, то достаточно переименовать этот файл в исходный.

Конвертация базы данных

Запускается программа agbdbconvertor.ехе от имени администратора.
Права администратора нужны для установки и включения/выключения служб.
Если доступен файл agbis.xml, то параметры подключения будут считаны из него.

На всякий случай, следует проверить путь к базе данных в поле «Файл базы данных».
В поле «Firebird для «Новой» базы данных» выбирается Firebird 3.0.
Кнопка «Оптимизация БД (B/R)» меняет название на «Конвертация БД».

Далее запускается процесс оптимизации кнопкой «Конвертация БД».

Нажимается кнопка «Да».
Ждем завершения процесса.
В случае успешного завершения должно появится сообщение «База данных успешно пересоздана - выполнены Backup/Restory».

В папке с базой данных появится файл типа arm_20210302_162659.fdb, где суффикс показывает дату и время выполнения оптимизации.
Если потребуется откатить изменения, то достаточно переименовать этот файл в исходный.

Если потребуется откатить изменения, то нужно

  1. переименовать файл резервной копии в исходный,
  2. остановить Firebird 3,
  3. заменить порт Firebird 2,
  4. включить службу Firebird 2.

Восстановление Firebird можно выполнить через программу agbdbconvertor.ехе с формы "Настройка Firebird"

Дополнительная информация