監査ログ項目を期限切れにする

監査ログを使用する

このページの内容

お困りですか?

アトラシアン コミュニティをご利用ください。

コミュニティに質問

大規模なインスタンスでは時間の経過とともに監査ログが蓄積されて、Jira データベースのパフォーマンスに影響を与えてディスク容量を圧迫する可能性があります。このガイドでは、不要になった古い監査ログ アイテムを定期的に削除する方法について説明します。

監査ログの期限設定

Automation for Jira 3.12 以降の実行時に、グローバル管理者が監査ログの有効期限を設定できるようになりました。[グローバル設定] セクションに進んで監査ログの有効期限を希望の値にスライドさせ、監査ログの有効期限を有効にします。

[保存] をクリックすると完了です。そのスケジュールで監査ログの有効期限が切れるようになりました。

監査ログ アイテムが多い場合、この操作はコストがかかり、データベースに余分な負荷をかける可能性があります。適切な時間を選択して最大実行時間を制限し、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";
最終更新日: 2023 年 1 月 27 日

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.