DGMGRL> validate database 'proddb01'; Database Role: Primary database Ready for Switchover: Yes Flashback Database Status: tdridbt1: Off Managed by Clusterware: tdridbt1: NO Warning: Ensure primary database's StaticConnectIdentifier property is configured properly so that the primary database can be restarted by DGMGRL after switchover
DGMGRL> validate database 'stby01';
Database Role: Physical standby database
Primary Database: proddb01
Ready for Switchover: Yes
Ready for Failover: Yes (Primary Running)
Flashback Database Status:
proddb01: Off
stby01: Off
Managed by Clusterware:
proddb01: NO
stby01: NO
Warning: Ensure primary database's StaticConnectIdentifier property
is configured properly so that the primary database can be restarted
by DGMGRL after switchover
Current Log File Groups Configuration:
Thread # Online Redo Log Groups Standby Redo Log Groups Status
(proddb01) (stby01)
1 3 2 Insufficient SRLs
Future Log File Groups Configuration:
Thread # Online Redo Log Groups Standby Redo Log Groups Status
(stby01) (proddb01)
1 3 0 Insufficient SRLs
Warning: standby redo logs not configured for thread 1 on proddb01
The solution was found in Doc ID 1956103.1 "Warning: standby redo logs not configured for thread This is how I corrected the situation:
On the primary, check the status of the standby redo log files:
set lines 200 col member format a50 select s.group#,s.thread#,s.sequence#,s.archived,s.status,f.member, f.type from v$standby_log s, v$logfile f where f.type = 'STANDBY' and s.group# = f.group#; GROUP# THREAD# SEQUENCE# ARC STATUS MEMBER TYPE ---------- ---------- ---------- --- ---------- -------------------------------------------------- ------- 4 0 0 YES UNASSIGNED /u03/oradata/proddb01/stb_redo01.log STANDBY 5 0 0 YES UNASSIGNED /u03/oradata/proddb01/stb_redo02.log STANDBY 6 0 0 YES UNASSIGNED /u03/oradata/proddb01/stb_redo03.log STANDBY 7 0 0 YES UNASSIGNED /u03/oradata/proddb01/stb_redo04.log STANDBYIndeed, there is no standby redo logs assigned to thread 1.
First, set standby_file_management to MANUAL on both primary and standby, if not already done.
alter system set standby_file_management=MANUAL;
Still on the primary, drop the standby redo logs:
alter database drop logfile group 4; Database altered. alter database drop logfile group 5; Database altered. alter database drop logfile group 6; Database altered. alter database drop logfile group 7; Database altered.Still on the primary, add new standby redo logs:
alter database add standby logfile thread 1 group 4('/u03/oradata/proddb01/stb_redo01.log') size 2048M REUSE; alter database add standby logfile thread 1 group 5('/u03/oradata/proddb01/stb_redo02.log') size 2048M REUSE; alter database add standby logfile thread 1 group 6('/u03/oradata/proddb01/stb_redo03.log') size 2048M REUSE; alter database add standby logfile thread 1 group 7('/u03/oradata/proddb01/stb_redo04.log') size 2048M REUSE;Run the query above again, and you should see a thread number assigned to each group:
GROUP# THREAD# SEQUENCE# ARC STATUS MEMBER TYPE ---------- ---------- ---------- --- ---------- -------------------------------------------------- ------- 4 1 0 YES UNASSIGNED /u03/oradata/proddb01/stb_redo01.log STANDBY 5 1 0 YES UNASSIGNED /u03/oradata/proddb01/stb_redo02.log STANDBY 6 1 0 YES UNASSIGNED /u03/oradata/proddb01/stb_redo03.log STANDBY 7 1 0 YES UNASSIGNED /u03/oradata/proddb01/stb_redo04.log STANDBYOn the standby database, stop managed recovery:
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;Check the status:
GROUP# THREAD# SEQUENCE# ARC STATUS MEMBER TYPE ---------- ---------- ---------- --- ---------- -------------------------------------------------- ------- 4 1 46 YES ACTIVE /u03/oradata/stby01/stb_redo01.log STANDBY 5 1 0 YES UNASSIGNED /u03/oradata/stby01/stb_redo02.log STANDBY 6 0 0 YES UNASSIGNED /u03/oradata/stby01/stb_redo03.log STANDBY 7 0 0 YES UNASSIGNED /u03/oradata/stby01/stb_redo04.log STANDBYDrop the two standby redo log groups not having been assigned a thread number:
alter database drop logfile group 6; Database altered. alter database drop logfile group 7; Database altered.Add two new groups:
alter database add standby logfile thread 1 group 6('/u03/oradata/stby01/stb_redo03.log') size 2048M REUSE; Database altered. alter database add standby logfile thread 1 group 7('/u03/oradata/stby01/stb_redo04.log') size 2048M REUSE; Database altered.Start managed recovery again:
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT; Database altered.Verify by running the same query once more:
GROUP# THREAD# SEQUENCE# ARC STATUS MEMBER TYPE ---------- ---------- ---------- --- ---------- -------------------------------------------------- ------- 4 1 46 YES ACTIVE /u03/oradata/stby01/stb_redo01.log STANDBY 5 1 0 NO UNASSIGNED /u03/oradata/stby01/stb_redo02.log STANDBY 6 1 0 YES UNASSIGNED /u03/oradata/stby01/stb_redo03.log STANDBY 7 1 0 YES UNASSIGNED /u03/oradata/stby01/stb_redo04.log STANDBYThe warning is now gone from the output of data guard broker:
DGMGRL> validate database 'stby01'; Database Role: Physical standby database Primary Database: proddb01 Ready for Switchover: Yes Ready for Failover: Yes (Primary Running) Flashback Database Status: proddb01: Off stby01: Off Managed by Clusterware: proddb01: NO stby01: NO Warning: Ensure primary database's StaticConnectIdentifier property is configured properly so that the primary database can be restarted by DGMGRL after switchover
Finally, remember to adjust standby_file_management to AUTO on both primary and standby databases:
alter system set standby_file_management=AUTO;