Срок действия элементов журнала аудита

В больших экземплярах со временем может накапливаться множество журналов аудита, что влияет на производительность вашей базы данных 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