That’s an unexpected message to get, right?
I got it related to an ORA-7445: ORA-07445: exception encountered: core dump [kcflfi()+1016] [SIGFPE] [Integer divide by zero] [0x10047EF18] [] []
What’s next?
After some checks, found the following (got from related trace the file name, matching to file_id 106):
SQL> select file_name, bytes from dba_data_files where file_id=106; FILE_NAME BYTES ------------------------------------------------ -------------- +DATA/MYDB/DATAFILE/DATAFILE_XX.558.1015447173 14529069056 SQL> select name, bytes from v$datafile where file#= 106; NAME BYTES ------------------------------------------------ -------------- +DATA/MYDB/DATAFILE/DATAFILE_XX.558.1015447173 14529067281
This means the Database Dictionary has different sizes for the datafile.
Looking at MOS, it seems to be a match to ORA-07445: Exception Encountered (Doc ID 1958870.1).
How to resolve it?
SQL> alter database datafile 106 offline to drop; RMAN> restore datafile 106; RMAN> recover datafile 106; SQL> alter database datafile 106 online;
This resolved my case, fixing the views.
BE CAREFUL:
- Make sure you have a backup before dropping the datafile.
- Make sure you can put the datafile offline or proceed in a non-business hour.
- Follow change procedures for Production, of course. Things may get wild.
And what if I don’t have a backup?
1. You may want to take it. It may not work, though, considering the original mismatch.
2. Export/Import logically:
– Export the data from the related tablespace (Datapump or Legacy Export, check for limitations and datatypes).
– Drop the tablespace and recreate it.
– Import the data back.
As usual, test it in a non-production environment to validate your plan and commands.
I hope it helps!