应同事和BOSS要求 从生产库导全部数据到内部测试库,做模拟环境!
数据库是ORACLE 11G 11.2.0.1.0
EXP IMP EXPDP IMPDP 对于ME 来说 EASY! 实际上天晓得,也许是分分钟钟的事情,实际上呢?
导出的DMP 非压缩状态是4G ,使用expdp compress=data_only 后是997MB
然后通告2M光纤转移到其他机房中,耗费2个小时。然后从该机房拖到网管电脑上 共享100MB 时速100KB/S。
然后同事通告RTX CC 在下。 耗费20分钟,然后另存F盘,再WINRAR ,然后通过 SSH SECURE FILE TRANSFER 传到测试库上。
[oracle@node2 ~]$ impdp shark/sharkDIRECTORY=dir_dp DUMPFILE=shark.dmp SCHEMAS=shark logfile=imp_shark.log
Import: Release 11.2.0.1.0 - Production on Wed Feb 12 15:38:22 2014
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
UDI-00018: Data Pump client is incompatible with database version 11.2.0.1.0
痛苦的经历开始了!
先怀疑是否带了compress命令导致的, 然后再轮一边,下载1.4G的DMP,还是导不进!
群人说是什么版本不兼容,可生产和测试都是11G 11.2.0.1.0 EXPDP IMPDP都是服务器自带的
又说:show parameter compatible 两边都看一下,是否一致? 结果都一致,不过是11.2.0.0.0.
为此使用EXPDP 带VERSION=11.2.0.0.0 。。。。 不过 我不能那么傻 再导出一下,再说还要麻烦网络同事呢!所以这次导出个小账户下的SCHEMAS 100KB大小的DMP
可还是导不进,老说版本兼容!!
有人说什么 dbms_metadata_util.load_stylesheets、执行下! 结果执行报错!
百思不得其解。 impdp版本跟数据库版本是一致的,为啥它说不一致呢? 纳尼纳尼???
有人建议DMP文件 在源服务器上也就是生产服务器上能否导回去? 这个不好搞!!他继续建议可否导入其他数据库上看看是否有问题?
我想了想下,在测试库把原有上面的小账户导出来再导进去,看下问题再哪里?
结果 expdp shark/shark schemas=lotbb directrory=dir_dp dumpfile=lotbb.dmp
UDI-00018: Data Pump client is incompatible with database version 11.2.0.1.0
看来这个应该是测试库EXPDP IMPDP工具自身问题!
回想下自己可没有对数据库打补钉。不可能造成数据库版本升级。查看测试库的备用数据库,也是无法导进去。
难道自己做的系统模板的问题 redhat linux 64 5.3 少装了些啥?
启动模板数据库 DBCA安装数据库 折腾了1个小时 后EXPDP 结果成功了!
那么问题缩小在EXPDP工具上
GOOGLE 下 关键字 EXPDP 包。
1. Catproc.sql
SQL >@ $ORACLE_HOME/rdbms/admin/catproc.sql
2. 如果需要可以执行如下脚本编译无效的对象
SQL >@ $ORACLE_HOME/rdbms/admin/utlrp.sql
我是11G 就执行后面两句SQL就好了! 不过这两个SQL可执行太久了大约有1个半小时!!
执行完了后 天灵灵地灵灵 佛主保佑 按回车键!!
其他版本:
本文适用于OracleDatabase - Enterprise Edition - Version 10.1.0.2 to 11.2.0.3
在很多不同的场景下都可能需要重载 DATAPUMP实用工具,比如数据库出现hang机、内部错误、数据字典不兼容等与DataPump 初始化阶段有关的所有问题。
在某些情况下,DataPump 实用工具可能会损坏,我们需要重建DataPump 实用工具来解决一些内部损坏。要执行此操作,可以按照下面给出的脚本来进行:
注意: 以 sysdba 用户执行如下脚本:
SQL> connect / as sysdba
对于 Oracle version 10.1 版本:
1. Catdp.sql 负责安装 DataPump 工具的所有组件,包括之前单独安装的 Metadata API。 默认情况下, catproc.sql 调用此脚本。
SQL >@$ORACLE_HOME/rdbms/admin/catdp.sql
2. dbmspump.sql 用于创建 DataPump 所用的 DBMS 过程。
SQL >@$ORACLE_HOME/rdbms/admin/dbmspump.sql
对于 Oracle version 10.2 版本:
1. Catdph.sql 用于重新安装 DataPump 类型和视图
SQL >@ $ORACLE_HOME/rdbms/admin/catdph.sql
注意: 如果在安装了 XDB的情况下,则还需要运行 "catmetx.sql" 脚本。
可以使用如下脚本来验证是否已安装 XDB:
SQL> select substr(comp_name,1,30) comp_name,
substr(comp_id,1,10) comp_id,substr(version,1,12) version,status from dba_registry;
如果已安装XDB,则会按照如下示例输出
Oracle XML Database XDB -version- VALID
2. prvtdtde.plb 用于重新安装 tde_library 包
SQL>@$ORACLE_HOME/rdbms/admin/prvtdtde.plb
3. Catdpb.sql 用于重新安装 DataPump 包
SQL >@$ORACLE_HOME/rdbms/admin/catdpb.sql
4.Dbmspump.sql 用于重新安装 DBMS DataPump 对象
SQL >@$ORACLE_HOME/rdbms/admin/dbmspump.sql
5. 如果需要可以执行如下脚本编译无效的对象
SQL >@ $ORACLE_HOME/rdbms/admin/utlrp.sql