误改Documentum r_object_type致对象损坏无法获取sys_object如何恢复
问题原因说明
你创建同名dm_type2依然无法解决问题的核心原因是:手动更新的r_object_type仅匹配了类型名称,系统内部关联的类型ID r_type_id 和你新建的dm_type2的实际ID不匹配,系统依然无法识别对象结构,所以访问和DQL更新都被拦截。
恢复操作步骤
首先使用
dmadmin超级管理员账号登录Documentum Administrator或者IDQL工具,先获取故障文档的r_object_id,如果无法通过DQL查询,可以直接登录底层数据库执行语句查询:select r_object_id, object_name from dm_sysobject where r_object_type = 'dm_type2';方案1:使用Documentum底层API修改(优先推荐,无需操作数据库)
执行以下API命令,将占位符替换为你实际的故障文档r_object_id:get,c,<故障文档r_object_id> set,c,l,r_object_type append,c,l,dm_type1 save,c,l执行完成后验证对象是否可以正常访问,如果依然报错执行
flush cache allDQL命令清除服务端缓存即可。方案2:直接修改数据库(兜底方案,操作前务必备份
dm_sysobject表数据)
直接登录Documentum对应的业务数据库,执行更新语句:update dm_sysobject set r_object_type = 'dm_type1' where r_object_id = '<故障文档r_object_id>';修改完成后重启Documentum内容服务器,或者执行
flush cache all清除缓存即可恢复访问。
注意事项
- 全程必须使用
dmadmin超级管理员权限操作,普通账号无权限执行上述操作 - 后续禁止直接通过DQL修改
r_object_type这类系统保留字段,变更对象类型必须使用官方提供的changeType专用API - 所有修改操作前建议先备份对应对象数据,避免操作失误导致数据丢失
内容的提问来源于stack exchange,提问作者Shubham Saurabh
相关产品推荐
相关产品推荐

