首页 > 其他分享 >ORA-00600[ktfs_upd_range-1]

ORA-00600[ktfs_upd_range-1]

时间:2023-06-17 15:32:43浏览次数:56  
标签:map 00600 off ktfs upd system heat segment alter

ORA-600 [ktfs_upd_range-1] During Truncate Table (Doc ID 2247478.1)
HEATMAP Segment Size Is Large In SYSAUX Even When Heatmap=Off (Doc ID 2024036.1)
In 12.2.0.1, ORA-600 [kpdbSwitchPreRestore: Txn] Crash RAC Instances (Doc ID 2583951.1)
The following error occurs in the alert log:

ORA-00600: internal error code, arguments: [ktfs_upd_range-1], [], [], [], [], [], [], [], [], [], [], []
The Current SQL Statement in the associated incident trace file in this case is a TRUNCATE:

truncate table <table_name>;
and the Call Stack Trace is similar to:

ktfs_upd_range ktfs_saset_stat ktfs_flush_utime ktfs_reset_segment_modtime ktsstrn_segment ktsstrn_segment ...

Heat Map has been disabled in the database:

SQL> show parameter HEAT_MAP;

NAME                        TYPE           VALUE
------------------------------------ ----------- ------------------------------
heat_map                     string                  OFF

However, the SYSAUX tablespace still shows segment HeatMap consuming space:

SELECT owner, segment_name, segment_type, SUM(bytes) seg_size, COUNT(extent_id)
FROM dba_extents
WHERE tablespace_name='SYSAUX'
GROUP BY owner,segment_name , segment_type
ORDER BY seg_size DESC;

OWNER SEGMENT_NAME   SEGMENT_TYPE  SEG_SIZE  COUNT(EXTENT_ID)
----- -------------- ------------- --------- ----------------
SYS   HEATMAP SYSTEM STATISTICS    520093696               62

SOLUTION
1.  a.  Set heat_map to off in all instances, even though it is already set to 'off' or 'on':

alter system set heat_map=off;
 

Note:  Need to explicitly invoke "alter system set heat_map=off" on all instances, prior to the ALTER SYSTEM SET "_drop_stat_segment" =1;
     -and-

     b.  Change parameter _drop_stat_segment to 1:

ALTER SYSTEM SET "_drop_stat_segment" =1;
          If needed for more than one instance:

ALTER SYSTEM SET "_drop_stat_segment"=1 scope=both sid='*';
     After this, the HEATMAP segment size is gradually reduced.

 

-OR-

 

2.  Possible workarounds:

     a.  In a multitenant (CDB/PDB (container database/pluggable database)) environment:

         

          Disable the heat_map internal feature by executing the next alter system while the database is OPEN:

alter system set heat_map=off;
          If a CDB database is used, connect to the PDB while the PDB execute the alter system while the PDB is open:

alter session set container=cdb1_pdb1;
 
alter system set heat_map=off;
 

**** IMPORTANT *****
  For this workaround, explicitly setting the parameter heat_map=off in the init.ora /spfile.ora does not have any effect.

          The alter system must be performed while the database is OPEN and every time after OPEN.
 
          Once the internal ilm stats are disabled, it is recommended to drop the ilm segment by executing:

dbms_space_admin.HEAT_MAP_SEGMENT_DROP
     -OR-

     b.  Set _disable_ilm_internal to true:

alter system set "_disable_ilm_internal"=true

检查ora-600对应incident日志

检查日志发现Call Stack与mos中的Call Stack匹配,同时HEAT_MAP参数也为off状态。

Heat Map has been disabled in the database.

SQL> show parameter HEAT_MAP;

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
heat_map string OFF

But, SYAUX tablespace shows segment HEATMAP consuming space.

SELECT owner, segment_name, segment_type, SUM(bytes) seg_size, COUNT(extent_id)
FROM dba_extents
WHERE tablespace_name='SYSAUX'
GROUP BY owner,segment_name , segment_type
ORDER BY seg_size DESC;

OWNER SEGMENT_NAME SEGMENT_TYPE SEG_SIZE COUNT(EXTENT_ID)
----- ------------- ------------- -------- ----------------
SYS HEATMAP SYSTEM STATISTICS 520093696 62

问题处理

alter system set heat_map=off;

ALTER SYSTEM SET "_drop_stat_segment" =1 scope=both sid='shydb1';

ALTER SYSTEM SET "_drop_stat_segment" =1 scope=both sid='shydb2';

标签:map,00600,off,ktfs,upd,system,heat,segment,alter
From: https://blog.51cto.com/u_13482808/6505088

相关文章