数据库环境为:rhel6.8 64bit oracle 11.2.0.3.11


凌晨1点起床,执行计划内的数据库操作。将几个大表在线重定义为分区表,以便于空间释放。在执行CAN_REDEF_TABLE是正常,但是在执行START_REDEF_TABLE时报错了,错误信息如下:

ORA-42008: 实例化重新定义时出错
ORA-22060: 参数 [] 是一个无效或未初始化的数值
ORA-06512: 在 "SYS.DBMS_SNAPSHOT_UTL", line 1613
ORA-06512: 在 line 1
ORA-06512: 在 "SYS.DBMS_REDEFINITION", line 56
ORA-06512: 在 "SYS.DBMS_REDEFINITION", line 1490
ORA-06512: 在 line 2


当时第一反应是难道表有问题,以前遇到过表上注释太长导致重定义报错的bug。我换了个表再次执行这些操作,在START_REDEF_TABLE时还是报错了。


没法了,情况紧急,先去百度搜索了一番,又去谷歌搜索了一番,mos也找了,毛都没找到一根,,,单独的ORA-42008,ORA-22060这两个错误多,但是连在一起的时候几乎没有。


不过网上搜索还是有点收获,借鉴了别人的排查错误的方法。有人用10046来跟踪session来发现报错,我也采用试试。


不过情况有变,别人的都是有明确的报错信息,但是在我的10046报告里面没有。。。没办法了,我根据这个报错信息ORA-06512: 在 "SYS.DBMS_SNAPSHOT_UTL", line 1613在10046去查找,找是哪儿执行了DBMS_SNAPSHOT_UTL。最后找到了这个地方sys.dbms_snapshot_utl.get_log_name,我将这个存储过程的参数补全,测试了下,报错就是ORA-22060,到此可以确定是dbms_snapshot_utl的问题了。但是在系统中没有看到任何失效对象,所以在数据库内部的这个包本身是没问题的。


最后的解决方法是经验,这个库以前遇到过dbms_stats运行报错的情况,说一个bug补丁不存在,http://blog.itpub.net/29822273/viewspace-2139924/。当时查过mos,说是因为数据库中的包与实际程序不匹配,比如打补丁后没有运行catbundle psu apply。因为这个库是从windows平台迁移至linux平台的,两个平台当时没有完全匹配的小版本,所以只能找了一个与windows版本最接近的linux版本来作为迁移的目标版本。然后升级完了也没运行catbundle psu apply。


由此想到的办法是重新安装这个包,oracle的安装某些包是有特定步骤的,我怕踩雷,到处搜索了一番,还是没找到重建dbms_snapshot_utl的方法。最后,时间越来越到约定的3点锁表时间了,心一横,直接用grep方法在admin里面去找,发现了两个脚本:

prvtsnap.plb:CREATE OR REPLACE PACKAGE BODY dbms_snapshot_utl wrapped
prvtsnps.plb:CREATE OR REPLACE PACKAGE dbms_snapshot_utl wrapped

一个是package,一个是package body。注意要先运行package脚本,再运行body脚本,否者会报错。

执行完了,在线重定义操作未报错了。


定于凌晨1点执行的在线重定义普通表为分区表的操作,一直延迟到了凌晨3点才正式开始。。。。。。


最后闲下来还是在mos找到了一篇相关文章,之前死活找不到。。。搜索还是一门技艺。。。


Bug 14657634 : DBMS_REDEFINITION.START_REDEF_TABLE ENDS WITH ORA-22060To Bottom



Bug Attributes

TypeB - DefectFixed in Product Version
Severity2 - Severe Loss of ServiceProduct Version11.2.0.3Status92 - Closed, Not a BugPlatform226 - Linux x86-64Created21-Sep-2012Platform VersionNO DATAUpdated17-Jan-2018Base BugN/ADatabase Version11.2.0.3Affects PlatformsGenericProduct SourceOracleKnowledge, Patches and Bugs related to this bug


Related Products

LineOracle Database ProductsFamilyOracle Database SuiteAreaOracle DatabaseProduct5 - Oracle Database - Enterprise Edition



Hdr:1465763411.2.0.3RDBMS11.2.0.3UNKNOWNPRODID-5PORTID-226ORA-22060Abstract:DBMS_REDEFINITION.START_REDEF_TABLEENDSWITHORA-22060----SAPcustomermessage729961-2012TetraPakPROBLEM:--------BEGINDBMS_REDEFINITION.START_REDEF_TABLE(UNAME=>'"SAPPB3"',ORIG_TABLE=>'"/BIC/B0001904000"',INT_TABLE=>'"/BIC/B0001904000#$"',OPTIONS_FLAG=>DBMS_REDEFINITION.CONS_USE_PK);END;ORA-42008:erroroccurredwhileinstantiatingtheredefinitionORA-22060:argument[]isaninvalidoruninitializednumberORA-6512:at"SYS.DBMS_SNAPSHOT_UTL",line1613ORA-6512:atline1ORA-6512:at"SYS.DBMS_REDEFINITION",line56ORA-6512:at"SYS.DBMS_REDEFINITION",line1490ORA-6512:atline1thisisconstantlyreproducableatcustomersystem.Table/BIC/B0001904000holds545columnsandwascompressedbymistakeTABLE_NAMECOMPRESSCOMPRESS_FOR--------------------------------------------------/BIC/B0001904000ENABLEDOLTPUsingonlinereorganisationitshouldbedecompressedagain.DIAGNOSTICANALYSIS:--------------------ExecutingthiscommanddirectlyinSQLPLUSusing"/assysdba"Itreproducestheerror.Createderrorstackwithaltersessionsetevents'22060tracenameerrorstacklevel4';gottheunderlyingsqlwichisfailing:-----ErrorStackDump-----ORA-22060:argument[]isaninvalidoruninitializednumber-----CurrentSQLStatementforthissession(sql_id=4jkx2nsqpz6rt)-----beginsys.dbms_snapshot_utl.get_log_name(:master,:mowner,:lognm,:chkpk,:status,:objid);end;instackpsdexsp()throwstheerrorPROCEDUREGET_LOG_NAMEArgumentNameTypeIn/OutDefault?-------------------------------------------------------------------MASTERVARCHAR2INMOWNERVARCHAR2INLOGNMVARCHAR2OUTCHKFLGBINARY_INTEGERINSTATUSBINARY_INTEGEROUTMASOBJIDNUMBEROUTbindsgiven:-----BindInfo(kkscoacd)-----Bind#0oacdty=01mxl=32(16)mxlc=00mal=00scl=00pre=00kxsbbbfp=7faea7caac22bln=32avl=16flg=09value="/BIC/B0001904000"Bind#1oacdty=01mxl=32(06)mxlc=00mal=00scl=00pre=00kxsbbbfp=7faea7caac00bln=32avl=06flg=09value="SAPPB3"Bind#2oacdty=01mxl=32(30)mxlc=00mal=00scl=00pre=00kxsbbbfp=7faea7caac46bln=30avl=00flg=09Bind#3oacdty=02mxl=22(22)mxlc=00mal=00scl=00pre=00kxsbbbfp=7faea7b86db8bln=22avl=02flg=05value=36Bind#4oacdty=02mxl=22(22)mxlc=00mal=00scl=00pre=00kxsbbbfp=7faea7b86dd0bln=22avl=00flg=01Bind#5oacdty=02mxl=22(22)mxlc=00mal=00scl=00pre=00kxsbbbfp=7faea7b86de8bln=22avl=00flg=01Interimtableiscreatedlikegiveninddl.sqlItsthesamestructureforsourcetable.checkingdatadictionorybyevent10827andfoundnoerror:altersessionsetevents'10827tracenamecontextforever,level1';SQL>setserveroutonSQL>EXECUTEdbms_registry_sys.validate_components;VPROC:CATALOGDBMS_REGISTRY_SYS.VALIDATE_CATALOG-+00000000:00:00.665670000VPROC:CATPROCDBMS_REGISTRY_SYS.VALIDATE_CATPROC-+00000000:00:00.030478000PL/SQLproceduresuccessfullycompleted.evenonlytwoobjectsareinvalid,whichareownedbySAPuser.OneisaVIEWotheraSYNONYM.recreatingprocedurewith:SQL>@?/rdbms/admin/prvtsnap.plbdoesnotfixtheerror.WORKAROUND:-----------usedatapumpforofflinereorganization.RELATEDBUGS:-------------REPRODUCIBILITY:----------------TESTCASE:----------STACKTRACE:------------skdstdst<-ksedst1<-ksedst<-dbkedDefDump<-ksedmp<-dbkdaKsdActDriver<-dbgdaExecuteAction<-dbgdaRunAction<-dbgdRunActions<-dbgdProcessEventAct<-ions<-dbgdChkEventKgErr<-dbkdChkEventRdbmsEr<-ksfpec<-dbgePostErrorKGE<-1129<-dbkePostKGE_kgsf<-kgeselv<-ksesecl0<-psdexsp<-rpiswu2<-psdextp<-pefccal<-pefcal<-pevm_FCAL<-pfrinstr_FCAL<-pfrrun_no_tool<-pfrrun<-plsql_run<-peicnt<-kkxexe<-opiexe<-opiodr<-rpidrus<-skgmstack<-rpiswu2<-rpidrv<-rpiexe<-kkzdgln<-kkzpgcr<-kkzpgcinfo<-kkzpcbk<-opikkzprs1<-opiSem<-opiprs<-kksParseChildCursor<-rpiswu2<-kksLoadChild<-kxsGetRuntimeLock<-kksfbc<-kkspsc0<-kksParseCursor<-opiosq0<-opiall0<-opikpr<-opiodr<-rpidrus<-skgmstack<-rpiswu2<-kprball<-kprbprs<-kkzparse<-kkzvsnqry<-kkzsval<-kkzcsn<-opiexe<-opiosq0<-opiall0<-opikpr<-opiodr<-rpidrus<-skgmstack<-rpiswu2<-kprball<-kkzucpmv<-kkzusord<-kkzisord<-spefcmpa<-spefmccallstd<-pextproc<-peftrusted<-psdexsp<-rpiswu2<-psdextp<-pefccal<-pefcal<-pevm_FCAL<-pfrinstr_FCAL<-pfrrun_no_tool<-pfrrun<-plsql_run<-peicnt<-kkxexe<-opiexe<-kpoal8<-opiodr<-ttcpip<-opitsk<-opiino<-opiodr<-opidrv<-sou2o<-opimai_real<-ssthrdmain<-main<-libc_start_main<-startSUPPORTINGINFORMATION:-----------------------filesuploaded:ddl.sql-forintermimtableSB3_ora_16396.zip-errorstacktrace24HOURCONTACTINFORMATIONFORP1BUGS:----------------------------------------DIAL-ININFORMATION:--------------------IMPACTDATE:------------patchescurrentlyinistalled:SAPBundlePatch11.2.0.3.2-201205->thisisRDBMSPSU#2seefileopatch_lsinventory.zipforcompletepatchlistseedba_registry_history.zipforupdatehistory============================================KeySymptoms/Summary/Rediscovery:ErrorsfromDBMS_REDEFINITION.START_REDEF_TABLE:ORA-42008:erroroccurredwhileinstantiatingtheredefinitionORA-22060:argument[]isaninvalidoruninitializednumberExplainwhythisisnotabug:Patch13767921wasnotappliedproperly-thepackagewasintheDBbuttheoracleexecutablewasnotrelinkedforsomeunknownreason.Hencetherewasamismatchedpartinstalledpatch.=============================================