溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

DBMS_REDEFINITION.START_REDEF_TABLE ORA-42008 ORA-22060報(bào)錯(cuò)的處理

發(fā)布時(shí)間:2020-08-11 08:00:22 來源:ITPUB博客 閱讀:305 作者:running_life 欄目:關(guān)系型數(shù)據(jù)庫

數(shù)據(jù)庫環(huán)境為:rhel6.8 64bit oracle 11.2.0.3.11


凌晨1點(diǎn)起床,執(zhí)行計(jì)劃內(nèi)的數(shù)據(jù)庫操作。將幾個(gè)大表在線重定義為分區(qū)表,以便于空間釋放。在執(zhí)行CAN_REDEF_TABLE是正常,但是在執(zhí)行START_REDEF_TABLE時(shí)報(bào)錯(cuò)了,錯(cuò)誤信息如下:

ORA-42008: 實(shí)例化重新定義時(shí)出錯(cuò)
ORA-22060: 參數(shù) [] 是一個(gè)無效或未初始化的數(shù)值
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


當(dāng)時(shí)第一反應(yīng)是難道表有問題,以前遇到過表上注釋太長導(dǎo)致重定義報(bào)錯(cuò)的bug。我換了個(gè)表再次執(zhí)行這些操作,在START_REDEF_TABLE時(shí)還是報(bào)錯(cuò)了。


沒法了,情況緊急,先去百度搜索了一番,又去谷歌搜索了一番,mos也找了,毛都沒找到一根,,,單獨(dú)的ORA-42008,ORA-22060這兩個(gè)錯(cuò)誤多,但是連在一起的時(shí)候幾乎沒有。


不過網(wǎng)上搜索還是有點(diǎn)收獲,借鑒了別人的排查錯(cuò)誤的方法。有人用10046來跟蹤session來發(fā)現(xiàn)報(bào)錯(cuò),我也采用試試。


不過情況有變,別人的都是有明確的報(bào)錯(cuò)信息,但是在我的10046報(bào)告里面沒有。。。沒辦法了,我根據(jù)這個(gè)報(bào)錯(cuò)信息ORA-06512: 在 "SYS.DBMS_SNAPSHOT_UTL", line 1613在10046去查找,找是哪兒執(zhí)行了DBMS_SNAPSHOT_UTL。最后找到了這個(gè)地方sys.dbms_snapshot_utl.get_log_name,我將這個(gè)存儲(chǔ)過程的參數(shù)補(bǔ)全,測試了下,報(bào)錯(cuò)就是ORA-22060,到此可以確定是dbms_snapshot_utl的問題了。但是在系統(tǒng)中沒有看到任何失效對(duì)象,所以在數(shù)據(jù)庫內(nèi)部的這個(gè)包本身是沒問題的。


最后的解決方法是經(jīng)驗(yàn),這個(gè)庫以前遇到過dbms_stats運(yùn)行報(bào)錯(cuò)的情況,說一個(gè)bug補(bǔ)丁不存在,http://blog.itpub.net/29822273/viewspace-2139924/。當(dāng)時(shí)查過mos,說是因?yàn)閿?shù)據(jù)庫中的包與實(shí)際程序不匹配,比如打補(bǔ)丁后沒有運(yùn)行catbundle psu apply。因?yàn)檫@個(gè)庫是從windows平臺(tái)遷移至linux平臺(tái)的,兩個(gè)平臺(tái)當(dāng)時(shí)沒有完全匹配的小版本,所以只能找了一個(gè)與windows版本最接近的linux版本來作為遷移的目標(biāo)版本。然后升級(jí)完了也沒運(yùn)行catbundle psu apply。


由此想到的辦法是重新安裝這個(gè)包,oracle的安裝某些包是有特定步驟的,我怕踩雷,到處搜索了一番,還是沒找到重建dbms_snapshot_utl的方法。最后,時(shí)間越來越到約定的3點(diǎn)鎖表時(shí)間了,心一橫,直接用grep方法在admin里面去找,發(fā)現(xiàn)了兩個(gè)腳本:

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

一個(gè)是package,一個(gè)是package body。注意要先運(yùn)行package腳本,再運(yùn)行body腳本,否者會(huì)報(bào)錯(cuò)。

執(zhí)行完了,在線重定義操作未報(bào)錯(cuò)了。


定于凌晨1點(diǎn)執(zhí)行的在線重定義普通表為分區(qū)表的操作,一直延遲到了凌晨3點(diǎn)才正式開始。。。。。。


最后閑下來還是在mos找到了一篇相關(guān)文章,之前死活找不到。。。搜索還是一門技藝。。。


Bug 14657634 : DBMS_REDEFINITION.START_REDEF_TABLE ENDS WITH ORA-22060 To Bottom
DBMS_REDEFINITION.START_REDEF_TABLE ORA-42008 ORA-22060報(bào)錯(cuò)的處理


DBMS_REDEFINITION.START_REDEF_TABLE ORA-42008 ORA-22060報(bào)錯(cuò)的處理

DBMS_REDEFINITION.START_REDEF_TABLE ORA-42008 ORA-22060報(bào)錯(cuò)的處理


Bug Attributes

Type B - Defect Fixed in Product Version
Severity 2 - Severe Loss of Service Product Version 11.2.0.3
Status 92 - Closed, Not a Bug Platform 226 - Linux x86-64
Created 21-Sep-2012 Platform Version NO DATA
Updated 17-Jan-2018 Base Bug N/A
Database Version 11.2.0.3 Affects Platforms Generic
Product Source Oracle Knowledge, Patches and Bugs related to this bug

DBMS_REDEFINITION.START_REDEF_TABLE ORA-42008 ORA-22060報(bào)錯(cuò)的處理


Related Products

Line Oracle Database Products Family Oracle Database Suite
Area Oracle Database Product 5 - Oracle Database - Enterprise Edition




DBMS_REDEFINITION.START_REDEF_TABLE ORA-42008 ORA-22060報(bào)錯(cuò)的處理

Hdr: 14657634 11.2.0.3 RDBMS 11.2.0.3 UNKNOWN PRODID-5 PORTID-226 ORA-22060
Abstract: DBMS_REDEFINITION.START_REDEF_TABLE ENDS WITH ORA-22060
 
----
SAP customer message  729961-2012 TetraPak
 
PROBLEM:
--------
 
BEGIN DBMS_REDEFINITION.START_REDEF_TABLE (UNAME => '"SAPPB3"', ORIG_TABLE => 
'"/BIC/B0001904000"', INT_TABLE => '"/BIC/B0001904000#$"', OPTIONS_FLAG => 
DBMS_REDEFINITION.CONS_USE_PK); END;
 
ORA-42008: error occurred while instantiating the redefinition
ORA-22060: argument [] is an invalid or uninitialized number
ORA-6512: at "SYS.DBMS_SNAPSHOT_UTL", line 1613
ORA-6512: at line 1
ORA-6512: at "SYS.DBMS_REDEFINITION", line 56
ORA-6512: at "SYS.DBMS_REDEFINITION", line 1490
ORA-6512: at line 1
 
this is constantly reproducable at customer system.
 
Table /BIC/B0001904000 holds 545 columns and was compressed by mistake
 
TABLE_NAME                     COMPRESS COMPRESS_FOR
------------------------------ -------- ------------
/BIC/B0001904000               ENABLED  OLTP
 
Using online reorganisation it should be decompressed again.
 
 
 
DIAGNOSTIC ANALYSIS:
--------------------
 
Executing this command directly in SQLPLUS using "/ as sysdba"
It reproduces the error.
 
Created error stack with
alter session set events '22060 trace name errorstack level 4';
 
got the underlying sql wich is failing:
----- Error Stack Dump -----
ORA-22060: argument [] is an invalid or uninitialized number
----- Current SQL Statement for this session (sql_id=4jkx2nsqpz6rt) -----
begin   sys.dbms_snapshot_utl.get_log_name(:master, :mowner, :lognm, :chkpk,  
   :status, :objid);  end;
 
in stack psdexsp() throws the error
 
 
PROCEDURE GET_LOG_NAME
 Argument Name			Type			In/Out Default?
 ------------------------------ ----------------------- ------ --------
 MASTER 			VARCHAR2		IN
 MOWNER 			VARCHAR2		IN
 LOGNM				VARCHAR2		OUT
 CHKFLG 			BINARY_INTEGER		IN
 STATUS 			BINARY_INTEGER		OUT
 MASOBJID			NUMBER			OUT
 
binds given:
 
----- Bind Info (kkscoacd) -----
 Bind#0
  oacdty=01 mxl=32(16) mxlc=00 mal=00 scl=00 pre=00
  kxsbbbfp=7faea7caac22  bln=32  avl=16  flg=09
  value="/BIC/B0001904000"
 Bind#1
  oacdty=01 mxl=32(06) mxlc=00 mal=00 scl=00 pre=00
  kxsbbbfp=7faea7caac00  bln=32  avl=06  flg=09
  value="SAPPB3"
 Bind#2
  oacdty=01 mxl=32(30) mxlc=00 mal=00 scl=00 pre=00
  kxsbbbfp=7faea7caac46  bln=30  avl=00  flg=09
 Bind#3
  oacdty=02 mxl=22(22) mxlc=00 mal=00 scl=00 pre=00
  kxsbbbfp=7faea7b86db8  bln=22  avl=02  flg=05
  value=36
 Bind#4
  oacdty=02 mxl=22(22) mxlc=00 mal=00 scl=00 pre=00
  kxsbbbfp=7faea7b86dd0  bln=22  avl=00  flg=01
 Bind#5
  oacdty=02 mxl=22(22) mxlc=00 mal=00 scl=00 pre=00
  kxsbbbfp=7faea7b86de8  bln=22  avl=00  flg=01
 
 
Interim table is created like given in ddl.sql
Its the same structure for source table.
 
checking data dictionory by event 10827 and found no error:
 
alter session set events '10827 trace name context forever, level 1'; 
 
SQL> set serverout on
SQL> EXECUTE dbms_registry_sys.validate_components;
 
VPROC: CATALOG DBMS_REGISTRY_SYS.VALIDATE_CATALOG - +000000 
00:00:00.665670000
VPROC: CATPROC DBMS_REGISTRY_SYS.VALIDATE_CATPROC - +000000 
00:00:00.030478000
 
PL/SQL procedure successfully completed.
 
 
even only two objects are invalid, which are owned by SAP user.
One is a VIEW other a SYNONYM.
 
recreating procedure with:
SQL> @?/rdbms/admin/prvtsnap.plb
 
does not fix the error.
 
WORKAROUND:
-----------
use datapump for offline reorganization.
 
RELATED BUGS:
-------------
 
REPRODUCIBILITY:
----------------
 
TEST CASE:
----------
 
STACK TRACE:
------------
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 <- start
 
SUPPORTING INFORMATION:
-----------------------
files uploaded:
ddl.sql - for intermim table
SB3_ora_16396.zip  - errorstack trace
 
24 HOUR CONTACT INFORMATION FOR P1 BUGS:
----------------------------------------
 
DIAL-IN INFORMATION:
--------------------
 
IMPACT DATE:
------------
 
patches currently inistalled:
 SAP Bundle Patch 11.2.0.3.2 - 201205
 
-> this is RDBMS PSU#2
see file opatch_lsinventory.zip for complete patch list
see dba_registry_history.zip for update history
 
============================================
 
Key Symptoms/Summary/Rediscovery:
  Errors from DBMS_REDEFINITION.START_REDEF_TABLE:
   ORA-42008: error occurred while instantiating the redefinition
   ORA-22060: argument [] is an invalid or uninitialized number
 
Explain why this is not a bug:
  Patch 13767921 was not applied properly - the package was
  in the DB but the oracle executable was not relinked for
  some unknown reason. Hence there was a mismatched part 
  installed patch.
=============================================




向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI