[英]Alfresco db content size and contentstore size: How to match?
我有一個SQL查詢來從內容URL獲取內容大小,但是當我執行SQL並將結果與contentstore的目錄大小進行比較時,它不匹配。 例如,首先我從數據庫(PostgreSQL)獲取內容大小:
SELECT count(*),
SUM(round(u.content_size/1024/1024,2)) AS "Size (MB)",
to_char(n.audit_created:: date,'yyyy') AS yyyy_
FROM alf_node AS n,
alf_node_properties AS p,
alf_node_properties AS p1,
alf_namespace AS ns,
alf_qname AS q,
alf_content_data AS d,
alf_content_url AS u
WHERE n.id=p.node_id
AND ns.id=q.ns_id
AND p.qname_id=q.id
AND p.long_value=d.id
AND d.content_url_id=u.id
AND p1.node_id=n.id
AND p1.qname_id IN (SELECT id FROM alf_qname WHERE local_name='name')
GROUP BY yyyy_
ORDER BY yyyy_ DESC;
它給我的總大小為600 GB。 但是當我在alf_data
看到文件夾內容存儲的size屬性時,它顯示2.4 TB。 怎么可能?
最后,但並非最不重要的是,你將文件大小以MB為單位,對於每個文件進行求和之前,嘗試以字節為單位進行求和,然后將結果舍入為:
SELECT count(*),round(SUM(u.content_size)/1024/1024, 3) AS "Size (MB)", to_char(n.audit_created:: date,'yyyy') as yyyy_ FROM alf_node AS n, alf_node_properties AS p, alf_node_properties AS p1, alf_namespace AS ns, alf_qname AS q, alf_content_data AS d, alf_content_url AS u WHERE n.id=p.node_id AND ns.id=q.ns_id AND p.qname_id=q.id AND p.long_value=d.id AND d.content_url_id=u.id AND p1.node_id=n.id AND p1.qname_id IN (SELECT id FROM alf_qname WHERE local_name='name') group by yyyy_ ORDER BY yyyy_ DESC;
僅根據您當前在存儲庫中擁有的內容來了解內容存儲庫的空間並不容易。
使用新版本刪除或更新文檔時,Alfresco不會立即從磁盤中刪除二進制文件。
實際釋放磁盤空間的過程有點“復雜”。 以下文章介紹了如何配置此過程的第一步: 清理孤立內容(清除)
默認情況下,“清除”配置為每天凌晨4點執行,並清除至少提前14天從存儲庫中刪除的任何孤立文件。
如本文所述,默認情況下,Alfresco不會刪除已清除的文件,但只將它們移動到不同的文件夾(contentstore.deleted)。
在備份后刪除contentstore.deleted中的文件是安全的。
像往常一樣,在alfresco-global-properties中,您可以修改默認配置(可在alfresco / repository.properties中找到)
您可以通過多種方式獲得大量孤立文件。 舉幾個例子:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.