Split Operation makes indexes unusable

Unusable and Parallel indexes on Flashback Data Archive Tables in 19.22

We have been utilizing Flashback Data Archive for numerous tables in our main database. During this time, we have encountered several issues, such as FDA not being purged, split operations not occurring, duplicate data, SMON_SCN_TIME table storing not enough data etc. We have worked closely with Oracle support to address these problems and have gained considerable expertise in this area.

I have detected two different problems lately (June 2024) and opened a Service Request for Them.

According to the What Event Triggers The Creation Of The Sys_fba* Tables For Total Recall? (Doc ID 1302393.1); The SYS_FBA_* tables are created lazily by FBAR. By default FBAR (Flashback Archive) wakes up at 5 minutes interval  in 11.2.0.1 and performs it’s activities like creating history tables (SYS_FBA_*) etc. In 11.2.0.2.0 > it wakes up every 6 seconds. For RAC Environments, FBAR doesn’t create history tables until a DML is performed. Post DML operation, at first FBAR scan, these tables would be created. These tables are created with indexes on them by FBAR internally. ( Oracle is constantly changing these indexes and index orders with RUs, but that is another story )

Previously, we were on Release Update 19.20 with the August MRP applied. Recently, we updated to version 19.22 and applied the March MRP for 19.22.

After updating to release 19.22, we noticed that the internal index (in the format of SYS_FBA_HIST_IDX1_object_id) on SYS_FBA_HIST_object_id is created with DEGREE DEFAULT INSTANCE DEFAULT option, whereas it should be created with NOPARALLEL. According to 2981801.1 FDA Indexes are created With PARALLEL DEFAULT After Applying Patch 35039202, this is a known bug fixed in 35957640. Bugfix 35957640 included in the 19.22 RU. I’ve verified through opatch lsinventory that both fixes (35957640 and 35039202) are present in my inventory.

Despite the so-called bug fixes, the initial indexes are still created with the DEFAULT DEGREE.

Oracle Support Team replied to my service request with the following statement, which I don’t find convincing.

” Development team confirmed that it is expected behavior that the index on HIST table is created with “PARALLEL” clause only. It seems that the referenced document ( Doc ID 2981801.1 ) is an incorrect one.”

They removed  Doc ID 2981801.1 document from customer access. They claim that, from now on, these indexes will be created with DEFAULT Degree.

Last but not least, these indexes become unusable when a split operation occurs on the high partition (HIGH_PART) of the related table (SYS_FBA_HIST_). If the size of the HIGH_PART partition is small (although what constitutes ‘small’ exactly is uncertain), there are no issues. However, if the partition size is not small, when the split operation occurs, the local indexes on these tables gets unusable.

I have debugged FBDA process with the command below.

It has been observed that split operations occur consistently at the same time period every day and this is peak hour and that is not good also. I have requested more information about it.

To investigate what’s happening behind the scenes, I enabled 10046 event tracing on all instances for the FBDA process at 13:40.

The situation takes a serious turn here. The section provided below is extracted from the trace file of FBDA.

As you can see above, there is no UPDATE INDEXES clause in the split operation command. It should be written as shown below, or an index rebuild operation should be performed. However, neither of these actions is being taken.

You may also observe the same behavior with the test case I provided below.

I have provided the test case with my SR and will provide more information as soon as possible.

Update on 06.03.2025: Patch 36791812: FDA DDLS ARE OFFLINE LEADING TO UNUSABLE FDA INDEXES has been provided as a one-off patch to fix the issue.

Hope it helps.


Discover More from Osman DİNÇ


Comments

Leave your comment