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