Whenever you change the DelayMins setting in Dataguard, you must remember it affects only logs that have not been shipped yet.
DGMGRL> show database sDB01 delaymins
DelayMins = '5'
DGMGRL> edit DATABASE sDB01 set property delaymins=2;
Property "delaymins" updated
ARC3: Archive log thread 1 sequence 3199 available in 5 minute(s)
Tue Dec 03 15:34:59 2013
ARC0: Archive log thread 1 sequence 3200 available in 2 minute(s)
Tue Dec 03 15:35:15 2013
SQL> select sysdate, SEQUENCE# from v$managed_standby where process='MRP0'
SYSDATE SEQUENCE#
------------------- ----------
2013-12-03_15:38:00 3199
The old logs are not affected. Let’s wait until the latest Delay=5 got applied.
Tue Dec 03 15:40:02 2013
Media Recovery Log /u01/app/oracle/admin/DB01/arch/DB01_1_3199_827686279.arc
Media Recovery Log /u01/app/oracle/admin/DB01/arch/DB01_1_3200_827686279.arc
Media Recovery Log /u01/app/oracle/admin/DB01/arch/DB01_1_3201_827686279.arc
Media Recovery Log /u01/app/oracle/admin/DB01/arch/DB01_1_3202_827686279.arc
Media Recovery Log /u01/app/oracle/admin/DB01/arch/DB01_1_3203_827686279.arc
Media Recovery Log /u01/app/oracle/admin/DB01/arch/DB01_1_3204_827686279.arc
Media Recovery Log /u01/app/oracle/admin/DB01/arch/DB01_1_3205_827686279.arc
All files which had a delay=2 were “pending” apply. Now we got the apply=2 behavior
Same if you increase the value
DGMGRL> edit DATABASE sDB01 set property delaymins=30;
Property "delaymins" updated
SQL> select sysdate, SEQUENCE# from v$managed_standby where process='MRP0';
SYSDATE SEQUENCE#
------------------- ----------
2013-12-03_15:49:04 3224
ARC3: Archive log thread 1 sequence 3224 available in 2 minute(s)
Tue Dec 03 15:47:22 2013
Here again, the old logs are not affected, we need to wait until the last delay=2 got applied to get a delay=30 behavior.
While you cannot change the delay, there is still a way to workaround the problem.
If you want to immediately increase log to 30 minutes, turn off applying for half an hour.
DGMGRL> edit DATABASE sDB01 set state='APPLY-OFF';
Succeeded.
-- coffee break
DGMGRL> edit DATABASE sDB01 set state='APPLY-ON';
Succeeded.
If you want to decrease log from 30 to 2 minutes right now and immediately apply the old logs which have reached this threshold, use sqlplus
ARC1: Archive log thread 1 sequence 3253 available in 30 minute(s)
Tue Dec 03 16:01:26 2013
ARC3: Archive log thread 1 sequence 3254 available in 2 minute(s)
Tue Dec 03 16:01:37 2013
DGMGRL> edit DATABASE sDB01 set state='APPLY-OFF';
Succeeded.
SQL> recover automatic standby database until time '2013-12-03_16:01:30';
Media recovery complete.
DGMGRL> edit DATABASE sDB01 set state='APPLY-ON';
Succeeded.
I wrote on delay standby failover here : here