我是一个 alfresco 3.3c 用户,其实例支持超过 400 万个对象。我开始遇到备份问题,因为即使在增量模式下备份 alf_data/contentstore 文件夹,也需要很长时间(总是需要分析所有这些文件以进行更改)。我注意到 alf_data/contentstore 每年在内部组织一次,我可以假设更早的年份(2012 年)不再改变吗?(如果是,我可以创建一个异常并从备份过程中删除这些目录,显然是使用以前的完整备份)
谢谢,亲切的问候。
是的,您可以假设在内容存储的旧目录中不会创建任何对象(并且项目永远不会更新),尽管项目可能会在从 Alfresco 的垃圾箱中删除后被存储库的清理作业删除。
这是org.alfresco.repo.content.filestore.FileContentStore
生成新内容 URL 的部分。您可以很容易地看到它始终使用当前日期和时间。
/**
* Creates a new content URL. This must be supported by all
* stores that are compatible with Alfresco.
*
* @return Returns a new and unique content URL
*/
public static String createNewFileStoreUrl()
{
Calendar calendar = new GregorianCalendar();
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH) + 1; // 0-based
int day = calendar.get(Calendar.DAY_OF_MONTH);
int hour = calendar.get(Calendar.HOUR_OF_DAY);
int minute = calendar.get(Calendar.MINUTE);
// create the URL
StringBuilder sb = new StringBuilder(20);
sb.append(FileContentStore.STORE_PROTOCOL)
.append(ContentStore.PROTOCOL_DELIMITER)
.append(year).append('/')
.append(month).append('/')
.append(day).append('/')
.append(hour).append('/')
.append(minute).append('/')
.append(GUID.generate()).append(".bin");
String newContentUrl = sb.toString();
// done
return newContentUrl;
}
实际上不,你不能,因为如果文件在 Alfresco 中被修改/更新,文件系统路径不会改变。请记住,您可以热备份内容存储(而不是 lucene 索引文件夹)目录,并且没有必要检查每个文件的一致性。只需启动一个 shell/batch 脚本来执行副本而不进行检查,或者使用像xxcopy这样的工具。(我说的是节点属性,而不是节点内容)