现在有一个Oracle901的数据库服务器,我把它的数据导出来的时候,在导出的过程中,是完全正常的。但是,我在把它导入的时候,在最后的一个表,停留的时间特别长,CPU使用狂增,内存猛涨,整个机器好象死了一样,动弹不得。一直停了几十分钟,也没有导进去。需要说明的是,我的机器的P41.7G的,内存500M。请问各位高人,有没有人见过这个问题,该如何解决?不胜感激!! 

解决方案 »

  1.   

    select count(*) from '最后的一个表'
    是不是记录太多了?
      

  2.   

    导入的时候有没有加参数 log=imp_log.log? 如果写了这个参数,
     看一下日志. buffer参数是多大? 回滚段是多大?
      

  3.   

    默认是多大? 导入的时候,如果回滚段空间不够的话,会出现问题的. 导入的时候,有没有其他用户对最后一个表进行操作 ?
     导入的时候,最好加上参数commit=y,以确认每一步的操作
     表结构是否正常,用alter table tablename validate structure检查
     一下。 BTW: 一些相关的信息你没有提供,很难找到真正的问题所在的.
      

  4.   

    你要自己IMP的原理,其实数据库还是在正常操作的,
    因为导完表最后是编译存储过程之类的。只能说数据库参数你
    没有配制好。
      

  5.   

    导进的时候加了参数full=y了吗?
    如果加了这个参数,那么你原来库里有的表将不会被导进去
    你最好是将日志文件参数加上,再进行一次操作,看日志里的提示是什么?先试试
      

  6.   

    emp system/manager@orcl file=[path] log=[path] full=y
    emp system/manager@orcl owner=用户
    imp与之相对应的
    检查检查语法吧,55条数据,不可能那么长时间,还有其他的原因,语法的话可能性比较小,看看你的实际环境
      

  7.   

    已经解决啦。谢谢各位!!!!!
    是存贮过程的原因,因为我把存贮过程加密了,但是这样的加密文件可能是比较大,所以在ORACLE901的情况下就会出现这样的问题,这可能是ORACLE901的一个BUG。
    在ORACLE9。2下就不出现这个问题。
    我现在把存贮过程不加密导出,就不会出现这样的问题了。