Чистка таблиц лицензий от неиспользуемых или устаревших записей
Иногда бывает, что система ругается на отсутствие лицензий и не пускает даже Supervisor-а, но при этом в менеджере лицензий все галочки в нужных местах стоят.
Вот скрипт, который очистит таблицы базы данных SysLicUser, SysLic и SysLicPackage от информации о старых и повреждённых лицензиях. Это должно помочь удалить «неиспользуемые» записи в этих 3 таблицах, а также лицензии, у которых вышел срок.
Чтобы просто проверить наличие таких записей, замените «delete» на «select *».
delete from "SysLicUser" where "Id" not in (select slu."Id" from "SysLicUser" slu inner join "SysLicPackage" slp on slp."Id" = slu."SysLicPackageId" inner join "SysAdminUnit" sau on sau."Id" = slu."SysUserId" inner join "Contact" c on c."Id" = sau."ContactId" where slu."Active" = '1' ) delete from "SysLic" where "SysLicPackageId" not in (select slp."Id" from "SysLicUser" slu inner join "SysLicPackage" slp on slp."Id" = slu."SysLicPackageId" inner join "SysAdminUnit" sau on sau."Id" = slu."SysUserId" inner join "Contact" c on c."Id" = sau."ContactId" where slu."Active" = '1' ) or "DueDate" < GETDATE() --если Oracle, то заменить на SYSDATE без скобок delete from "SysLicPackage" where "Id" not in (select slp."Id" from "SysLicUser" slu inner join "SysLicPackage" slp on slp."Id" = slu."SysLicPackageId" inner join "SysAdminUnit" sau on sau."Id" = slu."SysUserId" inner join "Contact" c on c.Id = sau."ContactId" where slu."Active" = '1' )
Если это не поможет, придётся полностью очистить таблицы лицензий запросами:
delete from "SysLicUser" delete from "SysLic" delete from "SysLicPackage"
Учтите, это удаляет лицензии всем пользователям, их надо перезаказывать и распределять заново. Перед удалением можно сделать скриншот, у кого какие лицензии были.
Учтите, что пока новые лицензии не будут загружены, пользователи не смогут работать в системе, манипуляцию лучше проводить в нерабочее время.
В любом случае перед использованием скриптов для удаления записей лучше сделать резервную копию базы, если есть техническая возможность.