Data Guard 12c: Warning: standby redo logs not configured for thread 1, Insufficient SRLs

Well, I have configured some 30 ‘Data Guards’ by now, but I never came across this warning, it seems it’s new in 12c:

DGMGRL> validate database cdb1dgsara

  Database Role:     Physical standby database
  Primary Database:  cdb1dgkara

  Ready for Switchover:  Yes
  Ready for Failover:    Yes (Primary Running)

  Future Log File Groups Configuration:
    Thread #  Online Redo Log Groups  Standby Redo Log Groups Status
              (cdb1dgkara)            (cdb1dgsara)
    1         3                       2                       Insufficient SRLs
    Warning: standby redo logs not configured for thread 1 on cdb1dgsara

Hang on, standby redo logs not configured? I have 4 groups!

GROUP# THREAD# SEQUENCE#    BYTES  USED ARC STATUS     FIRST_CHANGE# FIRST_TIM LAST_CHANGE# LAST_TIME
------ ------- --------- -------- ----- --- ---------- ------------- --------- ------------ ---------
     4       1         0 52428800     0 NO  UNASSIGNED
     5       1       427 52428800 16896 YES ACTIVE           7062849 08-DEC-15      7062905 08-DEC-15
     6       0         0 52428800     0 YES UNASSIGNED
     7       0         0 52428800     0 YES UNASSIGNED

Switching does not seem to help

Edit: I was tipped to try log switching on the primary, but the standby redo logs keep on switching between group 4 and 5:
(“and all he kept doing was: four, five, switch, repeat”)

GROUP# THREAD# SEQUENCE#    BYTES USED ARC STATUS     FIRST_CHANGE# FIRST_TIM LAST_CHANGE# LAST_TIME
------ ------- --------- -------- ---- --- ---------- ------------- --------- ------------ ---------
     4       1         0 52428800    0 NO  UNASSIGNED
     5       1       448 52428800 6144 YES ACTIVE           7507097 08-DEC-15      7507091 08-DEC-15
     6       0         0 52428800    0 YES UNASSIGNED
     7       0         0 52428800    0 YES UNASSIGNED
------ ------- --------- -------- ---- --- ---------- ------------- --------- ------------ ---------
     4       1       449 52428800 1024 YES ACTIVE           7507179 08-DEC-15      7507176 08-DEC-15
     5       1         0 52428800    0 NO  UNASSIGNED
     6       0         0 52428800    0 YES UNASSIGNED
     7       0         0 52428800    0 YES UNASSIGNED
------ ------- --------- -------- ---- --- ---------- ------------- --------- ------------ ---------
     4       1         0 52428800    0 NO  UNASSIGNED
     5       1       450 52428800 2560 YES ACTIVE           7507208 08-DEC-15      7507176 08-DEC-15
     6       0         0 52428800    0 YES UNASSIGNED
     7       0         0 52428800    0 YES UNASSIGNED
------ ------- --------- -------- ---- --- ---------- ------------- --------- ------------ ---------
     4       1       451 52428800 1024 YES ACTIVE           7507239 08-DEC-15      7507236 08-DEC-15
     5       1         0 52428800    0 NO  UNASSIGNED
     6       0         0 52428800    0 YES UNASSIGNED
     7       0         0 52428800    0 YES UNASSIGNED
------ ------- --------- -------- ---- --- ---------- ------------- --------- ------------ ---------
     4       1         0 52428800    0 NO  UNASSIGNED
     5       1       452 52428800 2048 YES ACTIVE           7507266 08-DEC-15      7507236 08-DEC-15
     6       0         0 52428800    0 YES UNASSIGNED
     7       0         0 52428800    0 YES UNASSIGNED

The thread# column contains 1’s and 0’s, it seems the four groups haven’t been accessed yet, just two. And ‘two’ is less than or not equal to ‘four’. Oracle still wants to have one standby redo log group more than there are redo groups. I have not heard of failures if the number of groups was equal, but the error also arises when it’s equal:

  Current Log File Groups Configuration:
    Thread #  Online Redo Log Groups  Standby Redo Log Groups Status
              (cdb1dgkara)            (cdb1dgsara)
    1         3                       3                       Insufficient SRLs

Thread please!

Ok, so the ‘trick’ is to create them all with the same thread# using the thread keyword in the command:

alter database drop standby logfile group 4;
alter database drop standby logfile group 5;
alter database drop standby logfile group 6;
alter database drop standby logfile group 7;

alter database add standby logfile thread 1 '/u02/oradata/CDB1DG/stbylog/stby4.log' size 50M reuse;
alter database add standby logfile thread 1 '/u02/oradata/CDB1DG/stbylog/stby5.log' size 50M reuse;
alter database add standby logfile thread 1 '/u02/oradata/CDB1DG/stbylog/stby6.log' size 50M reuse;
alter database add standby logfile thread 1 '/u02/oradata/CDB1DG/stbylog/stby7.log' size 50M reuse;

They are not dropped from the file system, that’s why I use the ‘reuse’ keyword in the command. Remove or change the path if you want to use OMF or an other location.

DGMGRL> validate database cdb1dgsara

  Database Role:     Physical standby database
  Primary Database:  cdb1dgkara

  Ready for Switchover:  Yes
  Ready for Failover:    Yes (Primary Running)

  Standby Apply-Related Information:
    Apply State:      Running
    Apply Lag:        Unknown

    Apply Delay:      0 minutes

Ok, well done, the warning is gone, whoohoow! I used to create them without the thread command. It looks like Oracle is ‘threading’ them on first time use, but now mis-warn you when it only has used two of them instead of all four, but when will it do it for all four or is it a creation thing?

Happy grouping!

Oh, ps, yes, I called my Oracle database ‘twins’ Sara and Kara… lol, just for fun, but I think I’ll keep doing that :D

Tagged , , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *