gv$ (and v$)database_block_corruption do not show any blocks marked as
corrupt.
REPAIR_TABLE indicates:
SQL> select REPAIR_DESCRIPTION from repair_table;
REPAIR_DESCRIPTION
--------------------------------------
mark block software corrupt
This has been happening for a while, so a restore probably isn't going to
help.
gv$_transaction is also not showing anything I would not expect - like a
really old transaction.
Was hoping there might be a way to break that lock, but I'll just mark it
and move on.
Thanks.
On Wed, Mar 3, 2021 at 12:07 PM Jonathan Lewis <jlewisoracle@xxxxxxxxx>
wrote:
fix_corrupt_blocks simply marks the block as logicall corrupt so that it
(tends to be) ignored are run time and doesn't result in ora_01578 errors.
Have you already tried Block Media Recovery? You may find that Oracle can
fix the problem by reloading an old image of just that block from a backup
and then running through the archived redo log.
https://docs.oracle.com/en/database/oracle/oracle-database/12.2/bradv/rman-block-media-recovery.html#GUID-1E226393-17D0-4AB0-A05D-91210255D8FF
Regards
Jonathan Lewis
On Wed, 3 Mar 2021 at 16:53, David Barbour <david.barbour1@xxxxxxxxx>
wrote:
Good Morning,
Oracle 12.2 RAC
Linux 7.6
We have a procedure that is supposed to download the results of a query
to a .csv file. It fails with a *kdsgrp1 error.*
Ran DBMS_REPAIR.CHECK_OBJECT and it shows:
* kdbchk: row locked by non-existent transaction*
Any way to unlock this puppy, or should I just go ahead
with DBMS_REPAIR.FIX_CORRUPT_BLOCKS?