我用的是ORACLE 10G,现在想把公司服务器上的数据库备份文件(.dmp)导入到本机的数据库中,整个数据库有1.4G,其中有个历史数据表数据量很大,我用IMP命令导入,每次导到这个历史表的时候电脑就进入假死状态,过了一个小时左右提示失败,错误信息如下:
IMP-00006:无法分配大小为36的内存我在网上搜了一下基本找不到相关的信息,麻烦高手解答!

解决方案 »

  1.   

    Error:  IMP 6
    Text:   failed to allocate memory of size %lu
    -------------------------------------------------------------------------------
    Cause:  Failed to allocate memory.
    Action: Decrease Import buffer size so that less memory is used or
            increase the runtime memory size for Import.樓主,你用命令是imp還是impdp?
      

  2.   

    我用的是imp,网上有的说让把输入缓冲区改小,我改成最小值8192了还是不行
      

  3.   

    10g建議用impdp和expdp,你試一下用expdp從新導出,再用impdp導入
      

  4.   

    如果数据量大,导慢一点是正常的。还有你的1.4g 是指dmp文件还是整个数据库大小
    如果是数据库大小1.4g 那是很小了,如果是dmp文件 1.4g那也不算大啊 ,你的盘有足够的空间吗? 
    表空间是否有设置自动扩展?
      

  5.   

    我的测试机4G内存,硬盘足够大,DMP文件近4G,oracle10.2,imp后数据文件将近10个G。
    如果这个表不是很重要,
    就用imp / talbes=(XX) rows=n file=1.dmp先导入空数据表好了。
    在用imp / rows=y full=y file=1.dmp分步导入。
      

  6.   

    介个我也不知道 学习ing..
      

  7.   


    1. Oracle 导出导入模式需要对应。 如按用户导出,就需要按用到导入。 这个不知道楼主的导出导入语句有没有问题。ORACLE 数据库逻辑备份 简单 EXP/IMP 
    http://blog.csdn.net/tianlesoftware/archive/2009/10/24/4718366.aspx2. 导入之前要保证表空间要一致,要有足够的表空间。3. 如果以上2个都没有问题,可以尝试把索引和触发器停掉后在导出,等待导入之后在重建索引和触发器。 这些可能对导入有影响。  ------------------------------------------------------------------------------ 
    Blog: http://blog.csdn.net/tianlesoftware 
    网上资源: http://tianlesoftware.download.csdn.net 
    相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx 
    DBA1 群:62697716(满); DBA2 群:62697977(满)
    DBA3 群:63306533;     聊天 群:40132017
    --加群需要在备注说明SGA的组成部分,否则拒绝申请
      

  8.   

    同意楼上的意见,就是1.4gdmp文件,也不是很大
      

  9.   

    buffer size 是可以计算出来的!
      

  10.   

    先把要导入的表空间的大小先改好,比如导入4G的DMP文件一般需要6G的表空间大小。
      

  11.   

    把 buffer加大点试一试 
      

  12.   

    这个要增大shared_pool改大一点,再导入.