Oracles Automatic Storage Management (
ASM) has many nice advantages against other volume managers. One of my favorite is to add and remove or rebalance disks without any interruption for the database. Unfortunately the
remove of devices after the rebalance is completed is not as straight forward as expected:
In a current environment (Grid Infrastructure: 12.2.0.1.180417, rdbms: 12.1.0.2.180116 and others) after the ALTER DISKGROUP xxx DROP DISK yyy specific discs are in status FORMER.
Still several RBAL processes of different DBs (I did not find a derterministic pattern which processes or DBs) hold a file handle on this specific device. To make it more interesting is the fact that the diskgroup (DG) or disk was never used by any of those DBs. We have a strict mapping of DBs to DGs, so it's easy for me to claim that.
To tell RBAL processes to release this "stale" filehandle, I have to run a
ALTER DISKGROUP zzz REBALANCE.
Any DG does the trick, it is not required to be related to the DB of RBAL process at all.
As diskgroups are normally balanced, this is a kind of
NOP. Still it's required to wake up
RBAL and makes it release unused filehandles.
I still have no idea why these RBAL processes open a device it's DB never needs at all;
but as I have my proper workaround, I don't investigate any further.
Might this help someone out there, or at least me when I hit this odd behavior again ;-)