K3Cloud关于Oracle集成的那些事
金蝶云社区-Lee_Pitt
Lee_Pitt
1人赞赏了该文章 5,759次浏览 未经作者许可,禁止转载编辑于2016年04月05日 19:40:20
summary-icon摘要由AI智能服务提供

Oracle Cloud账套备份还原需注意使用expdp/impdp指令组,因xmltype字段在exp/imp下无法正常备份。需检查备份还原日志以防数据丢失,常见错误如T_META_OBJECTTYPE表导入失败因xmltype和字符集不匹配,或Oracle内部错误需检查版本。对象类型错误可能因重复ID,可通过impdp的transform=OID:n参数解决。

Oracle的Cloud账套备份和还原注意事项:
1、Oracle的Cloud账套备份和还原请使用“expdp/impdp指令组”(非exp/imp)。原因:Cloud系统中有使用Oracle的xmltype类型字段,改类型字段在一般引出引入(exp/imp)的指令下是无法正常备份还原数据的。
2、Oracle的Cloud账套备份和还原过程中产生的引出和引入日志需检查,避免这个过程存在失败动作,导致数据丢失。比如:关键表T_META_OBJECTTYP(元数据表)

Oracle的账套,经过备份、还原后,经常出现K3Cloud登陆失败的各种情况

失败截图一
关键词:标识为"SEC_PasswordPolicy"的业务对象不存在,或者被删除。 (cloud管理中心新创建业务账套也易出现相同的错误)


通常可以从备份、或还原的日志下情况看分析:日志文件通常是跟dmp文件在一个目录下的
日志错误样例分析1、
KUP-11007: conversion error loading table "KG"."T_META_OBJECTTYPE"
ORA-01403: no data found
ORA-31693: Table data object "KG"."T_META_OBJECTTYPE" failed to load/unload and is being skipped due to error:
ORA-29913: error in executing ODCIEXTTABLEFETCH callout
ORA-26062: Can not continue from previous errors.

主要原因:T_META_OBJECTTYPE 无法导入或导出,是因为该表存在 xmltype子段,数据库字符集不是默认的字符集(AL32UTF8)就会出现错误
关于数据库字符标准可以 参考(K3Cloud集成Oracle数据库注意事项
(1 NLS_NCHAR_CHARACTERSET AL16UTF16 (国家字符集)
2 NLS_CHARACTERSET AL32UTF8 (数据库字符集))

日志错误样例分析2、
ORA-31693: Table data object "CRM2015"."T_META_OBJECTTYPE" failed to load/unload and is being skipped due to error:
ORA-29913: error in executing ODCIEXTTABLEPOPULATE callout
ORA-00600: internal error code, arguments: [qmcxeWSNQ1], [], [], [], [], [], [], [], [], [], [], []

主要原因,是Oracle内部错误,可以Oracle版本上查看,版本要求参考(K3Cloud集成Oracle数据库注意事项
11g 要求11.2.0.4.0 (11gR2)
12c 要求12.1.0.2.0

失败截图二
关键词:oci-22303:type ""."UDT-NVARCHARTABLE" not found

出现如下错误,可以翻看数据库导入日志

日志错误样例分析1、
CREATE EDITIONABLE TYPE "KDUSER3"."UDT_OBJ_IDS" OID '9232BC3AE1AF4957A92353DCBCA7EB37' is object( FID varchar2(32767))
ORA-39083: 对象类型 TYPE:"KDUSER3"."UDT_INTTABLE" 创建失败, 出现错误:
ORA-02304: 无效的对象标识符文字
原因:同一个账套在原来的数据库实例还原或是之前已经还原过一次,导致对象在不同用户上出现相同Id而不能创建的问题。
解决:导入指令(impdp)可以加入参数(transform=OID:n)