{"id":9833,"date":"2017-02-28T13:53:50","date_gmt":"2017-02-28T12:53:50","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/oracle-12c-how-to-recover-lost-dataguard-broker-configuration-files\/"},"modified":"2017-02-28T13:53:50","modified_gmt":"2017-02-28T12:53:50","slug":"oracle-12c-how-to-recover-lost-dataguard-broker-configuration-files","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/oracle-12c-how-to-recover-lost-dataguard-broker-configuration-files\/","title":{"rendered":"Oracle 12c &#8211; How to Recover lost DataGuard Broker Configuration Files"},"content":{"rendered":"<h2>By William Sescu<\/h2>\n<p>If you are using RMAN to back up your database, you are already doing the right thing. However, RMAN does not take care of everything. e.g. it is not backing up the following things, to mention just a few.<\/p>\n<ul>\n<li>Oracle Home<\/li>\n<li>Grid Infrastructure Home<\/li>\n<li>Data Guard broker files<\/li>\n<li>Password File<\/li>\n<li>SQL*Net file like ldap.ora, sqlnet.ora, tnsnames.ora and listener.ora<\/li>\n<li>\/etc\/oratab<\/li>\n<li>OS audit files<\/li>\n<li>Wallets<\/li>\n<li>\/etc\/sysctl.conf and limits.conf<\/li>\n<li>OLR and OCR<\/li>\n<li>Voting Disks<\/li>\n<li>ASM Metadata<\/li>\n<li>passwd, shadow, group<\/li>\n<li>RMAN scripts itself ksh\/rcv (some exceptions when using the RMAN catalog)<\/li>\n<li>crontab<\/li>\n<\/ul>\n<p>There are for sure many more, but in this article I would like to take a closer look at the Data Guard broker configuraiton files. The DataGuard Broker Configuration Files are quite important files. The contain entries that describe the state and the properties of the DataGuard configuration like the sites and databases that are part of the configuration, the roles and properties of each of the databases, and the state of each of the elements of the configuration. The broker configuration files are very small, in my case they have only 12K. Don&#8217;t expect them to grow very big. They usually stay at this size.<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">oracle@dbidg01:\/u01\/app\/oracle\/admin\/DBIT121\/pfile\/ [DBIT121] ls -lh dr*\n-rw-r----- 1 oracle oinstall 12K Feb 28 09:27 dr1DBIT121_SITE1.dat\n-rw-r----- 1 oracle oinstall 12K Feb 28 09:34 dr2DBIT121_SITE1.dat<\/pre>\n<p>You can have a maximum of two different copies which can be configured via the DG_BROKER_CONFIG_FILEn (where n = 1, 2) parameter. Maybe, maximum is not the correct word in this context, because if you don&#8217;t specify the broker file location, Oracle still creates one in the default directory which is OS dependent. On Linux they end up in $ORACLE_HOME\/dbs\/.<\/p>\n<p>However, not like you might expect, the broker configuration files are not a 1:1 mirror like e.g. redo log members or controlfiles. They are individual copies and they maintain the last known good state of the configuration. You can check it quite easily yourself by editing e.g. the FastStartFailoverThreshold and check the time stamps of the broker files afterwards.<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">DGMGRL&gt; EDIT CONFIGURATION SET PROPERTY FastStartFailoverThreshold='40';\nProperty \"faststartfailoverthreshold\" updated\n\n-- Primary\noracle@dbidg01:\/u01\/app\/oracle\/admin\/DBIT121\/pfile\/ [DBIT121] ls -l dr*\n-rw-r----- 1 oracle oinstall 12288 Feb 28 09:27 dr1DBIT121_SITE1.dat\n-rw-r----- 1 oracle oinstall 12288 Feb 28 09:34 dr2DBIT121_SITE1.dat\n\n-- Standby\noracle@dbidg02:\/u01\/app\/oracle\/admin\/DBIT121\/pfile\/ [DBIT121] ls -l dr*\n-rw-r----- 1 oracle oinstall 12288 Feb 28 09:34 dr1DBIT121_SITE2.dat\n-rw-r----- 1 oracle oinstall 12288 Feb 28 09:27 dr2DBIT121_SITE2.dat<\/pre>\n<p>As you can see here, the broker configuration files have two different time stamps. One with the last know good state at 09:27 and one with new state and 09:34. When the broker is started for the first time, it is expected that you see only one configuration file. But don&#8217;t panic, the other will be created by the next updates done by the broker.<\/p>\n<p>The broker configuration file is a binary file, however the readable contents of that file can be extracted via the strings command. It gives an idea of some contents of the broker file. e.g. it shows you that the broker config file is brought to you by the fine folks from NEDC, whoever they are. \ud83d\ude42 With 12cR1 is looks like the following.<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">oracle@dbidg01:\/u01\/app\/oracle\/admin\/DBIT121\/pfile\/ [DBIT121] file dr2DBIT121_SITE1.dat\ndr2DBIT121_SITE1.dat: data\n\noracle@dbidg01:\/u01\/app\/oracle\/admin\/DBIT121\/pfile\/ [DBIT121] strings dr2DBIT121_SITE1.dat\n}|{z\nDBIT121\nDBIT121_SITE1\nDBIT121_SITE2\nDBIT121_SITE2\nBrought to you by the fine folks at NEDC.\nTRUETRUEdbidg03ALLDBIT121FALSECONTINUE\nDBIT121_SITE1DBIT121_SITE1FALSEFALSEFALSESYNCoptionalDISABLEON1,1948637,931101276,0*AUTO0,0,00,0,0AUTODBIT121_SITE2\ndbidg01DBIT121DBIT121(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=dbidg01)(PORT=1521))(CONNECT_DATA=(SERVICE_NA\nME=DBIT121_SITE1_DGMGRL)(INSTANCE_NAME=DBIT121)(SERVER=DEDICATED)))USE_DB_RECOVERY_FILE_DEST%t_%s_%r.dbf4\nDBIT121_SITE2DBIT121_SITE2FALSEFALSEFALSESYNCoptionalDISABLEON1,1948637,931101276,0*DBIT121AUTO0,0,00,0,0AUTODBIT121_SITE1\ndbidg02DBIT121DBIT121(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=dbidg02)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=DBIT121_SITE2_DGMGRL)(INSTANCE_NAME=DBIT121)(SERVER=DEDICATED)))USE_DB_RECOVERY_FILE_DEST%t_%s_%r.dbf<\/pre>\n<p>Things are changing with Oracle 12cR2. The broker config files are still binary files, however the readable content via the strings command is very good now. You can get a lot of very useful information out of it. And even with Oracle 12cR2, it looks like that it is still brought to you by the same fine folks from NEDC. \ud83d\ude42 Looks like that the Oracle developers have a sort of humor. \ud83d\ude42<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">oracle@dbidg01:\/u01\/app\/oracle\/admin\/DBIT122\/pfile\/ [DBIT122] file dr2DBIT122_SITE1.dat\ndr2DBIT122_SITE1.dat: data\noracle@dbidg01:\/u01\/app\/oracle\/admin\/DBIT122\/pfile\/ [DBIT122] strings dr2DBIT122_SITE1.dat\n}|{z\nDBIT122\nDBIT122_SITE1\nBrought to you by the fine folks at NEDC.\n&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\n&lt;DRC Version=\"12.2.0.1.0\" Name=\"DBIT122\" CurrentPath=\"True\"&gt;\n  &lt;PlannedState&gt;OFFLINE&lt;\/PlannedState&gt;\n  &lt;Status&gt;\n    &lt;Severity&gt;Success&lt;\/Severity&gt;\n    &lt;Error&gt;0&lt;\/Error&gt;\n  &lt;\/Status&gt;\n  &lt;DefaultState&gt;ONLINE&lt;\/DefaultState&gt;\n  &lt;IntendedState&gt;ONLINE&lt;\/IntendedState&gt;\n  &lt;MIV PropertyID=\"1\"&gt;0&lt;\/MIV&gt;\n  &lt;PRIMARY_SITE_ID PropertyID=\"26\"&gt;513&lt;\/PRIMARY_SITE_ID&gt;\n  &lt;DRC_UNIQUE_ID PropertyID=\"4\"&gt;152596437&lt;\/DRC_UNIQUE_ID&gt;\n  &lt;DRC_UNIQUE_ID_SEQUENCE PropertyID=\"5\"&gt;18&lt;\/DRC_UNIQUE_ID_SEQUENCE&gt;\n  &lt;EXT_COND PropertyID=\"29\"&gt;7&lt;\/EXT_COND&gt;\n  &lt;OVERALL_PROTECTION_MODE PropertyID=\"30\"&gt;2&lt;\/OVERALL_PROTECTION_MODE&gt;\n  &lt;FastStartFailoverMode PropertyID=\"32\"&gt;0&lt;\/FastStartFailoverMode&gt;\n  &lt;FSFO_MIV PropertyID=\"33\"&gt;11&lt;\/FSFO_MIV&gt;\n  &lt;FastStartFailoverOBID1 PropertyID=\"119\"&gt;470173189&lt;\/FastStartFailoverOBID1&gt;\n  &lt;FastStartFailoverOBID2 PropertyID=\"120\"&gt;470173183&lt;\/FastStartFailoverOBID2&gt;\n  &lt;FastStartFailoverOBID3 PropertyID=\"121\"&gt;470173184&lt;\/FastStartFailoverOBID3&gt;\n  &lt;ObserverVersion1 PropertyID=\"133\"&gt;0&lt;\/ObserverVersion1&gt;\n  &lt;Configuration_Name PropertyID=\"31\"&gt;DBIT122&lt;\/Configuration_Name&gt;\n  &lt;ObserverName1 PropertyID=\"129\"&gt;dbidg03&lt;\/ObserverName1&gt;\n  &lt;ConfigurationWideServiceName PropertyID=\"132\"&gt;DBIT122_CFG&lt;\/ConfigurationWideServiceName&gt;\n  &lt;RoleChangeHistory PropertyID=\"106\"&gt;\n    &lt;RoleChangeRecord&gt;\n      &lt;Event&gt;PhysicalFailover&lt;\/Event&gt;\n      &lt;OldPrimary&gt;DBIT122_SITE1&lt;\/OldPrimary&gt;\n      &lt;NewPrimary&gt;DBIT122_SITE2&lt;\/NewPrimary&gt;\n      &lt;Status&gt;0&lt;\/Status&gt;\n      &lt;Timestamp&gt;931098450&lt;\/Timestamp&gt;\n    &lt;\/RoleChangeRecord&gt;\n    &lt;RoleChangeRecord&gt;\n      &lt;Event&gt;PhysicalFailover&lt;\/Event&gt;\n      &lt;OldPrimary&gt;DBIT122_SITE2&lt;\/OldPrimary&gt;\n      &lt;NewPrimary&gt;DBIT122_SITE1&lt;\/NewPrimary&gt;\n      &lt;Status&gt;0&lt;\/Status&gt;\n      &lt;Timestamp&gt;931098812&lt;\/Timestamp&gt;\n    &lt;\/RoleChangeRecord&gt;\n    &lt;RoleChangeRecord&gt;\n      &lt;Event&gt;PhysicalFailover&lt;\/Event&gt;\n      &lt;OldPrimary&gt;DBIT122_SITE1&lt;\/OldPrimary&gt;\n      &lt;NewPrimary&gt;DBIT122_SITE2&lt;\/NewPrimary&gt;\n      &lt;Status&gt;0&lt;\/Status&gt;\n      &lt;Timestamp&gt;932306689&lt;\/Timestamp&gt;\n    &lt;\/RoleChangeRecord&gt;\n    &lt;RoleChangeRecord&gt;\n      &lt;Event&gt;PhysicalSwitchover&lt;\/Event&gt;\n      &lt;OldPrimary&gt;DBIT122_SITE2&lt;\/OldPrimary&gt;\n      &lt;NewPrimary&gt;DBIT122_SITE1&lt;\/NewPrimary&gt;\n      &lt;Status&gt;0&lt;\/Status&gt;\n      &lt;Timestamp&gt;932307856&lt;\/Timestamp&gt;\n    &lt;\/RoleChangeRecord&gt;\n    &lt;RoleChangeRecord&gt;\n      &lt;Event&gt;PhysicalSwitchover&lt;\/Event&gt;\n      &lt;OldPrimary&gt;DBIT122_SITE1&lt;\/OldPrimary&gt;\n      &lt;NewPrimary&gt;DBIT122_SITE2&lt;\/NewPrimary&gt;\n      &lt;Status&gt;0&lt;\/Status&gt;\n      &lt;Timestamp&gt;932377455&lt;\/Timestamp&gt;\n    &lt;\/RoleChangeRecord&gt;\n    &lt;RoleChangeRecord&gt;\n      &lt;Event&gt;PhysicalSwitchover&lt;\/Event&gt;\n      &lt;OldPrimary&gt;DBIT122_SITE2&lt;\/OldPrimary&gt;\n      &lt;NewPrimary&gt;DBIT122_SITE1&lt;\/NewPrimary&gt;\n      &lt;Status&gt;0&lt;\/Status&gt;\n      &lt;Timestamp&gt;932381717&lt;\/Timestamp&gt;\n    &lt;\/RoleChangeRecord&gt;\n    &lt;RoleChangeRecord&gt;\n      &lt;Event&gt;PhysicalSwitchover&lt;\/Event&gt;\n      &lt;OldPrimary&gt;DBIT122_SITE1&lt;\/OldPrimary&gt;\n      &lt;NewPrimary&gt;DBIT122_SITE2&lt;\/NewPrimary&gt;\n      &lt;Status&gt;0&lt;\/Status&gt;\n      &lt;Timestamp&gt;932382294&lt;\/Timestamp&gt;\n    &lt;\/RoleChangeRecord&gt;\n    &lt;RoleChangeRecord&gt;\n      &lt;Event&gt;PhysicalSwitchover&lt;\/Event&gt;\n      &lt;OldPrimary&gt;DBIT122_SITE2&lt;\/OldPrimary&gt;\n      &lt;NewPrimary&gt;DBIT122_SITE1&lt;\/NewPrimary&gt;\n      &lt;Status&gt;0&lt;\/Status&gt;\n      &lt;Timestamp&gt;932383387&lt;\/Timestamp&gt;\n    &lt;\/RoleChangeRecord&gt;\n    &lt;RoleChangeRecord&gt;\n      &lt;Event&gt;PhysicalSwitchover&lt;\/Event&gt;\n      &lt;OldPrimary&gt;DBIT122_SITE1&lt;\/OldPrimary&gt;\n      &lt;NewPrimary&gt;DBIT122_SITE2&lt;\/NewPrimary&gt;\n      &lt;Status&gt;0&lt;\/Status&gt;\n      &lt;Timestamp&gt;934017954&lt;\/Timestamp&gt;\n    &lt;\/RoleChangeRecord&gt;\n    &lt;RoleChangeRecord&gt;\n      &lt;Event&gt;PhysicalSwitchover&lt;\/Event&gt;\n      &lt;OldPrimary&gt;DBIT122_SITE2&lt;\/OldPrimary&gt;\n      &lt;NewPrimary&gt;DBIT122_SITE1&lt;\/New\nPrimary&gt;\n      &lt;Status&gt;0&lt;\/Status&gt;\n      &lt;Timestamp&gt;934018548&lt;\/Timestamp&gt;\n    &lt;\/RoleChangeRecord&gt;\n  &lt;\/RoleChangeHistory&gt;\n  &lt;Member MemberID=\"1\" Name=\"DBIT122_SITE1\" CurrentPath=\"True\" Enabled=\"True\" MultiInstanced=\"True\"&gt;\n    &lt;PlannedState&gt;STANDBY&lt;\/PlannedState&gt;\n    &lt;StandbyRole&gt;PhysicalStandby&lt;\/StandbyRole&gt;\n    &lt;Status&gt;\n      &lt;Severity&gt;Success&lt;\/Severity&gt;\n      &lt;Error&gt;0&lt;\/Error&gt;\n    &lt;\/Status&gt;\n    &lt;DefaultState&gt;PRIMARY&lt;\/DefaultState&gt;\n    &lt;IntendedState&gt;PRIMARY&lt;\/IntendedState&gt;\n    &lt;ResourceType&gt;Database&lt;\/ResourceType&gt;\n    &lt;CurrentState&gt;PRIMARY&lt;\/CurrentState&gt;\n    &lt;Role&gt;\n      &lt;ConditionState&gt;PRIMARY&lt;\/ConditionState&gt;\n      &lt;DefaultState&gt;READ-WRITE-XPTON&lt;\/DefaultState&gt;\n      &lt;IntendedState&gt;READ-WRITE-XPTON&lt;\/IntendedState&gt;\n    &lt;\/Role&gt;\n    &lt;Role&gt;\n      &lt;ConditionState&gt;STANDBY&lt;\/ConditionState&gt;\n      &lt;DefaultState&gt;PHYSICAL-APPLY-ON&lt;\/DefaultState&gt;\n      &lt;IntendedState&gt;OFFLINE&lt;\/IntendedState&gt;\n    &lt;\/Role&gt;\n    &lt;DB_Unique_Name PropertyID=\"23\"&gt;DBIT122_SITE1&lt;\/DB_Unique_Name&gt;\n    &lt;DGConnectIdentifier PropertyID=\"6\"&gt;DBIT122_SITE1&lt;\/DGConnectIdentifier&gt;\n    &lt;DbDomain PropertyID=\"37\"\/&gt;\n    &lt;ClusterDatabase PropertyID=\"42\"&gt;FALSE&lt;\/ClusterDatabase&gt;\n    &lt;DbChangeCritical PropertyID=\"8\"&gt;FALSE&lt;\/DbChangeCritical&gt;\n    &lt;DbIsCritical PropertyID=\"9\"&gt;FALSE&lt;\/DbIsCritical&gt;\n    &lt;LogXptMode PropertyID=\"40\"&gt;SYNC&lt;\/LogXptMode&gt;\n    &lt;IncarnationTable PropertyID=\"57\"&gt;6,2568637,932306696,5*5,2514031,931098817,4#4,2513489,931098453,2#2,1396169,929894741,1#1,1,924281211,0#&lt;\/IncarnationTable&gt;\n    &lt;SRLStatus PropertyID=\"58\"&gt;0&lt;\/SRLStatus&gt;\n    &lt;ActualApplyInstance PropertyID=\"7\"\/&gt;\n    &lt;StandbyFileManagement PropertyID=\"72\"&gt;AUTO&lt;\/StandbyFileManagement&gt;\n    &lt;ArchiveLagTarget PropertyID=\"73\"&gt;0&lt;\/ArchiveLagTarget&gt;\n    &lt;LogArchiveMaxProcesses PropertyID=\"74\"&gt;4&lt;\/LogArchiveMaxProcesses&gt;\n    &lt;LogArchiveMinSucceedDest PropertyID=\"75\"&gt;1&lt;\/LogArchiveMinSucceedDest&gt;\n    &lt;DataGuardSyncLatency PropertyID=\"138\"&gt;0&lt;\/DataGuardSyncLatency&gt;\n    &lt;DbFileNameConvert PropertyID=\"76\"\/&gt;\n    &lt;LogFileNameConvert PropertyID=\"77\"\/&gt;\n    &lt;FastStartFailoverTarget PropertyID=\"38\"&gt;DBIT122_SITE2&lt;\/FastStartFailoverTarget&gt;\n    &lt;ReinstateContextArray PropertyID=\"39\"\/&gt;\n    &lt;Instance InstanceID=\"1\" Name=\"DBIT122\" CurrentPath=\"True\" Enabled=\"True\" MultiInstanced=\"True\" DefaultWriteOnce=\"True\"&gt;\n      &lt;PlannedState&gt;OFFLINE&lt;\/PlannedState&gt;\n      &lt;HostName PropertyID=\"2\" Default=\"True\"&gt;dbidg01&lt;\/HostName&gt;\n      &lt;SidName PropertyID=\"3\"&gt;DBIT122&lt;\/SidName&gt;\n      &lt;InstanceName PropertyID=\"36\"&gt;DBIT122&lt;\/InstanceName&gt;\n      &lt;StaticConnectIdentifier PropertyID=\"25\"&gt;(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=dbidg01)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=DBIT122_SITE1_DGMGRL)(UR=A)(INSTANCE_NAME=DBIT122)(SERVER=DEDICATED)))&lt;\/StaticConnectIdentifier&gt;\n      &lt;StandbyArchiveLocation PropertyID=\"96\" Default=\"True\"&gt;USE_DB_RECOVERY_FILE_DEST&lt;\/StandbyArchiveLocation&gt;\n      &lt;LogArchiveTrace PropertyID=\"98\"&gt;0&lt;\/LogArchiveTrace&gt;\n      &lt;LogArchiveFormat PropertyID=\"99\"&gt;%t_%s_%r.dbf&lt;\/LogArchiveFormat&gt;\n    &lt;\/Instance&gt;\n  &lt;\/Member&gt;\n  &lt;Member MemberID=\"2\" Name=\"DBIT122_SITE2\" CurrentPath=\"True\" Enabled=\"True\" MultiInstanced=\"True\"&gt;\n    &lt;PlannedState&gt;STANDBY&lt;\/PlannedState&gt;\n    &lt;StandbyRole&gt;PhysicalStandby&lt;\/StandbyRole&gt;\n    &lt;Status&gt;\n      &lt;Severity&gt;Success&lt;\/Severity&gt;\n      &lt;Error&gt;0&lt;\/Error&gt;\n    &lt;\/Status&gt;\n    &lt;DefaultState&gt;STANDBY&lt;\/DefaultState&gt;\n    &lt;IntendedState&gt;STANDBY&lt;\/IntendedState&gt;\n    &lt;ResourceType&gt;Database&lt;\/ResourceType&gt;\n    &lt;CurrentState&gt;STANDBY&lt;\/CurrentState&gt;\n    &lt;Role&gt;\n      &lt;ConditionState&gt;PRIMARY&lt;\/ConditionState&gt;\n      &lt;DefaultState&gt;READ-WRITE-XPTON&lt;\/DefaultState&gt;\n      &lt;IntendedState&gt;OFFLINE&lt;\/IntendedState&gt;\n    &lt;\/Role&gt;\n    &lt;Role&gt;\n      &lt;ConditionState&gt;STANDBY&lt;\/ConditionState&gt;\n      &lt;DefaultState&gt;PHYSICAL-APPLY-ON&lt;\/DefaultState&gt;\n      &lt;IntendedState&gt;PHYSICAL-APPLY-ON&lt;\/IntendedState&gt;\n    &lt;\/Role&gt;\n    &lt;DB_Unique_Name PropertyID=\"23\"&gt;DBIT122_SITE2&lt;\/DB_Unique_Name&gt;\n    &lt;DGConnectIdentifier PropertyID=\"6\"&gt;DBIT122_SITE2&lt;\/DGConnectIdentifier&gt;\n    &lt;DbDomain PropertyID=\"37\"\/&gt;\n    &lt;ClusterDatabase PropertyID=\"42\"&gt;FALSE&lt;\/ClusterDatabase&gt;\n    &lt;DbChangeCritical PropertyID=\"8\"&gt;FALSE&lt;\/DbChangeCritical&gt;\n    &lt;DbIsCritical PropertyID=\"9\"&gt;FALSE&lt;\/DbIsC\nritical&gt;\n    &lt;LogXptMode PropertyID=\"40\"&gt;SYNC&lt;\/LogXptMode&gt;\n    &lt;IncarnationTable PropertyID=\"57\"&gt;8,2568637,932306696,4*4,2514031,931098817,3#3,2513489,931098453,2#2,1396169,929894741,1#1,1,924281211,0#&lt;\/IncarnationTable&gt;\n    &lt;SRLStatus PropertyID=\"58\"&gt;0&lt;\/SRLStatus&gt;\n    &lt;ActualApplyInstance PropertyID=\"7\"&gt;DBIT122&lt;\/ActualApplyInstance&gt;\n    &lt;StandbyFileManagement PropertyID=\"72\"&gt;AUTO&lt;\/StandbyFileManagement&gt;\n    &lt;ArchiveLagTarget PropertyID=\"73\"&gt;0&lt;\/ArchiveLagTarget&gt;\n    &lt;LogArchiveMaxProcesses PropertyID=\"74\"&gt;4&lt;\/LogArchiveMaxProcesses&gt;\n    &lt;LogArchiveMinSucceedDest PropertyID=\"75\"&gt;1&lt;\/LogArchiveMinSucceedDest&gt;\n    &lt;DataGuardSyncLatency PropertyID=\"138\"&gt;0&lt;\/DataGuardSyncLatency&gt;\n    &lt;DbFileNameConvert PropertyID=\"76\"\/&gt;\n    &lt;LogFileNameConvert PropertyID=\"77\"\/&gt;\n    &lt;FastStartFailoverTarget PropertyID=\"38\"&gt;DBIT122_SITE1&lt;\/FastStartFailoverTarget&gt;\n    &lt;ReinstateContextArray PropertyID=\"39\"\/&gt;\n    &lt;Instance InstanceID=\"1\" Name=\"DBIT122\" CurrentPath=\"True\" Enabled=\"True\" MultiInstanced=\"True\" DefaultWriteOnce=\"True\"&gt;\n      &lt;PlannedState&gt;OFFLINE&lt;\/PlannedState&gt;\n      &lt;HostName PropertyID=\"2\" Default=\"True\"&gt;dbidg02&lt;\/HostName&gt;\n      &lt;SidName PropertyID=\"3\"&gt;DBIT122&lt;\/SidName&gt;\n      &lt;InstanceName PropertyID=\"36\"&gt;DBIT122&lt;\/InstanceName&gt;\n      &lt;StaticConnectIdentifier PropertyID=\"25\"&gt;(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=dbidg02)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=DBIT122_SITE2_DGMGRL)(UR=A)(INSTANCE_NAME=DBIT122)(SERVER=DEDICATED)))&lt;\/StaticConnectIdentifier&gt;\n      &lt;StandbyArchiveLocation PropertyID=\"96\" Default=\"True\"&gt;USE_DB_RECOVERY_FILE_DEST&lt;\/StandbyArchiveLocation&gt;\n      &lt;LogArchiveTrace PropertyID=\"98\"&gt;0&lt;\/LogArchiveTrace&gt;\n      &lt;LogArchiveFormat PropertyID=\"99\"&gt;%t_%s_%r.dbf&lt;\/LogArchiveFormat&gt;\n    &lt;\/Instance&gt;\n  &lt;\/Member&gt;\n&lt;\/DRC&gt;<\/pre>\n<p>In 12cR2, Oracle put more information into the broker files and that&#8217;s why they are getting bigger. With a standard config they have now 16k instead of 12k like they had before with 12cR1. Ok .. it looks like I am drifting away. Let&#8217;s get back to the original question, how do I recover the broker configuration files, in case they get lost? Like always &#8230; it depends. You could lose the old copy on the standby, you could lose the new copy on the standby, or you could lose both copies on the standby, and you could lose them while the standby is up and running or while it is shutdown. The same applies to the primary. It might get even more complicated in case you have a far sync database in between, or more standby&#8217;s.<\/p>\n<p>Not making it too complex, in the end, we might end up with 6 different recovery scenarios.<\/p>\n<p>1.) We lose the old copy of the broker config file on either the primary or the standby<br \/>\n2.) We lose both copies of the broker config file on the standby while it is up and running<br \/>\n3.) We lose both copies of the broker config file on the standby while it is shut down<br \/>\n4.) We lose both copies of the broker config file on the primary while it is up and running<br \/>\n5.) We lose both copies of the broker config file on the primary while it is shut down<br \/>\n6.) We lose both copies of the broker contfig files on the primary and the standby (quite unlikely to happen)<\/p>\n<p>My demos are built on a simple primary\/standby setup with 12cR1. The primary is on host dbidg01 and the standby is currently on host dbidg02.<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">DGMGRL&gt; show configuration;\n\nConfiguration - DBIT121\n\n  Protection Mode: MaxAvailability\n  Members:\n  DBIT121_SITE1 - Primary database\n    DBIT121_SITE2 - Physical standby database\n\nFast-Start Failover: DISABLED\n\nConfiguration Status:\nSUCCESS   (status updated 2 seconds ago)\n\noracle@dbidg01:\/u01\/app\/oracle\/admin\/DBIT121\/pfile\/ [DBIT121] ls -lh dr*\n-rw-r----- 1 oracle oinstall 12K Feb 28 11:03 dr1DBIT121_SITE1.dat\n-rw-r----- 1 oracle oinstall 12K Feb 28 11:04 dr2DBIT121_SITE1.dat\n\noracle@dbidg02:\/u01\/app\/oracle\/admin\/DBIT121\/pfile\/ [DBIT121] ls -lh dr*\n-rw-r----- 1 oracle oinstall 12K Feb 28 11:04 dr1DBIT121_SITE2.dat\n-rw-r----- 1 oracle oinstall 12K Feb 28 11:03 dr2DBIT121_SITE2.dat<\/pre>\n<h3>Scenario 1.) We lose the old copy of the broker config file on either the primary or the standby<\/h3>\n<p>There is absolutely not need to panic in this case. I am deleting the old copies on the primary and standby at the same time.<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">-- primary\noracle@dbidg01:\/u01\/app\/oracle\/admin\/DBIT121\/pfile\/ [DBIT121] rm dr1DBIT121_SITE1.dat\noracle@dbidg01:\/u01\/app\/oracle\/admin\/DBIT121\/pfile\/ [DBIT121]\n\n-- standby\noracle@dbidg02:\/u01\/app\/oracle\/admin\/DBIT121\/pfile\/ [DBIT121] rm dr2DBIT121_SITE2.dat\noracle@dbidg02:\/u01\/app\/oracle\/admin\/DBIT121\/pfile\/ [DBIT121]<\/pre>\n<p>The broker does not care at all.<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">DGMGRL&gt; show configuration;\n\nConfiguration - DBIT121\n\n  Protection Mode: MaxAvailability\n  Members:\n  DBIT121_SITE1 - Primary database\n    DBIT121_SITE2 - Physical standby database\n\nFast-Start Failover: DISABLED\n\nConfiguration Status:\nSUCCESS   (status updated 57 seconds ago)<\/pre>\n<p>The second copy will be created automatically as soon as I am changing a property. e.g. I am setting the FastStartFailoverThreshold to the same value as it had before.<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">DGMGRL&gt; EDIT CONFIGURATION SET PROPERTY FastStartFailoverThreshold='40';\nProperty \"faststartfailoverthreshold\" updated<\/pre>\n<p>The broker log has no information about the new created file and also the alert.log does not say anything, but automagically we end up with two broker config files after the update was done. So .. nothing to do here. Oracle handles this itself.<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">oracle@dbidg01:\/u01\/app\/oracle\/diag\/rdbms\/dbit121_site1\/DBIT121\/trace\/ [DBIT121] tail -20f drcDBIT121.log\n...\n02\/28\/2017 11:10:25\nEDIT CONFIGURATION SET PROPERTY faststartfailoverthreshold = 40\nFSFO threshold value set to 40 seconds\n\noracle@dbidg01:\/u01\/app\/oracle\/admin\/DBIT121\/pfile\/ [DBIT121] ls -l dr*\n-rw-r----- 1 oracle oinstall 12288 Feb 28 11:10 dr1DBIT121_SITE1.dat\n-rw-r----- 1 oracle oinstall 12288 Feb 28 11:04 dr2DBIT121_SITE1.dat\n\noracle@dbidg02:\/u01\/app\/oracle\/admin\/DBIT121\/pfile\/ [DBIT121] ls -lh dr*\n-rw-r----- 1 oracle oinstall 12K Feb 28 11:04 dr1DBIT121_SITE2.dat\n-rw-r----- 1 oracle oinstall 12K Feb 28 11:10 dr2DBIT121_SITE2.dat<\/pre>\n<p>&nbsp;<\/p>\n<h3>2.) We lose both copies of the broker config file on the standby while it is up and running<\/h3>\n<p>But what happens if I lose both copies on the standby while it is up and running.<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">oracle@dbidg02:\/u01\/app\/oracle\/admin\/DBIT121\/pfile\/ [DBIT121] rm dr*.dat\noracle@dbidg02:\/u01\/app\/oracle\/admin\/DBIT121\/pfile\/ [DBIT121] ls -lh dr*\nls: cannot access dr*: No such file or directory<\/pre>\n<p>I am logging in into the standby database and check the configuration. The broker does not care at all if the files are there or not. It seems like nothing has happend.<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">oracle@dbidg02:\/home\/oracle\/ [DBIT121] dgmgrl -debug -xml\nDGMGRL for Linux: Version 12.1.0.2.0 - 64bit Production\n\nCopyright (c) 2000, 2013, Oracle. All rights reserved.\n\nWelcome to DGMGRL, type \"help\" for information.\nDGMGRL&gt; connect sys\/manager@DBIT121_SITE2\n[W000 02\/28 11:17:00.64] Connecting to database using DBIT121_SITE2.\n[W000 02\/28 11:17:01.72] Checking broker version [BEGIN :version := dbms_drs.dg_broker_info('VERSION'); END;].\n[W000 02\/28 11:17:01.72] Oracle database version is '12.1.0.2.0'\nConnected as SYSDBA.\nDGMGRL&gt; show configuration;\n\nConfiguration - DBIT121\n\n  Protection Mode: MaxAvailability\n  Members:\n  DBIT121_SITE1 - Primary database\n    DBIT121_SITE2 - Physical standby database\n\nFast-Start Failover: DISABLED\n\nConfiguration Status:\nSUCCESS   (status updated 8 seconds ago)<\/pre>\n<p>The broker is reading the information from memory, maybe because of performance reasons. The current state is also reflected in the x$drc.<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">SQL&gt; desc x$drc\n Name                                      Null?    Type\n ----------------------------------------- -------- ----------------------------\n ADDR                                               RAW(8)\n INDX                                               NUMBER\n INST_ID                                            NUMBER\n CON_ID                                             NUMBER\n OBJECT_ID                                          NUMBER\n ATTRIBUTE                                          VARCHAR2(30)\n VALUE                                              VARCHAR2(512)\n PARENT_ID                                          VARCHAR2(15)\n STATUS                                             VARCHAR2(30)\n MESSAGE                                            VARCHAR2(256)\n ERRNUM                                             NUMBER\n VALUE_RAW                                          RAW(512)\n ERRTIME                                            NUMBER<\/pre>\n<p>So &#8230; how do we get the broker files back? \u00a0By simply editing any property. You can choose any property you want.<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">oracle@dbidg02:\/home\/oracle\/ [DBIT121] dgmgrl -debug -xml\nDGMGRL for Linux: Version 12.1.0.2.0 - 64bit Production\n\nCopyright (c) 2000, 2013, Oracle. All rights reserved.\n\nWelcome to DGMGRL, type \"help\" for information.\nDGMGRL&gt; connect sys\/manager@DBIT121_SITE2\n[W000 02\/28 11:27:58.23] Connecting to database using DBIT121_SITE2.\n[W000 02\/28 11:27:59.33] Checking broker version [BEGIN :version := dbms_drs.dg_broker_info('VERSION'); END;].\n[W000 02\/28 11:27:59.33] Oracle database version is '12.1.0.2.0'\nConnected as SYSDBA.\nDGMGRL&gt; EDIT CONFIGURATION SET PROPERTY FastStartFailoverThreshold='40';\n&lt;DO_CONFIGURE_DRC version=\"12.1\"&gt;&lt;EDIT_DRC&gt;&lt;PROPERTY name=\"faststartfailoverthreshold\" value=\"40\" context=\"0\"\/&gt;&lt;\/EDIT_DRC&gt;&lt;\/DO_CONFIGURE_DRC&gt;\n&lt;RESULT &gt;&lt;MESSAGE &gt;&lt;SUCCESS &gt;&lt;\/SUCCESS&gt;&lt;\/MESSAGE&gt;&lt;MESSAGE &gt;&lt;SUCCESS &gt;&lt;\/SUCCESS&gt;&lt;\/MESSAGE&gt;&lt;\/RESULT&gt;\n&lt;RESULT &gt;&lt;MESSAGE &gt;&lt;SUCCESS &gt;&lt;\/SUCCESS&gt;&lt;\/MESSAGE&gt;&lt;MESSAGE &gt;&lt;SUCCESS &gt;&lt;\/SUCCESS&gt;&lt;\/MESSAGE&gt;&lt;\/RESULT&gt;\nProperty \"faststartfailoverthreshold\" updated<\/pre>\n<p>As soon as you have edited your configuration, a new broker file appears on the standby.<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">oracle@dbidg02:\/u01\/app\/oracle\/admin\/DBIT121\/pfile\/ [DBIT121] ls -lh dr*\n-rw-r----- 1 oracle oinstall 12K Feb 28 11:28 dr1DBIT121_SITE2.dat<\/pre>\n<p>If you run the same command again, the second one appears as well.<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">oracle@dbidg02:\/u01\/app\/oracle\/admin\/DBIT121\/pfile\/ [DBIT121] ls -lh dr*\n-rw-r----- 1 oracle oinstall 12K Feb 28 11:28 dr1DBIT121_SITE2.dat\n-rw-r----- 1 oracle oinstall 12K Feb 28 11:30 dr2DBIT121_SITE2.dat<\/pre>\n<p>&nbsp;<\/p>\n<h3>3.) We lose both copies of the broker config file on the standby while it is shut down<\/h3>\n<p>What happens if we lose both copies while the standby is shut down. Does the standby come up correctly? Is there something in the drc.log or alert.log?<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">SQL&gt; shutdown immediate\nDatabase closed.\nDatabase dismounted.\nORACLE instance shut down.\n\noracle@dbidg02:\/u01\/app\/oracle\/admin\/DBIT121\/pfile\/ [DBIT121] rm dr*.dat\noracle@dbidg02:\/u01\/app\/oracle\/admin\/DBIT121\/pfile\/ [DBIT121]\n\nSQL&gt; startup mount\nORACLE instance started.\n\nTotal System Global Area 1325400064 bytes\nFixed Size                  2924112 bytes\nVariable Size             352321968 bytes\nDatabase Buffers          956301312 bytes\nRedo Buffers               13852672 bytes\nDatabase mounted.<\/pre>\n<p>The standby comes up and no entries in the alert.log, however the drc.log shows that the broker files are missing.<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">02\/28\/2017 11:35:26\n&gt;&gt; Starting Data Guard Broker bootstrap &lt;&lt;\nBroker Configuration File Locations:\n      dg_broker_config_file1 = \"\/u01\/app\/oracle\/admin\/DBIT121\/pfile\/dr1DBIT121_SITE2.dat\"\n      dg_broker_config_file2 = \"\/u01\/app\/oracle\/admin\/DBIT121\/pfile\/dr2DBIT121_SITE2.dat\"\n2017-02-28 11:35:26.313                      DMON: Attach state object\n2017-02-28 11:35:26.314                      DMON: cannot open configuration file \"\/u01\/app\/oracle\/admin\/DBIT121\/pfile\/dr1DBIT121_SITE2.dat\", retrying\n2017-02-28 11:35:27.334                      DMON: cannot open configuration file \"\/u01\/app\/oracle\/admin\/DBIT121\/pfile\/dr1DBIT121_SITE2.dat\"\n2017-02-28 11:35:27.334                        ORA-27037: unable to obtain file status\n2017-02-28 11:35:27.335                        Linux-x86_64 Error: 2: No such file or directory\n2017-02-28 11:35:27.335                        Additional information: 3\n2017-02-28 11:35:27.335                      DMON: Error opening \"\/u01\/app\/oracle\/admin\/DBIT121\/pfile\/dr1DBIT121_SITE2.dat\", error = ORA-16572\n2017-02-28 11:35:27.335                      DMON: Establishing \"\/u01\/app\/oracle\/admin\/DBIT121\/pfile\/dr2DBIT121_SITE2.dat\" as the more current file\n2017-02-28 11:35:27.335                      DMON: cannot open configuration file \"\/u01\/app\/oracle\/admin\/DBIT121\/pfile\/dr2DBIT121_SITE2.dat\", retrying\n2017-02-28 11:35:28.355                      DMON: cannot open configuration file \"\/u01\/app\/oracle\/admin\/DBIT121\/pfile\/dr2DBIT121_SITE2.dat\"\n...\n2017-02-28 11:35:42.893                      Configuration does not exist, Data Guard broker ready\n2017-02-28 11:35:42.894 7fffffff           0 DMON: Entered rfm_release_chief_lock() for CTL_BOOTSTRAP\n\n\nDGMGRL&gt; connect sys\/manager@DBIT121_SITE2\n[W000 02\/28 11:38:50.58] Connecting to database using DBIT121_SITE2.\n[W000 02\/28 11:38:51.67] Checking broker version [BEGIN :version := dbms_drs.dg_broker_info('VERSION'); END;].\n[W000 02\/28 11:38:51.68] Oracle database version is '12.1.0.2.0'\nConnected as SYSDBA.\nDGMGRL&gt; show configuration;\nORA-16532: Oracle Data Guard broker configuration does not exist\n\nConfiguration details cannot be determined by DGMGRL\n\n\nSQL&gt; select attribute, value from x$drc;\nselect attribute, value from x$drc\n                             *\nERROR at line 1:\nORA-16532: Oracle Data Guard broker configuration does not exist<\/pre>\n<p>If we logon to the primary, we can see that the standby DBIT121_SITE2 was disabled.<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">oracle@dbidg01:\/u01\/app\/oracle\/admin\/DBIT121\/pfile\/ [DBIT121] dgmgrl -debug -xml\nDGMGRL for Linux: Version 12.1.0.2.0 - 64bit Production\n\nCopyright (c) 2000, 2013, Oracle. All rights reserved.\n\nWelcome to DGMGRL, type \"help\" for information.\nDGMGRL&gt; connect sys\/manager@DBIT121_SITE1\n[W000 02\/28 11:45:40.56] Connecting to database using DBIT121_SITE1.\n[W000 02\/28 11:45:41.68] Checking broker version [BEGIN :version := dbms_drs.dg_broker_info('VERSION'); END;].\n[W000 02\/28 11:45:41.68] Oracle database version is '12.1.0.2.0'\nConnected as SYSDBA.\nDGMGRL&gt; show configuration;\n\nConfiguration - DBIT121\n\n  Protection Mode: MaxAvailability\n  Members:\n  DBIT121_SITE1 - Primary database\n    Warning: ORA-16629: database reports a different protection level from the protection mode\n\n    DBIT121_SITE2 - Physical standby database (disabled)\n\nFast-Start Failover: DISABLED\n\nConfiguration Status:\nWARNING   (status updated 7 seconds ago)<\/pre>\n<p>However, after we enable the standby, we can see in the drc.log that the standby receives the metadata from the primary and creates the broker config file.<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">DGMGRL&gt; enable database 'DBIT121_SITE2';\n&lt;DO_CONTROL version=\"12.1\"&gt;&lt;DO_COMMAND type=\"Enable\" object_id=\"33554432\"\/&gt;&lt;\/DO_CONTROL&gt;\n&lt;RESULT &gt;&lt;MESSAGE &gt;&lt;SUCCESS &gt;&lt;\/SUCCESS&gt;&lt;\/MESSAGE&gt;&lt;MESSAGE &gt;&lt;SUCCESS &gt;&lt;\/SUCCESS&gt;&lt;\/MESSAGE&gt;&lt;\/RESULT&gt;\nEnabled.\nDGMGRL&gt;\n\n\ndrc.log\n\n2017-02-28 11:46:03.352                      DRCX: Start receiving metadata file: \"\/u01\/app\/oracle\/admin\/DBIT121\/pfile\/dr1DBIT121_SITE2.dat\"\n2017-02-28 11:46:03.356                      DRCX: Receiving block #1 (containing Seq.MIV = 2.20), 2 blocks\n2017-02-28 11:46:03.358                      DRCX: End receiving metadata file: opcode CTL_ENABLE (1.1.631286030)\n2017-02-28 11:46:03.360                      DMON: Entered rfm_get_chief_lock() for CTL_ENABLE, reason 1\n2017-02-28 11:46:03.360 02001000   631286030 DMON: start task execution: for metadata resynchronization\n2017-02-28 11:46:03.360 02001000   631286030 DMON: status from posting standby instances for RESYNCH = ORA-00000\n2017-02-28 11:46:03.360                      INSV: Received message for inter-instance publication\n2017-02-28 11:46:03.361                            req ID 1.1.631286030, opcode CTL_ENABLE, phase RESYNCH, flags 8005\n2017-02-28 11:46:03.361 02001000   631286030 DMON: Metadata available (1.1.631286030), loading from \"\/u01\/app\/oracle\/admin\/DBIT121\/pfile\/dr1DBIT121_SITE2.dat\"\n2017-02-28 11:46:03.361 02001000   631286030       Opcode = CTL_ENABLE, Chief Instance I_ID = 1\n2017-02-28 11:46:03.364                      DMON Registering service DBIT121_SITE2_DGB with listener(s)\n2017-02-28 11:46:03.364                      DMON: Executing SQL [ALTER SYSTEM REGISTER]\n2017-02-28 11:46:03.365                      SQL [ALTER SYSTEM REGISTER] Executed successfully\n02\/28\/2017 11:46:06\nCreating process RSM0\n\n\noracle@dbidg02:\/u01\/app\/oracle\/admin\/DBIT121\/pfile\/ [DBIT121] ls -lh dr*\n-rw-r----- 1 oracle oinstall 12K Feb 28 11:46 dr1DBIT121_SITE2.dat<\/pre>\n<p>Again, if you do any property change again, the second broker file will be created.<\/p>\n<h3>4.) We lose both copies of the broker config file on the primary while it is up and running<\/h3>\n<p>There is not much difference with the scenario we have seen with the standby. The broker just reads from memory and as soon as any update to the config is done, the broker file is created again. There will be no entries in the drc.log or the alert.log. The broker file is just silently recreated.<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">oracle@dbidg01:\/u01\/app\/oracle\/admin\/DBIT121\/pfile\/ [DBIT121] rm dr*\noracle@dbidg01:\/u01\/app\/oracle\/admin\/DBIT121\/pfile\/ [DBIT121] ls -lh dr*\nls: cannot access dr*: No such file or directory\n\noracle@dbidg01:\/u01\/app\/oracle\/admin\/DBIT121\/pfile\/ [DBIT121] dgmgrl -debug -xml\nDGMGRL for Linux: Version 12.1.0.2.0 - 64bit Production\n\nCopyright (c) 2000, 2013, Oracle. All rights reserved.\n\nWelcome to DGMGRL, type \"help\" for information.\nDGMGRL&gt; connect sys\/manager\n[W000 02\/28 12:28:45.07] Connecting to database using .\n[W000 02\/28 12:28:45.10] Checking broker version [BEGIN :version := dbms_drs.dg_broker_info('VERSION'); END;].\n[W000 02\/28 12:28:45.10] Oracle database version is '12.1.0.2.0'\nConnected as SYSDG.\nDGMGRL&gt; show configuration;\n\nConfiguration - DBIT121\n\n  Protection Mode: MaxAvailability\n  Members:\n  DBIT121_SITE1 - Primary database\n    DBIT121_SITE2 - Physical standby database\n\nFast-Start Failover: DISABLED\n\nConfiguration Status:\nSUCCESS   (status updated 9 seconds ago)\n\n\nDGMGRL&gt; EDIT CONFIGURATION SET PROPERTY FastStartFailoverThreshold='40';\n&lt;DO_CONFIGURE_DRC version=\"12.1\"&gt;&lt;EDIT_DRC&gt;&lt;PROPERTY name=\"faststartfailoverthreshold\" value=\"40\" context=\"0\"\/&gt;&lt;\/EDIT_DRC&gt;&lt;\/DO_CONFIGURE_DRC&gt;\n&lt;RESULT &gt;&lt;MESSAGE &gt;&lt;SUCCESS &gt;&lt;\/SUCCESS&gt;&lt;\/MESSAGE&gt;&lt;MESSAGE &gt;&lt;SUCCESS &gt;&lt;\/SUCCESS&gt;&lt;\/MESSAGE&gt;&lt;\/RESULT&gt;\n&lt;RESULT &gt;&lt;MESSAGE &gt;&lt;SUCCESS &gt;&lt;\/SUCCESS&gt;&lt;\/MESSAGE&gt;&lt;MESSAGE &gt;&lt;SUCCESS &gt;&lt;\/SUCCESS&gt;&lt;\/MESSAGE&gt;&lt;\/RESULT&gt;\nProperty \"faststartfailoverthreshold\" updated\n\n\noracle@dbidg01:\/u01\/app\/oracle\/admin\/DBIT121\/pfile\/ [DBIT121] ls -lh dr*\n-rw-r----- 1 oracle oinstall 12K Feb 28 12:30 dr2DBIT121_SITE1.dat<\/pre>\n<p>&nbsp;<\/p>\n<h3>5.) We lose both copies of the broker config file on the primary while it is shut down<\/h3>\n<p>Let&#8217;s do the whole thing again while the primary DB is shutdown.<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">SQL&gt; shutdown immediate\nDatabase closed.\nDatabase dismounted.\nORACLE instance shut down.\nSQL&gt;\n\noracle@dbidg01:\/u01\/app\/oracle\/admin\/DBIT121\/pfile\/ [DBIT121] rm dr*\noracle@dbidg01:\/u01\/app\/oracle\/admin\/DBIT121\/pfile\/ [DBIT121] ls -lh dr*\nls: cannot access dr*: No such file or directory<\/pre>\n<p>In the drc.log log file you can immediately see that there is something wrong.<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">&gt;&gt; Starting Data Guard Broker bootstrap &lt;&lt;\nBroker Configuration File Locations:\n      dg_broker_config_file1 = \"\/u01\/app\/oracle\/admin\/DBIT121\/pfile\/dr1DBIT121_SITE1.dat\"\n      dg_broker_config_file2 = \"\/u01\/app\/oracle\/admin\/DBIT121\/pfile\/dr2DBIT121_SITE1.dat\"\n2017-02-28 12:34:45.866                      DMON: Attach state object\n2017-02-28 12:34:45.866                      DMON: cannot open configuration file \"\/u01\/app\/oracle\/admin\/DBIT121\/pfile\/dr1DBIT121_SITE1.dat\", retrying\n2017-02-28 12:34:46.876                      DMON: cannot open configuration file \"\/u01\/app\/oracle\/admin\/DBIT121\/pfile\/dr1DBIT121_SITE1.dat\"\n2017-02-28 12:34:46.880                        ORA-27037: unable to obtain file status\n2017-02-28 12:34:46.881                        Linux-x86_64 Error: 2: No such file or directory\n2017-02-28 12:34:46.881                        Additional information: 3\n2017-02-28 12:34:46.881                      DMON: Error opening \"\/u01\/app\/oracle\/admin\/DBIT121\/pfile\/dr1DBIT121_SITE1.dat\", error = ORA-16572\n2017-02-28 12:34:46.881                      DMON: Establishing \"\/u01\/app\/oracle\/admin\/DBIT121\/pfile\/dr2DBIT121_SITE1.dat\" as the more current file\n2017-02-28 12:34:46.882                      DMON: cannot open configuration file \"\/u01\/app\/oracle\/admin\/DBIT121\/pfile\/dr2DBIT121_SITE1.dat\", retrying\n2017-02-28 12:34:47.899                      DMON: cannot open configuration file \"\/u01\/app\/oracle\/admin\/DBIT121\/pfile\/dr2DBIT121_SITE1.dat\"\n...\n2017-02-28 12:35:02.058 7fffffff           0 DMON: Entered rfm_release_chief_lock() for CTL_BOOTSTRAP\n2017-02-28 12:35:02.424                      Fore: Continuing with primary evaluation, rfmsp.drc_status_rfmp = ORA-16532\n2017-02-28 12:35:03.507                      Fore: Initiating post-open tasks\n2017-02-28 12:35:09.192                      DMON: Initiating post-open tasks\n2017-02-28 12:35:22.242 00000000  1934847279 DMON: GET_FSFO will be retired\n2017-02-28 12:35:22.242 00000000  1934847279       severity = ORA-16501, status = ORA-16532\n2017-02-28 12:35:22.242 00000000  1934847279 DMON: GET_FSFO operation completed\n2017-02-28 12:35:52.250 00000000  1934847280 DMON: GET_FSFO will be retired\n2017-02-28 12:35:52.250 00000000  1934847280       severity = ORA-16501, status = ORA-16532\n2017-02-28 12:35:52.251 00000000  1934847280 DMON: GET_FSFO operation completed<\/pre>\n<p>If you take a look at the alert.log, everything is fine.<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">oracle@dbidg01:\/u01\/app\/oracle\/admin\/DBIT121\/pfile\/ [DBIT121] dgmgrl -debug -xml\nDGMGRL for Linux: Version 12.1.0.2.0 - 64bit Production\n\nCopyright (c) 2000, 2013, Oracle. All rights reserved.\n\nWelcome to DGMGRL, type \"help\" for information.\nDGMGRL&gt; connect sys\/manager@DBIT121_SITE1\n[W000 02\/28 12:39:01.18] Connecting to database using DBIT121_SITE1.\n[W000 02\/28 12:39:02.28] Checking broker version [BEGIN :version := dbms_drs.dg_broker_info('VERSION'); END;].\n[W000 02\/28 12:39:02.28] Oracle database version is '12.1.0.2.0'\nConnected as SYSDBA.\nDGMGRL&gt; show configuration;\nORA-16532: Oracle Data Guard broker configuration does not exist\n\nConfiguration details cannot be determined by DGMGRL<\/pre>\n<p>But if connected to the standby, you will see a clear error message: ORA-16532: Oracle Data Guard broker configuration does not exist.<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">DGMGRL&gt; connect sys\/manager@DBIT121_SITE2\n[W000 02\/28 12:39:18.81] Connecting to database using DBIT121_SITE2.\n[W000 02\/28 12:39:19.90] Checking broker version [BEGIN :version := dbms_drs.dg_broker_info('VERSION'); END;].\n[W000 02\/28 12:39:19.90] Oracle database version is '12.1.0.2.0'\nConnected as SYSDBA.\nDGMGRL&gt; show configuration;\n\nConfiguration - DBIT121\n\n  Protection Mode: MaxAvailability\n  Members:\n  DBIT121_SITE1 - Primary database\n    Error: ORA-16532: Oracle Data Guard broker configuration does not exist\n\n    DBIT121_SITE2 - Physical standby database\n\nFast-Start Failover: DISABLED\n\nConfiguration Status:\nERROR   (status updated 0 seconds ago)<\/pre>\n<p>Taking a close look at the error message, it does not give you a hint how to correct the issue.<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">oracle@dbidg01:\/u01\/app\/oracle\/admin\/DBIT121\/pfile\/ [DBIT121] oerr ora 16532\n16532, 00000, \"Oracle Data Guard broker configuration does not exist\"\n\/\/ *Cause:  A broker operation was requested that required a broker\n\/\/          configuration to already be created.\n\/\/ *Action: Create a Data Guard broker configuration prior to performing\n\/\/          other broker operations. If only one instance of a RAC\n\/\/          database is reporting this error, ensure that the\n\/\/          DG_BROKER_CONFIG_FILE[1|2] initialization parameters are\n\/\/          set to file locations that are shared by all instances of\n\/\/          the RAC database.<\/pre>\n<p>Let&#8217;s try the same trick, as we have done on the standby by simply enabling the database again.<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">DGMGRL&gt; enable database 'DBIT121_SITE1';\n&lt;DO_CONTROL version=\"12.1\"&gt;&lt;DO_COMMAND type=\"Enable\" object_id=\"16777216\"\/&gt;&lt;\/DO_CONTROL&gt;\n&lt;RESULT &gt;&lt;MESSAGE &gt;&lt;FAILURE  error_num=\"16532\" error_prefix=\"ORA\"&gt;&lt;ERROR_TEXT &gt;ORA-16532: Oracle Data Guard broker configuration does not exist\n&lt;\/ERROR_TEXT&gt;&lt;\/FAILURE&gt;&lt;\/MESSAGE&gt;&lt;MESSAGE &gt;&lt;FAILURE  error_num=\"16625\" error_prefix=\"ORA\" error_tag1=\"DBIT121_SITE1\"&gt;&lt;ERROR_TEXT &gt;ORA-16625: cannot reach database &amp;quot;DBIT121_SITE1&amp;quot;\n&lt;\/ERROR_TEXT&gt;&lt;\/FAILURE&gt;&lt;\/MESSAGE&gt;&lt;\/RESULT&gt;\n&lt;RESULT &gt;&lt;MESSAGE &gt;&lt;FAILURE  error_num=\"16532\" error_prefix=\"ORA\"&gt;&lt;ERROR_TEXT &gt;ORA-16532: Oracle Data Guard broker configuration does not exist\n&lt;\/ERROR_TEXT&gt;&lt;\/FAILURE&gt;&lt;\/MESSAGE&gt;&lt;MESSAGE &gt;&lt;FAILURE  error_num=\"16625\" error_prefix=\"ORA\" error_tag1=\"DBIT121_SITE1\"&gt;&lt;ERROR_TEXT &gt;ORA-16625: cannot reach database &amp;quot;DBIT121_SITE1&amp;quot;\n&lt;\/ERROR_TEXT&gt;&lt;\/FAILURE&gt;&lt;\/MESSAGE&gt;&lt;\/RESULT&gt;\nFailed.<\/pre>\n<p>Hmmmm &#8230; does not look good. To recovery from that situation, we need to figure out the latest broker file version on the standby, which is dr2DBIT121_SITE2.dat is my case, and copy it over to the primary. Before doing that, we need to stop the broker on the primary.<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">SQL&gt; alter system set dg_broker_start=false;\n\nSystem altered.<\/pre>\n<p>Now we can copy the latest version over.<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">-- standby\noracle@dbidg02:\/u01\/app\/oracle\/admin\/DBIT121\/pfile\/ [DBIT121] ls -rlth dr*\n-rw-r----- 1 oracle oinstall 12K Feb 28 12:30 dr1DBIT121_SITE2.dat\n-rw-r----- 1 oracle oinstall 12K Feb 28 12:33 dr2DBIT121_SITE2.dat\n\noracle@dbidg02:\/u01\/app\/oracle\/admin\/DBIT121\/pfile\/ [DBIT121] scp -p dr2DBIT121_SITE2.dat oracle@dbidg01:\/u01\/app\/oracle\/admin\/DBIT121\/pfile\/dr1DBIT121_SITE1.dat\ndr2DBIT121_SITE2.dat                                                                          100%   12KB  12.0KB\/s   00:00<\/pre>\n<p>And optionally create the second broker file on the primary.<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">-- primary\noracle@dbidg01:\/u01\/app\/oracle\/admin\/DBIT121\/pfile\/ [DBIT121] cp -p dr1DBIT121_SITE1.dat dr2DBIT121_SITE1.dat\noracle@dbidg01:\/u01\/app\/oracle\/admin\/DBIT121\/pfile\/ [DBIT121]<\/pre>\n<p>Last but not least, we need to enable the broker again.<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">SQL&gt; alter system set dg_broker_start=true;\n\nSystem altered.\n\nDGMGRL&gt; connect sys\/manager@DBIT121_SITE1\nConnected as SYSDBA.\nDGMGRL&gt; show configuration;\n\nConfiguration - DBIT121\n\n  Protection Mode: MaxAvailability\n  Members:\n  DBIT121_SITE1 - Primary database\n    DBIT121_SITE2 - Physical standby database\n\nFast-Start Failover: DISABLED\n\nConfiguration Status:\nSUCCESS   (status updated 7 seconds ago)<\/pre>\n<h3>6.) We lose both copies of the broker config files on the primary and the standby (quite unlikely to happen)<\/h3>\n<p>This scenario is quite unlikely to happen, but if it happens it is good to have your Data Guard configuration as a script in place.<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">-- shutdown primary\nSQL&gt; shutdown immediate\nDatabase closed.\nDatabase dismounted.\nORACLE instance shut down.\n\n-- shutdown standby\nSQL&gt; shutdown immediate\nORA-01109: database not open\nDatabase dismounted.\nORACLE instance shut down.<\/pre>\n<p>Remove the broker files on the primary and the standby<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">-- primary\noracle@dbidg01:\/u01\/app\/oracle\/admin\/DBIT121\/pfile\/ [DBIT121] rm dr*\noracle@dbidg01:\/u01\/app\/oracle\/admin\/DBIT121\/pfile\/ [DBIT121]\n\n-- standby\noracle@dbidg02:\/u01\/app\/oracle\/admin\/DBIT121\/pfile\/ [DBIT121] rm dr*\noracle@dbidg02:\/u01\/app\/oracle\/admin\/DBIT121\/pfile\/ [DBIT121]<\/pre>\n<p>Now, after we have lost everything, meaning all broker config files, the only chance that we have is to create it from scratch. It is quite cool, if you have the configuration is place, because in a blink of an eye you recreate the whole configuration.<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">oracle@dbidg01:\/u01\/app\/oracle\/admin\/DBIT121\/create\/ [DBIT121] cat broker.cfg\nCONNECT SYS\/manager@DBIT121_SITE1\nREMOVE CONFIGURATION;\nsql \"alter system set log_archive_dest_2=''\";\nCREATE CONFIGURATION 'DBIT121' AS\nPRIMARY DATABASE IS 'DBIT121_SITE1'\nCONNECT IDENTIFIER IS 'DBIT121_SITE1';\nADD DATABASE 'DBIT121_SITE2' AS\nCONNECT IDENTIFIER IS 'DBIT121_SITE2';\nEDIT DATABASE 'DBIT121_SITE1' SET PROPERTY StandbyFileManagement='AUTO';\nEDIT DATABASE 'DBIT121_SITE2' SET PROPERTY StandbyFileManagement='AUTO';\nEDIT DATABASE 'DBIT121_SITE1' SET PROPERTY LogXptMode='SYNC';\nEDIT DATABASE 'DBIT121_SITE2' SET PROPERTY LogXptMode='SYNC';\nENABLE CONFIGURATION;\nEDIT CONFIGURATION SET PROTECTION MODE AS MaxAvailability;\nEDIT CONFIGURATION SET PROPERTY FastStartFailoverThreshold='40';\nEDIT DATABASE 'DBIT121_SITE1' SET PROPERTY FastStartFailoverTarget='DBIT121_SITE2';\nEDIT DATABASE 'DBIT121_SITE2' SET PROPERTY FastStartFailoverTarget='DBIT121_SITE1';\nsql \"alter system archive log current\";\nsql \"alter system register\";\nSHOW CONFIGURATION;\n\noracle@dbidg01:\/u01\/app\/oracle\/admin\/DBIT121\/create\/ [DBIT121] dgmgrl -debug -xml &lt; broker.cfg &gt; broker.log 2&gt;&amp;1\noracle@dbidg01:\/u01\/app\/oracle\/admin\/DBIT121\/create\/ [DBIT121]\n\nDGMGRL&gt; show configuration;\n\nConfiguration - DBIT121\n\n  Protection Mode: MaxAvailability\n  Members:\n  DBIT121_SITE1 - Primary database\n    DBIT121_SITE2 - Physical standby database\n\nFast-Start Failover: DISABLED\n\nConfiguration Status:\nSUCCESS   (status updated 2 seconds ago)<\/pre>\n<h3>Conclusion<\/h3>\n<p>Loosing broker configuration files is not the end of the world. As you have seen in the blog, it makes quite a huge difference if you loose the broker file while the DB is up and running or it is shut down. In case you haven&#8217;t lost all of them you can recover them in most of the situations. However, the alert.log is not a good candidate to check if the broker files are missing. So better scan the alert.log and the drc.log with your preferred monitoring tool to get the whole picture. Besides that, it is good practice to adjust your broker.cfg file after you have done some changes because it makes it very easy to rebuild the whole broker config from scratch.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>By William Sescu If you are using RMAN to back up your database, you are already doing the right thing. However, RMAN does not take care of everything. e.g. it is not backing up the following things, to mention just a few. Oracle Home Grid Infrastructure Home Data Guard broker files Password File SQL*Net file [&hellip;]<\/p>\n","protected":false},"author":27,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[229,198],"tags":[221,209],"type_dbi":[],"class_list":["post-9833","post","type-post","status-publish","format-standard","hentry","category-database-administration-monitoring","category-database-management","tag-data-guard","tag-oracle-12c"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Oracle 12c - How to Recover lost DataGuard Broker Configuration Files - dbi Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dbi-services.com\/blog\/oracle-12c-how-to-recover-lost-dataguard-broker-configuration-files\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Oracle 12c - How to Recover lost DataGuard Broker Configuration Files\" \/>\n<meta property=\"og:description\" content=\"By William Sescu If you are using RMAN to back up your database, you are already doing the right thing. However, RMAN does not take care of everything. e.g. it is not backing up the following things, to mention just a few. Oracle Home Grid Infrastructure Home Data Guard broker files Password File SQL*Net file [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/oracle-12c-how-to-recover-lost-dataguard-broker-configuration-files\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2017-02-28T12:53:50+00:00\" \/>\n<meta name=\"author\" content=\"Oracle Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Oracle Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"31 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/oracle-12c-how-to-recover-lost-dataguard-broker-configuration-files\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/oracle-12c-how-to-recover-lost-dataguard-broker-configuration-files\/\"},\"author\":{\"name\":\"Oracle Team\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee\"},\"headline\":\"Oracle 12c &#8211; How to Recover lost DataGuard Broker Configuration Files\",\"datePublished\":\"2017-02-28T12:53:50+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/oracle-12c-how-to-recover-lost-dataguard-broker-configuration-files\/\"},\"wordCount\":1727,\"commentCount\":2,\"keywords\":[\"Data Guard\",\"Oracle 12c\"],\"articleSection\":[\"Database Administration &amp; Monitoring\",\"Database management\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/oracle-12c-how-to-recover-lost-dataguard-broker-configuration-files\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/oracle-12c-how-to-recover-lost-dataguard-broker-configuration-files\/\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/oracle-12c-how-to-recover-lost-dataguard-broker-configuration-files\/\",\"name\":\"Oracle 12c - How to Recover lost DataGuard Broker Configuration Files - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\"},\"datePublished\":\"2017-02-28T12:53:50+00:00\",\"author\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/oracle-12c-how-to-recover-lost-dataguard-broker-configuration-files\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/oracle-12c-how-to-recover-lost-dataguard-broker-configuration-files\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/oracle-12c-how-to-recover-lost-dataguard-broker-configuration-files\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/www.dbi-services.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Oracle 12c &#8211; How to Recover lost DataGuard Broker Configuration Files\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/\",\"name\":\"dbi Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee\",\"name\":\"Oracle Team\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g\",\"caption\":\"Oracle Team\"},\"url\":\"https:\/\/www.dbi-services.com\/blog\/author\/oracle-team\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Oracle 12c - How to Recover lost DataGuard Broker Configuration Files - dbi Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dbi-services.com\/blog\/oracle-12c-how-to-recover-lost-dataguard-broker-configuration-files\/","og_locale":"en_US","og_type":"article","og_title":"Oracle 12c - How to Recover lost DataGuard Broker Configuration Files","og_description":"By William Sescu If you are using RMAN to back up your database, you are already doing the right thing. However, RMAN does not take care of everything. e.g. it is not backing up the following things, to mention just a few. Oracle Home Grid Infrastructure Home Data Guard broker files Password File SQL*Net file [&hellip;]","og_url":"https:\/\/www.dbi-services.com\/blog\/oracle-12c-how-to-recover-lost-dataguard-broker-configuration-files\/","og_site_name":"dbi Blog","article_published_time":"2017-02-28T12:53:50+00:00","author":"Oracle Team","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Oracle Team","Est. reading time":"31 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/oracle-12c-how-to-recover-lost-dataguard-broker-configuration-files\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/oracle-12c-how-to-recover-lost-dataguard-broker-configuration-files\/"},"author":{"name":"Oracle Team","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee"},"headline":"Oracle 12c &#8211; How to Recover lost DataGuard Broker Configuration Files","datePublished":"2017-02-28T12:53:50+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/oracle-12c-how-to-recover-lost-dataguard-broker-configuration-files\/"},"wordCount":1727,"commentCount":2,"keywords":["Data Guard","Oracle 12c"],"articleSection":["Database Administration &amp; Monitoring","Database management"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/oracle-12c-how-to-recover-lost-dataguard-broker-configuration-files\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/oracle-12c-how-to-recover-lost-dataguard-broker-configuration-files\/","url":"https:\/\/www.dbi-services.com\/blog\/oracle-12c-how-to-recover-lost-dataguard-broker-configuration-files\/","name":"Oracle 12c - How to Recover lost DataGuard Broker Configuration Files - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"datePublished":"2017-02-28T12:53:50+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/oracle-12c-how-to-recover-lost-dataguard-broker-configuration-files\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/oracle-12c-how-to-recover-lost-dataguard-broker-configuration-files\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/oracle-12c-how-to-recover-lost-dataguard-broker-configuration-files\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Oracle 12c &#8211; How to Recover lost DataGuard Broker Configuration Files"}]},{"@type":"WebSite","@id":"https:\/\/www.dbi-services.com\/blog\/#website","url":"https:\/\/www.dbi-services.com\/blog\/","name":"dbi Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee","name":"Oracle Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g","caption":"Oracle Team"},"url":"https:\/\/www.dbi-services.com\/blog\/author\/oracle-team\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/9833","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/users\/27"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=9833"}],"version-history":[{"count":0,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/9833\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=9833"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=9833"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=9833"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=9833"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}