RDBMS 19.8.0.1 + solaris X86 64
在测试xtts迁移的时候,最后一步导入元数据,出现错误。
-bash-4.4$ impdp "'/ as sysdba'" dumpfile= xttdump.dmp directory=TMP_DMP transport_datafiles='/u01/app/oracle/oradata/TEST/XTTS_2.dbf'
Import: Release 19.0.0.0.0 - Production on Wed Mar 24 03:35:43 2021
Version 19.8.1.0.0
Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.
Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
ORA-39006: internal error
参考文档:
ORA-39006: Internal Error running expdp or DBMS_DATAPUMP export (Doc ID 1594804.1)
ORA-39006: "inner error Exception" Performing DataPump Export (EXPDP) (Doc ID 402053.1)
SYS.KUPW$WORKER Invalid and ORA-00942 when Executing PRVTBPW.PLB (Doc ID 2668886.1)
DataPump Export Or Import Fails With ORA-04063: Package Body "SYS.KUPW$WORKER" Has Errors (Doc ID 1620162.1) --
Package SYS.KUPW$WORKER Became Invalid After Upgrading To 11.1.0.7 (Doc ID 742560.1)
主要参考的文档:还是1620162.1。前面几个文档,主要查询到了package是invalid状态的。使用后面的1620162.1文档进行重新package。这个主要原因,可能是因为之前打psu的时候出现的一些问题,没有处理,比如打psu后出现告警,或者打完psu没有重新编译失效对象。
之前的package状态,谁用alert命令,重新编译该package,还是报错。只有重建了。
STATUS OBJECT_ID OBJECT_TYPE
------- ---------- -----------------------
OWNER.OBJECT
--------------------------------------------------------------------------------
INVALID 19017 PACKAGE BODY
SYS.KUPW$WORKER
1 row selected.
SYS@test>
并且,在编译该package的时候,出现以下错误
SQL> select status, object_id, object_type, owner||'.'||object_name "OWNER.OBJECT"
2 from dba_objects
3 where object_name like 'KUPW$WORKER'
4 ;
STATUS OBJECT_ID OBJECT_TYPE OWNER.OBJECT
--------- ------------ -------------------- --------------------------------------------------
VALID 10859 PACKAGE SYS.KUPW$WORKER
INVALID 12013 PACKAGE BODY SYS.KUPW$WORKER
SQL> alter package SYS.KUPW$WORKER compile body;
Warning: Package Body altered with compilation errors.
SQL> show errors package body SYS.KUPW$WORKER;
Errors for PACKAGE BODY SYS.KUPW$WORKER:
LINE/COL ERROR
-------- -----------------------------------------------------------------
0/0 PLS-00753: malformed or corrupted wrapped unit
重建该package
shutdown immediate
startup migrate
@?\rdbms\admin\catproc.sql
@?\rdbms\admin\utlrp.sql
修正后的package状态。
SYS@test>
select status, object_id, object_type, owner||'.'||object_name "OWNER.OBJECT"
from dba_objects
where object_name like 'KUPW$WORKER'
SYS@test>select status, object_id, object_type, owner||'.'||object_name "OWNER.OBJECT"
2 from dba_objects
3 where object_name like 'KUPW$WORKER';
STATUS OBJECT_ID OBJECT_TYPE
------- ---------- -----------------------
OWNER.OBJECT
--------------------------------------------------------------------------------
VALID 17016 PACKAGE
SYS.KUPW$WORKER
VALID 19017 PACKAGE BODY
SYS.KUPW$WORKER
2 rows selected.
SYS@test>
重新导入,虽然这里还是报错误,主要原因是两个数据库的字符集问题。(到这里,这个问题已经解决了)
-bash-4.4$ impdp "'/ as sysdba'" dumpfile= xttdump.dmp directory=TMP_DMP transport_datafiles='/u01/app/oracle/oradata/TEST/XTTS_2.dbf'
Import: Release 19.0.0.0.0 - Production on Wed Mar 24 03:35:43 2021
Version 19.8.1.0.0
Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.
Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
ORA-39006: internal error
-bash-4.4$ impdp "'/ as sysdba'" dumpfile= xttdump.dmp directory=TMP_DMP transport_datafiles='/u01/app/oracle/oradata/TEST/XTTS_2.dbf'
Import: Release 19.0.0.0.0 - Production on Wed Mar 24 04:02:20 2021
Version 19.8.1.0.0
Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.
Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Master table "SYS"."SYS_IMPORT_TRANSPORTABLE_01" successfully loaded/unloaded
import done in US7ASCII character set and UTF8 NCHAR character set
export done in AL32UTF8 character set and UTF8 NCHAR character set
Warning: possible data loss in character set conversions
Starting "SYS"."SYS_IMPORT_TRANSPORTABLE_01": "/******** AS SYSDBA" dumpfile=xttdump.dmp directory=TMP_DMP transport_datafiles=/u01/app/oracle/oradata/TEST/XTTS_2.dbf
Processing object type TRANSPORTABLE_EXPORT/PLUGTS_BLK
ORA-39123: Data Pump transportable tablespace job aborted
ORA-29345: cannot plug a tablespace into a database using an incompatible character set
Job "SYS"."SYS_IMPORT_TRANSPORTABLE_01" stopped due to fatal error at Wed Mar 24 04:02:34 2021 elapsed 0 00:00:09
-bash-4.4$
END