首页 » ORACLE 9i-23c » Oracle 11.2.0.4 “_part_access_version_by_number” = false

Oracle 11.2.0.4 “_part_access_version_by_number” = false

Troubleshooting ora-600[ktecgsc:kcbz_objdchk]&ora-600[qesmaGetTblSeg1] when inserting and ora-7445 [kss_first_child] when granting

this issue can occur when accessing a PARTITIONed object after a TRUNCATE operation or Interval partition add DDL.

from 11.2.0.4, oracle use versioned KGL handle to store partitioned information, when DDL is execute against a partitioned object, it’s will increment a counter which is used is used in the KGL handle name that stores stores partitioning details. the counter is limited to 5 digits so once it exceed that digit count it migth pick up an old KGL versioned handle which would have stale data present.


* The release is 11.2.0.4 or 12.1

* Accessing a partitioned object fails with an error after a TRUNCATE or DROP of the same segment. 
The most common error is ORA-8103 but could also be ORA-600 [ktecgsc:kcbz_objdchk]; 
 
* other symptoms might be seen as well like Wrong Results. eg. the same SQL query results not same between RAC nodes . 

* Flushing the shared pool works around the issue.

Workaround
When the problem is seen, a workaround is to flush the shared pool. An alternative is to restart the instance with the hidden parameter
“_part_access_version_by_number” set to FALSE. (RAC sites should restart *all* instances with this parameter set to the same value).

Using “_part_access_version_by_number” = FALSE will revert back to the 11.2.0.3 partitioned handling behaviour and will avoid the problem.

打赏

对不起,这篇文章暂时关闭评论。