チケットの添付ファイルを削除してデータベースサイズを縮小する方法
注意:この記事はデータベースへのアクセスが必要なため、LiveAgentのセルフホスト型インストールにのみ有効です。
データベースのサイズを削減する必要がある場合(例:ディスク容量が不足している場合)、まず最初に検討すべきは Amazon S3 File Archiveプラグインの使用です。
Amazon S3 File Archiveプラグインを使用したくない場合、または何らかの理由で使用できない場合、次の選択肢として古い不要な添付ファイルを削除することができます。便利なツールの一つが Ticket attachments(チケット添付ファイル)プラグインです。このプラグインはLiveAgentパネルの Configuration->System->Plugins(設定→システム→プラグイン)セクションで有効化できます。このプラグインは現在のチケットのすべての添付ファイルを一覧表示し、ファイルの削除を許可するように設定することができます。ただし、すべてのチケットを一つ一つ確認して最も添付ファイルが多いものを探すのは非常に時間がかかります。
その代わりに、以下の SQLコマンドを使用することで、最も多くのスペースを消費している添付ファイルを持つチケットを表示することができます。
select c.code, c.datecreated, SUM(f.filesize) as attachments_size
from qu_g_file_links fl
join qu_la_messages m on fl.entity_id = m.messageid
join qu_g_files f on fl.fileid = f.fileid
join qu_la_conversations c on m.conversationid = c.conversationid
where fl.rtype='M' and fl.is_included_image = 'N' and f.filesize is not null
group by m.conversationid
order by attachments_size desc
code(コード)列の値を使用してチケットを検索し、Ticket Attachments Management(チケット添付ファイル管理)プラグインを使用してファイルを削除することができます(削除はプラグインの設定で有効化する必要があります)。
ファイルはデータベースに重複排除された状態で保存されます。つまり、同じ添付ファイルを複数のチケットにアップロードした場合、ファイルデータは一度だけ保存され、各チケットは同じファイルを参照します。ファイルへの参照が存在する限り、ファイルは保持されます。チケット添付ファイルプラグインを使用してチケットから添付ファイルを削除すると、参照のみが削除されるため、ファイルへの最後の参照を削除しない限り、実際のファイルデータは削除されません。参照がなくなったファイルは、毎週実行されるバックグラウンドタスクによって削除されます。
以下のSQLコマンドを実行することで、バックグラウンドタスクを毎日実行するように強制することができます(recurrencepresetidの値’A’は毎日、‘B’は毎週を意味します)。
UPDATE qu_g_plannedtasks SET recurrencepresetid='A' WHERE classname='Gpf_Tasks_DeleteUnusedFiles'
バックグラウンドタスクが実行されてテーブルからファイルデータが削除された後、実際にデータベースファイルのストレージを縮小するには、以下のSQLコマンドを実行する必要がある場合があります。このコマンドは完了までに非常に長い時間がかかる場合があります。
OPTIMIZE TABLE `qu_g_filecontents`
バージョン5.25以降、チケット添付ファイルのデータベース保存方法に変更が加えられており、上記の方法はバージョン5.25以降のアップデート後に作成された添付ファイルには機能しません。バージョン5.25より前に作成された古い添付ファイルを削除する必要がある場合には、引き続き有効です。