When an transient disk failures happens the time to take to repair the offline disk from mirror groups will be set by diskgroup_repair_time.
For example, If diskgroup_repair_time is set as 3 hours and with in this period if disk repair is not completed, the ASM will drop the disks.
ASM keeps track of the changed extents that need to be applied to the offline disk. Once the disk is available, only the changed extents are written to resynchronize the disk, rather than overwriting the contents of the entire disk. This can speed up the resynchronization process considerably. This is called fast mirror resync.
Tricky question
Difference between a rebalance and resync? TO my knowledge and understanding, conceptually both are similar a) Rebalance operation starts when the disk addition/deletion happens using rebalance power until 11, move/copy the extents as a whole to target disk b) Resync operations comes into picture when the disk becomes online after an offline and using rebalance power from 1 to 1024(12c) and synchronize those extents only not all the extents.
Back to post,
What if total failgroup is having problem, Because failure group outages are more likely to be transient in nature and because replacing all the disks in a failure group is much more expensive operation than replacing a single disk, it would typically make sense for failure groups to have a larger repair time to ensure that all the disks does not get dropped automatically in the event of a failure group outage.
Hence from 12c onwards we have failgroup_repair_time which defaults to 24 hours (diskgroup_repair_time is 3.6 hours)
Quick example:-
#Pre requisite must be 11.1.0 or higher
SQL> select NAME ,COMPATIBILITY,DATABASE_COMPATIBILITY from v$asm_diskgroup where name='TEST_FAILGROUP';
NAME COMPATIBILITY DATABASE_COMPATIBILITY
TEST_FAILGROUP 11.1.0.0.0 11.1.0.0.0
SQL> create diskgroup test_failgroup
normal redundancy
failgroup A disk '/dev/sde2','/dev/sdh2'
failgroup B disk '/dev/sdb4','/dev/sdi1';
Diskgroup created.
## Tried to set this attribute on same diskgroup,
SQL> alter diskgroup test_failgroup set attribute 'failgroup_repair_time'='3H';
Diskgroup altered.
SQL> select group_number,name,value from v$asm_attribute where group_number=4 and name like 'failgroup%';
GROUP_NUMBER NAME VALUE
4 failgroup_repair_time 3H
[…] 12c Database : ASM Enhancements : New Failgroup Repair Time […]