昨天使用impdp迁移数据库的时候遇到这个报错:
ORA-39083:Object type TYPE failed to create with error
发现type类型的都没有创建成功。
查询后发现主要原因为OID重复。
可以使用impdp中的transform=oid:n 解决该问题。
对应解释如下:
TRANSFORM
Metadata transform to apply to applicable objects.
Valid transform keywords: SEGMENT_ATTRIBUTES, STORAGE OID, and PCTSPACE.
OID - If the value is specified as n, the assignment of the exported OID during the
creation of object tables and types is inhibited. Instead, a new OID is assigned.
This can be useful for cloning schemas, but does not affect referenced objects. The
default value is y.
transform默认是Y,如果改成N,那么导入的时候会把各个对象重新赋予新的OID。仅为数据库标识,修改不影响业务使用。
由于昨天使用的是impdp network_link不落盘做的迁移。只能重新导出一下对应的type类型,然后重新导入。
涉及语句如下:
expdp 'schema_name/"password"'@10.18.32.122:1521/zactstdb directory=DIR_BACKUP dumpfile=ts170201_type_20190724.dmp logfile=ts170201_type_20190724.log include=type,type_spec
impdp schema_name/password@10.18.192.122:1521/dcp directory=D_OUTPUT dumpfile=ts170201_type_20190724.dmp table_exists_action=replace REMAP_SCHEMA=ts170201:ZASERVER REMAP_TABLESPACE=USER:TS_CL transform=oid:n