PowerShellで監査ログを削除する
監査ログは明示的に削除しないと永遠に溜まっていきます。
コンテンツDBの肥大化は、AuditDataテーブルの監査ログのサイズが原因の場合があります。
PowerShellを使用した削除方法の情報がなかな見つからなかったので、備忘録を残します。
●実行するスクリプト
//監査ログを削除するサイトコレクションを指定
$site = Get-SPSite <サイトコレクションのURL>
//ここで指定した日付依然の監査ログが削除される
$date = Get-Date “yy/dd/yyyy”
//環境によって日付形式が違うので、日付を確認する
$date
//指定したサイトコレクションの指定した日付までの監査ログを削除
$site.Audit.DeleteEntries($date)
※SharePoint2010、2016で検証しました。
●スクリプト実行時の注意点
削除実行中は、トランザクションログが肥大化します。
SQL Serverのトランザクションログを格納しているディスクの空き容量に注意して、削除する期間を決めます。
実施実績として、1500万レコード削除時で35GB くらいのサイズになりました。
AuditDataテーブルのレコード件数を確認してどのくらい分割して削除するかは環境に合わせて考慮が必要です。