用imp命令导入时,提示“不是有效的导出文件,头部验证失败。”
用的.dmp文件就是从数据库中导出的。
请问是什么原因?如何处理。多谢。

解决方案 »

  1.   

    不能用低版本导出,高版本导入,反之则行!-- 用高版本的(Inport,Export)工具 exp 出来,然后用高版本的 imp 导入就OK啦!
      

  2.   

    应该是你的dmp 较新,而你的imp 环境版本较低.如果不能重新得到低版本导出的dmp,那就使用个高版本的imp 来导入吧,可以远程导入。
      

  3.   

    看看两个库的版本,用低版本的那个库的exp/imp导数据就行
      

  4.   

    在导入时,注意看你导出的时候用的是EXP工具还是EXPDP,如果是EXPDP工具,则导出时必须有directory项,同样导入时用对应的导入工具(IMP或IMPDP),IMPDP导入时也要有directory如:impdp scott/test directory=dump_dir dumpfile=‘test.dmp’ full=Y/***************************使用EXPDP工具***********************************/
    使用EXPDP工具时,其转储文件只能被存放在DIRECTORY对象对应的OS目录中,而不能直接指定转储文件所在的OS目录。因此,使用EXPDP工具时,必须首先建立DIRECTORY对象。并且需要为数据库用户授予使用DIRECTORY对象权限。    CREATE DIRECTORY dump_dir AS 'D:DUMP';
        GRANT READ, WIRTE ON DIRECTORY dump_dir TO scott;    1,导出表    Expdp scott/tiger DIRECTORY=dump_dir DUMPFILE=tab.dmp TABLES=dept,emp     2,导出方案    Expdp scott/tiger DIRECTORY=dump_dir DUMPFILE=schema.dmp SCHEMAS=system,scott     3.导出表空间    Expdp system/manager DIRECTORY=dump_dir DUMPFILE=tablespace.dmp TABLESPACES=user01,user02     4,导出数据库    Expdp system/manager DIRECTORY=dump_dir DUMPFILE=full.dmp FULL=Y