コンテンツのライフサイクル(3)〜ファイルシステムとDBクリーニング〜 - コンテンツのライフサイクル(3)〜ファイルシステムとDBクリーニング〜 - aegif Labo Blog Alfresco
null コンテンツのライフサイクル(3)〜ファイルシステムとDBクリーニング〜
こんにちは。たなかです。
前回コンテンツ作成までご紹介したコンテンツのライフサイクル(1)、ごみ箱に入れる(コンテンツ削除)を紹介したコンテンツのライフサイクル(2)の続きで、今回は最終回としてファイルシステムとDBのクリーニングについてをご紹介します。
ファイルシステムのクリーニング
ContentStoreCleanerが定期的に実行され、alf_nodeのorphan_timeから一定期間(デフォルトは14日間)経過しているファイル実体をcontentstoreからcontentstore.deletedに移動します。
ContentStoreCleanerの実行タイミング(contentstore.deletedへ移動させる期間とContentStoreCleanerの実行時刻)については以下のファイルで設定することが可能です。
vi install_dir /tomcat/shared/classes/alfresco-global.properties
以下のプロパティに設定します。
contentstore.deletedへ移動させるまでの日数
system.content.orphanProtectDays=7
ContentStoreCleanerの実行時刻
system.content.orphanCleanup.cronExpression=0 0 4 * * ?
ファイルシステム
contentstoreからcontentstore.deletedへ移動されています。
[root@localhost aegif]# ll /opt/alfresco/alf_data/contentstore/2020/12/15/14/7/
ls: /opt/alfresco/alf_data/contentstore/2020/12/15/14/7/ にアクセスできません: そのようなファイルやディレクトリはありません
[root@localhost aegif]# ll /opt/alfresco/alf_data/contentstore.deleted/2020/12/15/14/7/
合計 4
-rw-r-----. 1 root root 23 12月 22 15:00 39b20a27-8d72-41a9-8016-0838e9c36eea.bin
contentstore.deletedに移った後は、自由に削除して問題ありません。
DB
- alf_node
レコードに変化はありません。
- alf_node_properties
レコードに変化はありません。
- alf_content_data
ごみ箱からコンテンツを削除したタイミングで削除されているため変更はありません。
- alf_content_url
レコードは削除されます。
インデックス
ごみ箱からコンテンツを削除したタイミングで削除されているため変更はありません。
ファイルシステムのクリーニングがあったことで、ファイル実体がcontentstoreからcontentstore.deletedへ移動されました。
また、DB上の変化としてはalf_content_urlテーブルからレコードが削除されています。
DBのクリーニング
DeletedNodeCleanupWorkerが定期的に実行され、alf_nodeテーブルやその他のテーブルのレコー ドを削除しています。
ここでは、alf_nodeテーブルでdeletedになっているレコードに対応するalf_transactionテーブルのcommit_time_msが一定期間経過しているものを抽出しています。
ファイルシステム
ファイルシステムクリーニングのタイミングでcontentstoreからcontentstore.deletedへ移動しているため変更はありません。
DB
- alf_node
レコードは削除されます。
- alf_node_properties
レコードは削除されます。
- alf_content_data
ごみ箱からコンテンツを削除したタイミングで削除されているため変更はありません。
- alf_content_url
ファイルシステムクリーニングのタイミングで削除されているため変更はありません。
インデックス
ごみ箱からコンテンツを削除したタイミングで削除されているため変更はありません。
ごみ箱を空にしてからの保持期間については以下のファイルで設定することが可能です。
vi install_dir /tomcat/shared/classes/alfresco-global.properties
以下のプロパティに日数を設定します。
index.tracking.minRecordPurgeAgeDays=30
DBのクリーニングがされたタイミングでalf_transactionテーブル等から関連レコードも削除されます。
これで関連テーブルからレコードが全て削除されました。
以上で『コンテンツのライフサイクル』は完結です。