Обновление Серверной части
краткая версия:
- Остановить Сервер блокировок
- Сбросить все соединения с БД
- Сделать Backup
- Stop fb
- Stop service ab
- Обновить Udf
- Start fb
- Накатить scripts необходимых версий.
Обновление БД и ПО.
!!!ВНИМАНИЕ!!!
Перед проведением обновления у Заказчика, рекомендуем сначала проверить все у себя в офисе на сборке клиента. Во избежание возникновения сбоев в работе ПО Абонемент, а так же безвозвратного повреждения рабочей версии программы и базы данных, необходимо сделать резервную копию БД и ПО. В случае сбоя при обновлении уже на объекте, развернуть резервную копию, тем самым восстанавливая работоспособность объекта, после чего все проверить на копии.
0.Подготовка.
Проверяем текущую версию ПО и БД Абонемент. Сделать это можно при загрузке ПО, во время появления окна ввода логина и пароля пользователя:
Проверить версию ПО можно, выбрав пункт меню "Сервис" -> "О программе":
Существует второй метод уточнить версию БД, но использовать его рекомендуется только в случае отсутствия данных об установленной версии ПО и БД, и невозможности произвести запуск ПО Абонемент. Запускаем IBEXPERT.exe и подключаемся к БД объекта (см. инструкцию), открываем procedures, там находим в самом низу SYS$VERSION_FITNESS, открываем данный параметр, и смотрим установленную версию БД.
Заходим в разархивированную папку актуальной версии FullVersion… , и находим там файл version.txt, в нём находится вся необходимая информация для обновления. Находим рекомендации по обновлению поиском в файле по номеру версии программы, которая установлена на данный момент.
1. Обновление базы.
1.1 Запускаем IBEXPERT.exe и подключаемся к БД объекта (см. инструкцию). Запускаем окно выполнения скриптов сочетанием Ctrl+F12. Проверяем, чтобы в верхней строке стояла галочка "Use current connect". В файле version.txt находим рекомендации по обновлению - поиск можно произвести по номеру версии программы.
Встречаются как *.sql файлы типа 1.115.sql, так и файлы developer.sql & housekeeping2.sql - разберем последние два.
Housekeeping2.sql из папки updatesql нужно выполнить после обновления на 114-ую версию, после 116-ой - выполнить \HouseKeeping\SQL\HouseKeeping2.sql
developer.sql в идеальном случае (при обновлениях на одну-две версии) должен устанавливаться только один раз, самым последним по списку. Но на практике, при обновлениях со старых версий, его нужно выполнять несколько раз, так как иначе Вы увидите ошибки при выполнении остальных скриптов. По ссылке вы можете найти архив со всеми developer.sql от всех версий - для безошибочного обновления, нужно выполнять developer, соотвествующий каждой версии (как указано в version.txt).
Вы можете увидеть типовые проблемы, возникающие при неправильном использовании developer, в следующих задачах: #100605 или #100535.
ВНИМАНИЕ! В Файле developer.sql не должно быть следующих строк, если они есть и в обновляемой базе работает только ПО Абонмент, то их нужно удалить:
update RDB$RELATION_FIELDS set RDB$FIELD_SOURCE = 'D_1KMEMO' where (RDB$FIELD_NAME = 'STRVALUE') and (RDB$RELATION_NAME = 'DEFAULT_VALUES');commit;select * from sp_create_object('&Object=DROP_CONSTRAINT&Table=DEFAULT_VALUES&Name=IX_DEFAULT_VALUES_NAME');commit;select * from sp_create_object('&Object=CONSTRAINT&Table=DEFAULT_VALUES&Name=IX_DEFAULT_VALUES_REF_NAME&Params=REFTYPE,REF,NAME');select * from sp_create_object('&Object=INDEX&Table=DEFAULT_VALUES&Name=IX_DEFAULT_VALUES_OLD_NAME&Params=NAME');commit;
1.2 Возвращаемся к рекомендациям по обновлению начиная с текущей версии БД, открываем папку updatesql, и устанавливаем поочерёдно все *.sql файлы включая developer.sql & housekeeping2.sql, в том порядке, который мы определили на предыдущем шаге. ОШИБОК быть не должно!!! ВНИМАТЕЛЬНО отнеситесь к файлам developer.sql & housekeeping2.sql, установите их вовремя!!!
1.3 При обновлении на некоторые версии, требуются обновления FireBird
1.4. Если позволяет время, то рекомендуем после обновления провести backup-restore базы данных абонмент. Восстановленную после restore базу установить как рабочую. Более подробно о этой процедуре см тут.
1.5. При возникновении ошибки вида "This operation is not defined for system tables. unsuccessful metadata update. cannot delete. COLUMN DIARY.CALC_STARTTIME. there are 1 dependencies." отключите на время обновления логирование таблицы, указанной в ошибке (в данном случае - DIARY)