[英]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.