生产环境备份方式更换为expdp,其中一个环境在进行导入测试的时候,导入报大量的创建警告,进行编译的时候,会报错
PLS-00753: malformed or corrupted wrapped unit ---包装的单元格式错误或已损坏
第一反应就是重建,查询到重建语句,拿过来后再次尝试仍然不行。
官网上对此报错的解释
Cause: The format of the wrapped unit being compiled is not understood by the compiler. This may be because the unit was edited or modified after it was wrapped.
Action: Rewrap the unit.
经大神指导知道这是oracle 11.2.0.4版本的bug,需要打补丁解决。信息贴上:
1. 准备内容:
补丁包名称:p26574738_112040_Linux-x86-64.zip
执行之前进行备份
Take backup of $SRCHOME/src/server/datapump/ddl/prvtmeta.sql
Take backup of catmeta.sql.
2. Installation
关闭数据库与监听
unzip -q p26574738_112040_Linux-x86-64.zip
Set your current directory to the directory where the patch is located and then run the OPatch utility by entering the following commands:
$ cd <PATCH_TOP_DIR>/26574738
$ opatch apply
Verify whether the patch has been successfully installed by running the following command:
$ opatch lsinventory
Start the services from the Oracle home.
3. 安装后
For each database instance running on the Oracle home being patched, connect to the database using SQL*Plus. Connect as SYSDBA and run the below script
as follows:
$ sqlplus /nolog
SQL> CONNECT / AS SYSDBA
SQL> @?/sqlpatch/26574738/postinstall.sql
Check the output for any errors.
安装之后登录数据库,执行
execute dbms_metadata_util.load_stylesheets;
否则会报
ORA-39006: internal error
ORA-39213:Metadata processing is not available