Чистка таблиц лицензий от неиспользуемых или устаревших записей

Иногда бывает, что система ругается на отсутствие лицензий и не пускает даже 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"

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

Учтите, что пока новые лицензии не будут загружены, пользователи не смогут работать в системе, манипуляцию лучше проводить в нерабочее время.

В любом случае перед использованием скриптов для удаления записей лучше сделать резервную копию базы, если есть техническая возможность.

Нравится

Поделиться

0 комментариев
Показать все комментарии