В больших экземплярах со временем может накапливаться множество журналов аудита, что влияет на производительность вашей базы данных Jira и забивает ваше дисковое пространство. В этом руководстве объясняется, как можно регулярно удалять те старые элементы журнала аудита, которые вам больше не нужны.
Настройка срока действия журнала аудита
Если вы используете Automation for Jira 3.12+, то теперь глобальные администраторы могут настроить срок действия журнала аудита!
Просто перейдите в раздел «Глобальная конфигурация» ("Global Configuration"), затем включите истечение срока действия журнала аудита, сдвинув срок действия журнала аудита до желаемого значения.
Нажмите "Сохранить" ("Save"), и все готово! Журналы аудита теперь истекают по этому графику.
Предупреждение
Эта операция может быть дорогостоящей и вызывать большую дополнительную нагрузку на базу данных, если у вас много элементов журнала аудита. Убедитесь, что вы выбрали подходящее время и установили максимальное время выполнения, чтобы истечение срока действия происходило только в наименее загруженные периоды для вашего экземпляра Jira (например, в выходные).
Если у вас большой объем невыполненных элементов аудита, вы можете сначала удалить их все сразу, используя указанные ниже запросы к базе данных во время запланированного простоя, прежде чем настраивать автоматическое истечение срока действия журнала аудита в глобальной конфигурации.
Истекающие элементы прямо в базе данных
Предупреждение
Это деструктивный процесс, и при неправильном выполнении он может привести к потере или повреждению данных. Рекомендуется сделать резервную копию на случай, если вам понадобится откат.
Эта процедура необходима только в том случае, если вы используете старую версию Automation for Jira или у вас есть много элементов аудита, которые вы хотите удалить массово во время запланированного простоя.
Вы делаете это в 3 шага: определите таблицы, затем проверьте количество элементов и, наконец, удалите их. Эта информация не кэшируется, поэтому нет необходимости перезапускать Jira или надстройку в конце.
Прежде всего, проверьте счет на нужных столах:
SELECT count(*) FROM "AO_589059_AUDIT_ITEM";
SELECT count(*) FROM "AO_589059_AUDIT_ITEM_ASC_ITEM";
SELECT count(*) FROM "AO_589059_AUDIT_ITEM_CGE_ITEM";
SELECT count(*) FROM "AO_589059_AUDIT_ITEM_COMP_CGE";
SELECT count(*) FROM "AO_589059_AUDIT_ITEM_PROJECT";
Затем выберите дату и посмотрите, сколько элементов будет удалено:
SELECT count(*)
FROM "AO_589059_AUDIT_ITEM_ASC_ITEM"
WHERE "AUDIT_ITEM_ID" IN (SELECT "ID"
FROM "AO_589059_AUDIT_ITEM"
WHERE "CREATED" < '2016-09-12 07:20:17.508');
SELECT count(*)
FROM "AO_589059_AUDIT_ITEM_CGE_ITEM"
WHERE "AUDIT_ITEM_ID" IN (SELECT "ID"
FROM "AO_589059_AUDIT_ITEM"
WHERE "CREATED" < '2016-09-12 07:20:17.508');
SELECT count(*)
FROM "AO_589059_AUDIT_ITEM_COMP_CGE"
WHERE "AUDIT_ITEM_ID" IN (SELECT "ID"
FROM "AO_589059_AUDIT_ITEM"
WHERE "CREATED" < '2016-09-12 07:20:17.508');
SELECT count(*)
FROM "AO_589059_AUDIT_ITEM_PROJECT"
WHERE "AUDIT_ITEM_ID" IN (SELECT "ID"
FROM "AO_589059_AUDIT_ITEM"
WHERE "CREATED" < '2016-09-12 07:20:17.508');
SELECT count(*)
FROM "AO_589059_AUDIT_ITEM"
WHERE "CREATED" < '2016-09-12 07:20:17.508';
Сейчас самое время сделать резервную копию.
Теперь удалите пункты.
DELETE FROM "AO_589059_AUDIT_ITEM_ASC_ITEM"
WHERE "AUDIT_ITEM_ID" IN (SELECT "ID"
FROM "AO_589059_AUDIT_ITEM"
WHERE "CREATED" < '2016-09-12 07:20:17.508');
DELETE FROM "AO_589059_AUDIT_ITEM_CGE_ITEM"
WHERE "AUDIT_ITEM_ID" IN (SELECT "ID"
FROM "AO_589059_AUDIT_ITEM"
WHERE "CREATED" < '2016-09-12 07:20:17.508');
DELETE FROM "AO_589059_AUDIT_ITEM_COMP_CGE"
WHERE "AUDIT_ITEM_ID" IN (SELECT "ID"
FROM "AO_589059_AUDIT_ITEM"
WHERE "CREATED" < '2016-09-12 07:20:17.508');
DELETE FROM "AO_589059_AUDIT_ITEM_PROJECT"
WHERE "AUDIT_ITEM_ID" IN (SELECT "ID"
FROM "AO_589059_AUDIT_ITEM"
WHERE "CREATED" < '2016-09-12 07:20:17.508');
DELETE FROM "AO_589059_AUDIT_ITEM"
WHERE "CREATED" < '2016-09-12 07:20:17.508';
Проверьте новые подсчеты в таблицах:
SELECT count(*) FROM "AO_589059_AUDIT_ITEM";
SELECT count(*) FROM "AO_589059_AUDIT_ITEM_ASC_ITEM";
SELECT count(*) FROM "AO_589059_AUDIT_ITEM_CGE_ITEM";
SELECT count(*) FROM "AO_589059_AUDIT_ITEM_COMP_CGE";
SELECT count(*) FROM "AO_589059_AUDIT_ITEM_PROJECT";
По материалам Automation for Jira - Server: Expire audit log items