网络维护网站建设培训,多导航织梦网站模板下载地址,化妆品网站建设思路,信用中国门户网站建设方案其实问题的引出是由于出现第一篇文章中描述的问题#xff0c;不过随着问题的深入研究#xff0c;挖掘出了一些隐藏的很深的问题#xff0c;不过问题的研究也慢慢脱离了原本的问题。在解决了表统计信息锁定的问题后#xff0c;在回过头看看导致第一篇文章中错误的具体原因。…其实问题的引出是由于出现第一篇文章中描述的问题不过随着问题的深入研究挖掘出了一些隐藏的很深的问题不过问题的研究也慢慢脱离了原本的问题。在解决了表统计信息锁定的问题后在回过头看看导致第一篇文章中错误的具体原因。bash-2.03$ impdp test/test directoryd_test dumpfilezhejiang_order.dp logfilezhejiang_order.log remap_schemazhejiang:test includetable/statisticsImport: Release 10.2.0.3.0 - 64bit Production on星期二, 20 4月, 2010 18:42:01Copyright (c) 2003, 2005, Oracle. All rights reserved.连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit ProductionWith the Partitioning, Real Application Clusters, OLAP and Data Mining options已成功加载/卸载了主表TEST.SYS_IMPORT_FULL_01启动TEST.SYS_IMPORT_FULL_01: test/******** directoryd_test dumpfilezhejiang_order.dp logfilezhejiang_order.log remap_schemazhejiang:test includetable/statistics处理对象类型TABLE_EXPORT/TABLE/TABLE_DATA处理对象类型TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICSORA-39083:对象类型TABLE_STATISTICS创建失败,出现错误:ORA-06550:第12行,第17列:PL/SQL: ORA-00917:缺失逗号ORA-06550:第4行,第115列:PL/SQL: SQL Statement ignoredORA-06550:第20行,第17列:PL/SQL: ORA-00917:缺失逗号ORA-06550:第12行,第161列:PL/SQL: SQL Statement ignoredORA-06550:第28行,第17列:PL/SQL: ORA-00917:缺失逗号ORA-06550:第20行,第161列:PL/SQL: SQL Statement ignoredORA-06550:第36行,第17列:PL/SQL: ORA-00917:缺失逗号ORA-06550:第28行,第1作业TEST.SYS_IMPORT_FULL_01已经完成,但是有1个错误(于18:42:13完成)显然第一篇文章出现的错误和上面几篇文章描述的错误还是有差距的怀疑导致问题的原因出在DMP文件上。下面通过TRACE的方式检查导致问题产生的具体原因。设置TRACE的方式有很多种但是对于这种执行很快就结束的错误最好的办法是通过登陆触发器。不过使用登陆触发器仍然有点复杂其实了解IMPDP工作特性后可以方便的利用DBMS_MONITOR包来设置TRACE。在刚才执行导入的时候在另外的会话检查数据泵后台进程对应的MODULE和SERVICE_NAME信息SQL SELECT SID, MODULE, ACTION, SERVICE_NAME2 FROM V$SESSION3 WHERE USERNAME TEST;SID MODULE ACTION SERVICE_NAME---------- ------------------------------ ------------------------------ --------------------300 udiracnode1 (TNS V1-V3) SYS$USERSSQL SELECT SID, MODULE, ACTION, SERVICE_NAME2 FROM V$SESSION3 WHERE USERNAME TEST;SID MODULE ACTION SERVICE_NAME---------- ------------------------------ ------------------------------ --------------------292 Data Pump Master SYS_IMPORT_FULL_01 SYS$USERS300 udiracnode1 (TNS V1-V3) SYS$USERSSQL SELECT SID, MODULE, ACTION, SERVICE_NAME2 FROM V$SESSION3 WHERE USERNAME TEST;SID MODULE ACTION SERVICE_NAME---------- ------------------------------ ------------------------------ --------------------283 udiracnode1 (TNS V1-V3) SYS$USERS292 Data Pump Master SYS_IMPORT_FULL_01 SYS$USERS300 udiracnode1 (TNS V1-V3) SYS$USERS下面打开MODULE为Data Pump Master且SERVICE为SYS$USERS的会话的TRACESQL BEGIN2 DBMS_MONITOR.SERV_MOD_ACT_TRACE_ENABLE(3 SYS$USERS,4 Data Pump Worker,5 SYS_IMPORT_FULL_01,6 TRUE,7 TRUE);8 END;9 /PL/SQL过程已成功完成。再次运行导入TRACE对应的信息很简单bash-2.03$ more testrac1_ora_841.trc/data/oracle/admin/testrac/udump/testrac1_ora_841.trcOracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit ProductionWith the Partitioning, Real Application Clusters, OLAP and Data Mining optionsORACLE_HOME /data/oracle/product/10.2/databaseSystem name: SunOSNode name: racnode1Release: 5.8Version: Generic_117350-46Machine: sun4uInstance name: testrac1Redo thread mounted by this instance: 1Oracle process number: 33Unix process pid: 841, image: oracleracnode1 (TNS V1-V3)*** SERVICE NAME:(SYS$USERS) 2010-04-20 19:05:34.808*** SESSION ID:(288.16791) 2010-04-20 19:05:34.808kswscrs: deleted entry : svcid 13, count13kswscrs: deleted entry : svcid 14, count14这显然不是我们要寻找的出错的导入会话打开MODULE为udiracnode1 (TNS V1-V3)的会话对应的TRACESQL BEGIN2 DBMS_MONITOR.SERV_MOD_ACT_TRACE_ENABLE(3 SYS$USERS,4 udiracnode1 (TNS V1-V3),5 DBMS_MONITOR.ALL_ACTIONS,6 TRUE,7 TRUE);8 END;9 /PL/SQL过程已成功完成。运行导入得到了TRACE信息kswscrs: deleted entry : svcid 13, count13kswscrs: deleted entry : svcid 14, count14SKGXPSEGRCV: MESSAGE TRUNCATED user data 48 bytes payload 2024 bytesSKGXPSEGRCV: trucated message buffer data skgxpmsg meta. data header 0xffffffff7fff4108 len 48 bytesSKGXPLOSTACK: message truncation expectedSKGXPLOSTACK: data sent to port with no buffers queued fromSKGXPGPID ffffffff7fff4028 Internet address 10.0.0.3 UDP port number 56083SKGXPLOSTACK: sent seq 32763 expecting 32764SKGXPLOSTACK: lost ack detected retransmit ack显然信息仍然不够于是直接打开所有SERVICE为SYS$USERS的会话的TRACESQL BEGIN2 DBMS_MONITOR.SERV_MOD_ACT_TRACE_DISABLE(3 SYS$USERS,4 Data Pump Worker,5 SYS_IMPORT_FULL_01);6 END;7 /PL/SQL过程已成功完成。SQL BEGIN2 DBMS_MONITOR.SERV_MOD_ACT_TRACE_DISABLE(3 SYS$USERS,4 udiracnode1 (TNS V1-V3),5 DBMS_MONITOR.ALL_ACTIONS);6 END;7 /PL/SQL过程已成功完成。SQL BEGIN2 DBMS_MONITOR.SERV_MOD_ACT_TRACE_ENABLE(3 SYS$USERS,4 DBMS_MONITOR.ALL_MODULES,5 DBMS_MONITOR.ALL_ACTIONS,6 TRUE,7 TRUE);8 END;9 /PL/SQL过程已成功完成。检查生成的TRACE文件BINDS #39:kkscoacdBind#0acdty02 mxl22(21) mxlc00 mal00 scl00 pre00acflg13 fl2206001 frm00 csi00 siz24 ff0kxsbbbfpffffffff7b337e78 bln22 avl02 flg09value45EXEC #39:c0,e450,p0,cr0,cu0,mis0,r0,dep1,og1,tim4903541916613ERROR #39:err39096 tim502122692WAIT #9: namSQL*Net message to client ela 3 driver id1650815232 #bytes1 p30 obj#-1 tim4903541917005EXEC #9:c0,e2679,p0,cr0,cu0,mis0,r1,dep0,og1,tim4903541917063WAIT #9: namSQL*Net message from client ela 694 driver id1650815232 #bytes1 p30 obj#-1 tim4903541917910XCTEND rlbk0, rd_only1在文件的最后部分可以看到Oracle运行CURSOR #39是出现了错误。这个错误信息是ORA-39096ORA-39096: invalid input value string for parameter stringCause: A NULL or invalid value was supplied for the parameter.Action: Correct the input value and try the call again.配合这个错误信息和IMPDP输出参数怀疑是Oracle在执行PL/SQL代码的时候由于输入参数的错误导致了问题的产生。下面看看CURSOR #39对应的SQLPARSING IN CURSOR #39 len46 dep1 uid0 ct47 lid0 tim4903540014137 hv2056630971 aded715768BEGIN sys.kupc$que_int.detach_queues(:1); END;END OF STMTPARSE #39:c0,e135,p0,cr0,cu0,mis0,r0,dep1,og1,tim4903540014127BINDS #39:kkscoacdBind#0acdty02 mxl22(21) mxlc00 mal00 scl00 pre00acflg13 fl2206001 frm00 csi00 siz24 ff0kxsbbbfpffffffff7b338128 bln22 avl02 flg09value45这个错误发生在detach_queue的过程中这个步骤应该是impdp结束工作后进行的收尾工作基本上可以确认impdp的错误不会引起什么严重的问题。