免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5384 | 回复: 0
打印 上一主题 下一主题

[原创]Oracle导入dmp文件的错误一例及解决 [复制链接]

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-12-31 13:44 |只看该作者 |倒序浏览
1。背景:
       2006年12月27日,某市公安局为解决某常住人口户籍二代证管理软件的年终统计工作慢的问题,
       通知技术维护部和开发部,开发部反馈需要将常口软件升级,即主要将几个主要的业务表进行分区处理。但是在升级时,发现ORACLE有错误提示  ORA-00439 “未启用的特性:Partitioning”。

   检查v$version视图,发现版本是Oracle 9i Release 9.2.0.1.0 - 64 bit Production,的确不支持分区表特性。远程连接到其他支持此特性的业务库,其版本是 Oracle 9i Enterprise Edition Release 9.2.0.1.0 - 64 bit Production。由此,需要进行全库逻辑导出、所有数据文件/口令文件/控制文件/pfile/spfile/.profile等文件的冷备份、Oracle版本升级、恢复数据或者全库逻辑导入的工作。
   

2。环境:
   IBM P670/ Oracle9i Release 9.2.0.1.0 64 bit / 实例hz2004
         
3。问题:
       在进行常规的逻辑全库导出之后,进行测试导入时,当只是导入一个业务表hjls_hjywlsb户籍业务流水表以后,启用主键约束时,报错:
   
       IMP-00017: following statement failed with ORACLE error 603:
        "CREATE UNIQUE INDEX "PK_HJLS_HJYWLSB" ON "HJLS_HJYWLSB" ("HJYWID") PCTFRE"
        "E 10 INITRANS 2 MAXTRANS 255 STORAGE(INITIAL 65536 FREELISTS 1 FREELIST GRO"
        "UPS 1) TABLESPACE "HZ2004_IDX" LOGGING"
       IMP-00003: ORACLE error 603 encountered
       ORA-00603: ORACLE server session terminated by fatal error
       IMP-00017: FOLLOWING statement failed with ORACLE error 3114:
        "BEGIN DBMS_STATS.SET_INDEX_STATS(NULL,'"PK_HJLS_HJYWLSB"',NULL,NULL,NULL,1"
        "1537030,15508,11537030,1,1,32209,2,0); END;"
       IMP-00003: ORACLE error 3114 encountered
       ORA-03114: not connected to ORACLE
       IMP-00000: Import terminated unsuccessfully
      
4。分析:
        在网络上查询相关问题时,没有看到确切的解决方法,只有一条:“重新建立临时表空间,然后将此表空间划归此用户使用。”

        然后查询 alerthz2004.log 文件,看到很多类似如下的相关错误:
        
       ORA-01114: IO error writing block to file 201 (block #556)
       ORA-27063: skgfospo: number of bytges read/written is incorrect
       IBM AIX RISC System/6000 Error: 28: No space left on device
       Additional information: -1
       Additional information: 229376
      
       然后以sys用户的sysdba权限登录报错无法写入审计文件,由此怀疑是否 oracle 系统文件所在的文件系统空间或者inode已满造成此问题。然后运行此命令查看此文件系统:
      
       df -m | grep oracle
       Filesystem   MB blocks Free  %Used  Iused   %Iused  Mounted on
       /dev/lv01    8000.00   2.00  100%   67361   7%      /oracle
      
      
      
5。解决:
       检查的确是 /oracle 空间已满,原来在此空间下有两个业务系统的各自两个实例的相关文件,主要是背景进程文件、用户进程文件、联机日志、系统安装默认的回滚空间文件、临时空间文件。
       经检查后删除全部trace文件后才空出大约10M空间,再检查回滚和临时空间文件,发现都使用了自动扩展属性,怀疑是此影响到导入的主键索引建立。
      
       将临时表空间自动扩展和回滚自动扩展属性去除,比如:
       ALTER DATABASE TEMPFILE '/oracle/app/oracle/oradata/hz2004/temp01.dbf' AUTOEXTEND OFF;
      
       之后清除已导入的表,重新导入,没有出现类似错误,查看临时表空间和回滚空间,都已经使用了我手动增加在存储上的相关数据文件;问题解决。
      
      
6。结论:
       当出现问题时,一定要结合当前的工作查看相关的报警日志再仔细分析Oracle的出错提示,必要时还要查看相关的trace文件,才能圆满的解决问题。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP