{"id":2753,"date":"2019-03-13T13:15:28","date_gmt":"2019-03-13T10:15:28","guid":{"rendered":"https:\/\/sysdba.org\/?p=2753"},"modified":"2019-03-13T13:15:28","modified_gmt":"2019-03-13T10:15:28","slug":"installing-10g-r2-data-guard","status":"publish","type":"post","link":"https:\/\/sysdba.org\/en\/installing-10g-r2-data-guard\/","title":{"rendered":"Installing 10G R2 Data Guard"},"content":{"rendered":"<p>This article describes the setup of the DataGuard and Observer, in Maxavailability mode and with Fail Over about to be activated.<\/p>\n<p>&nbsp;<\/p>\n<p>If there&#8217;s going to be a Standby setup in a operational Data Guard environment th<span style=\"font-size: 14.3999996185303px; line-height: 18.7199993133545px;\">en the standby logs need to be checked<\/span><\/p>\n<p>&nbsp;<\/p>\n<p>For large databases it is recommended starting up before opening the backup settings.<\/p>\n<p>Adding the following aliases to <strong><span style=\"font-size: 14px; line-height: 18.2000007629395px;\">\/home\/oracle\/.bash_profile<\/span><\/strong><span style=\"font-size: 14px; line-height: 18.2000007629395px;\"> makes the installation process easier.<\/span><br \/>\n[crayon]alias oh=&#8217;cd \/u01\/app\/oracle\/product\/10g&#8217;<\/p>\n<p>alias admin=&#8217;cd \/u01\/app\/oracle\/admin\/&#8217;<\/p>\n<p>alias dbs=&#8217;cd \/u01\/app\/oracle\/product\/10g\/dbs&#8217;<\/p>\n<p>alias sql=&#8217;sqlplus &#8220;\/ as sysdba&#8221;&#8216;<\/p>\n<p>alias network=&#8217;cd \/u01\/app\/oracle\/product\/10g\/network\/admin&#8217;<\/p>\n<p>alias alert=&#8217;tail -200f \/u01\/app\/oracle\/admin\/FSM\/bdump\/alert_FSM.log &#8216;[\/crayon]<\/p>\n<h2>Step 1.<\/h2>\n<p>The Primary DB should be in Archive Log mode.<br \/>\n[crayon]alter system set log_archive_dest_1=&#8217;LOCATION=\/u01\/app\/oracle\/archive\/FSM&#8217; SCOPE=spfile;<\/p>\n<p>alter system set LOG_ARCHIVE_FORMAT=&#8217;%t_%s_%r.arc&#8217; scope=spfile;<\/p>\n<p>shutdown immediate<\/p>\n<p>startup mount<\/p>\n<p>alter database archivelog<\/p>\n<p>[\/crayon]<\/p>\n<h2><strong>Step 2.<\/strong><\/h2>\n<p>Primary DB should have Flashback active.<br \/>\n[crayon]shutdown immediate;<\/p>\n<p>startup mount;<\/p>\n<p>alter database flashback on;<\/p>\n<p>alter database open;<\/p>\n<p>SELECT flashback_on, log_mode FROM v$database;<\/p>\n<p>SELECT flashback_on, log_mode FROM v$database;<\/p>\n<p>FLASHBACK_ON LOG_MODE<\/p>\n<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<\/p>\n<p>YES ARCHIVELOG<\/p>\n<p>[\/crayon]<\/p>\n<h2><strong>Step 3.<\/strong><\/h2>\n<p>[crayon]Force Logging should be active.<\/p>\n<p>ALTER DATABASE FORCE LOGGING;<\/p>\n<p>SELECT force_logging FROM v$database;<\/p>\n<p>FOR<\/p>\n<p>&#8212;<\/p>\n<p>YES<\/p>\n<p>[\/crayon]<\/p>\n<h2><strong>Step 4.<\/strong><\/h2>\n<p>Standby DB.<\/p>\n<p>Load only the RDBMS and patches. The standby db has the same rights and folder ownership as the Primary, however it hasn&#8217;t been created yet.<\/p>\n<p><strong>Primary<\/strong><\/p>\n<p>Oracle_Unique_Name FSM_DG1<\/p>\n<p><strong>Standby<\/strong><\/p>\n<p>Oracle_Unique_Name FSM_DG2<\/p>\n<p>&nbsp;<\/p>\n<h2><strong>Step 5.<\/strong><\/h2>\n<p>Create the Standby Redologs in the Primary. (Whatever has been added to the Primary should also be added to the Standby.)<br \/>\n[crayon]Drop StandBy Log<\/p>\n<p>ALTER DATABASE DROP STANDBY LOGFILE GROUP 5;<\/p>\n<p>ALTER DATABASE DROP STANDBY LOGFILE GROUP 6;<\/p>\n<p>ALTER DATABASE DROP STANDBY LOGFILE GROUP 7;<\/p>\n<p>ALTER DATABASE DROP STANDBY LOGFILE GROUP 8;<\/p>\n<p>ALTER DATABASE DROP STANDBY LOGFILE GROUP 9;<\/p>\n<p>&#8212; adding a single standby log<\/p>\n<p>ALTER DATABASE ADD STANDBY LOGFILE (&#8216;\/u02\/app\/oracle\/oradata\/FSM\/stdby_log01_1.log&#8217;) SIZE 100M reuse;<\/p>\n<p>ALTER DATABASE ADD STANDBY LOGFILE (&#8216;\/u02\/app\/oracle\/oradata\/FSM\/stdby_log02_1.log&#8217;) SIZE 100M reuse;<\/p>\n<p>ALTER DATABASE ADD STANDBY LOGFILE (&#8216;\/u02\/app\/oracle\/oradata\/FSM\/stdby_log03_1.log&#8217;) SIZE 100M reuse;<\/p>\n<p>ALTER DATABASE ADD STANDBY LOGFILE (&#8216;\/u02\/app\/oracle\/oradata\/FSM\/stdby_log04_1.log&#8217;) SIZE 100M reuse;<\/p>\n<p>ALTER DATABASE ADD STANDBY LOGFILE (&#8216;\/u02\/app\/oracle\/oradata\/FSM\/stdby_log05_1.log&#8217;) SIZE 100M reuse;<\/p>\n<p>&#8212; adding a multi-user standby log<\/p>\n<p>ALTER DATABASE ADD STANDBY LOGFILE (&#8216;\/u02\/app\/oracle\/oradata\/FSM\/stdby_log01_1.log&#8217;,&#8217;\/u02\/app\/oracle\/oradata\/FSM\/stdby_log01_2.log&#8217;) SIZE 100M reuse;<\/p>\n<p>ALTER DATABASE ADD STANDBY LOGFILE (&#8216;\/u02\/app\/oracle\/oradata\/FSM\/stdby_log02_1.log&#8217;,&#8217;\/u02\/app\/oracle\/oradata\/FSM\/stdby_log02_2.log&#8217;) SIZE 100M reuse;<\/p>\n<p>ALTER DATABASE ADD STANDBY LOGFILE (&#8216;\/u02\/app\/oracle\/oradata\/FSM\/stdby_log03_1.log&#8217;,&#8217;\/u02\/app\/oracle\/oradata\/FSM\/stdby_log03_2.log&#8217;) SIZE 100M reuse;<\/p>\n<p>ALTER DATABASE ADD STANDBY LOGFILE (&#8216;\/u02\/app\/oracle\/oradata\/FSM\/stdby_log04_1.log&#8217;,&#8217;\/u02\/app\/oracle\/oradata\/FSM\/stdby_log04_2.log&#8217;) SIZE 100M reuse;<\/p>\n<p>ALTER DATABASE ADD STANDBY LOGFILE (&#8216;\/u02\/app\/oracle\/oradata\/FSM\/stdby_log05_1.log&#8217;,&#8217;\/u02\/app\/oracle\/oradata\/FSM\/stdby_log05_2.log&#8217;) SIZE 100M reuse;<\/p>\n<p>[\/crayon]<\/p>\n<h2>Step 6.<\/h2>\n<p>The following changes need to be made in the Primary DB&#8217;s pfile. These changes should then be copied to a spfile and the database opened with the spfile.<br \/>\n[crayon]SALTER SYSTEM SET DB_UNIQUE_NAME=&#8217;FSM_DG1&#8242; SCOPE=SPFILE; +<\/p>\n<p>ALTER SYSTEM SET FAL_CLIENT=&#8217;FSM_DG1&#8242; SCOPE=SPFILE;<\/p>\n<p>ALTER SYSTEM SET FAL_SERVER=&#8217;FSM_DG2&#8242; SCOPE=SPFILE;<\/p>\n<p>ALTER SYSTEM SET Log_archive_config=&#8217;DG_CONFIG=(FSM_DG1,FSM_DG2)&#8217; SCOPE=SPFILE;<\/p>\n<p>Alter system set Log_archive_dest_1=&#8217;LOCATION=\/u01\/app\/oracle\/archive\/FSM<\/p>\n<p>VALID_FOR=(ALL_LOGFILES,ALL_ROLES)<\/p>\n<p>db_unique_name=FSM_DG1&#8242;<\/p>\n<p>Alter system set Log_archive_dest_2=&#8217;Service=FSM_DG2 lgwr async<\/p>\n<p>VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)<\/p>\n<p>db_unique_name=FSM_DG2&#8242;<\/p>\n<p>Alter system set Standby_File_Management=&#8217;AUTO&#8217; scope=spfile;<\/p>\n<p>Alter system set LOG_ARCHIVE_MAX_PROCESSES=30 scope=spfile;<\/p>\n<p>shutdown immediate<\/p>\n<p>startup<\/p>\n<p>[\/crayon]<br \/>\nThe same, but creating a new pfile instead.<br \/>\n[crayon]*.db_name=&#8217;FSM&#8217;<\/p>\n<p>*.db_unique_name=&#8217;FSM_DG1&#8242;<\/p>\n<p>*.FAL_Client=&#8217;FSM_DG1&#8242; &#8212;&#8211;&gt;Primary DB unique name<\/p>\n<p>*.FAL_Server=&#8217;FSM_DG2&#8242; &#8212;&#8211;&gt;StandBY DB unique name<\/p>\n<p>*.Log_archive_config=&#8217;DG_CONFIG=(FSM_DG1,FSM_DG2)&#8217; &#8212;&#8211;&gt; (Primary DB unique name,StandBY DB unique name)<\/p>\n<p>*.Log_archive_dest_1=&#8217;LOCATION=\/u01\/app\/oracle\/archive\/FSM<\/p>\n<p>VALID_FOR=(ALL_LOGFILES,ALL_ROLES)<\/p>\n<p>db_unique_name=FSM_DG1&#8242; &#8212;&#8211;&gt; (Primary DB unique name,StandBY DB unique name)<\/p>\n<p>*.Log_archive_dest_2=&#8217;Service=FSM_DG2 lgwr async &#8212;&#8211;&gt;(StandBY DB unique name)<\/p>\n<p>VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)<\/p>\n<p>db_unique_name=FSM_DG2&#8242; &#8212;&#8211;&gt;(StandBY DB unique name)<\/p>\n<p>*.Log_archive_dest_state_1=&#8217;ENABLE&#8217;<\/p>\n<p>*.Log_archive_dest_state_2=&#8217;ENABLE&#8217;<\/p>\n<p>*.Standby_File_Management=&#8217;AUTO&#8217;<\/p>\n<p>*.LOG_ARCHIVE_MAX_PROCESSES=30[\/crayon]<\/p>\n<h2>Step 7.<\/h2>\n<p>Make the necessary folders in the Standby DB. Any missing folders would result in this error message &#8220;ORA-07446: sdnfy: bad value &#8221; for parameter&#8221;.<br \/>\n[crayon]mkdir -p \/u01\/app\/oracle\/admin\/FSM\/adump<\/p>\n<p>mkdir -p \/u01\/app\/oracle\/admin\/FSM\/bdump<\/p>\n<p>mkdir -p \/u01\/app\/oracle\/admin\/FSM\/cdump<\/p>\n<p>mkdir -p \/u01\/app\/oracle\/admin\/FSM\/udump<\/p>\n<p>mkdir -p \/u01\/app\/oracle\/archive\/FSM<\/p>\n<p>[\/crayon]<\/p>\n<h2>Step 8.<\/h2>\n<p>Creating the following pfile for the StandBy. Make it in the Primary and send it to<strong> $ORACLE_HOME\/dbs<\/strong> in the Standby.<br \/>\n[crayon]create pfile from spfile ;<\/p>\n<p>scp initFSM.ora sdb:\/u01\/app\/oracle\/product\/10g\/dbs\/<\/p>\n<p>[\/crayon]<\/p>\n<h2>Step 9.<\/h2>\n<p>Make the following changes in <strong>initFSM.ora<\/strong> in the Standby server.<br \/>\n[crayon]*.db_name=&#8217;FSM&#8217;<\/p>\n<p>*.db_unique_name=&#8217;FSM_DG2&#8242;<\/p>\n<p>*.FAL_Client=&#8217;FSM_DG2&#8242; &#8212;&#8211;&gt;StandBY DB unique name<\/p>\n<p>*.FAL_Server=&#8217;FSM_DG1&#8242; &#8212;&#8211;&gt;Primary DB unique name<\/p>\n<p>[\/crayon]<\/p>\n<p>[crayon]*.Log_archive_config=&#8217;DG_CONFIG=(FSM_DG1,FSM_DG2)&#8217; &#8212;&#8211;&gt; (Primary DB unique name,StandBY DB unique name)<\/p>\n<p>*.Log_archive_dest_1=&#8217;LOCATION=\/u01\/app\/oracle\/archive\/FSM<\/p>\n<p>VALID_FOR=(ALL_LOGFILES,ALL_ROLES)<\/p>\n<p>db_unique_name=FSM_DG2&#8242; &#8212;&#8211;&gt; (Primary DB unique name,StandBY DB unique name)<\/p>\n<p>[\/crayon]<\/p>\n<p>[crayon]*.Log_archive_dest_2=&#8217;Service=FSM_DG1 lgwr async &#8212;&#8211;&gt;StandBY DB unique name<\/p>\n<p>VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)<\/p>\n<p>db_unique_name=FSM_DG1&#8242; &#8212;&#8211;&gt;StandBY DB unique name<\/p>\n<p>[\/crayon]<\/p>\n<p>[crayon]*.Log_archive_dest_state_1=&#8217;ENABLE&#8217;<\/p>\n<p>*.Log_archive_dest_state_2=&#8217;ENABLE&#8217;<\/p>\n<p>*.Standby_File_Management=&#8217;AUTO&#8217;<\/p>\n<p>*.LOG_ARCHIVE_MAX_PROCESSES=30<\/p>\n<p>[\/crayon]<\/p>\n<h2>Step 10.<\/h2>\n<p>Opening the Standby DB in nomount mode.<br \/>\n[crayon]$sqlplus \/ as sysdba<\/p>\n<p>create spfile from pfile;<\/p>\n<p>startup nomount<\/p>\n<p>[\/crayon]<\/p>\n<h2>Step 11.<\/h2>\n<p>Make a password file in the standby (the sys password should be the same as in the Primary).<br \/>\n[crayon]\/u01\/app\/oracle\/product\/10g\/bin\/orapwd file=$ORACLE_HOME\/dbs\/orapwFSM password=sys<\/p>\n<p>[\/crayon]<\/p>\n<h2>Step 12.<\/h2>\n<p>Making a backup of the Primary using RMAN. The RMAN backup should be sent to the Standby (in the same location as it is in the Primary).<br \/>\n[crayon]$rman target \/<\/p>\n<p>run {<\/p>\n<p>BACKUP CURRENT CONTROLFILE FOR STANDBY format &#8216;\/u02\/backup\/standbyctl&#8217; ;<\/p>\n<p>ALLOCATE CHANNEL C1 TYPE DISK MAXPIECESIZE 15G;<\/p>\n<p>BACKUP AS COMPRESSED BACKUPSET DATABASE FORMAT &#8216;\/u02\/BACKUP\/DBF_%D_%U_%S_%P.RMAN&#8217; TAG=&#8217;RMAN_FULLYEDEK_FOR_STANDBY&#8217;;<\/p>\n<p>BACKUP DATABASE PLUS ARCHIVELOG;<\/p>\n<p>RELEASE CHANNEL C1;<\/p>\n<p>}<\/p>\n<p>[\/crayon]<br \/>\nAlternatively<\/p>\n<p>&nbsp;<br \/>\n[crayon]<br \/>\nrun<\/p>\n<p>{<\/p>\n<p>BACKUP CURRENT CONTROLFILE FOR STANDBY format &#8216;\/u02\/backup\/standbyctl&#8217; ;<\/p>\n<p>ALLOCATE CHANNEL C1 DEVICE TYPE DISK MAXPIECESIZE 15G;<\/p>\n<p>BACKUP DATABASE FORMAT &#8216;\/u02\/BACKUP\/DBF_%U_%D_%S_%P&#8217;TAG=&#8217;RMAN_FULLYEDEK_FOR_STANDBY&#8217;;;<\/p>\n<p>BACKUP DATABASE PLUS ARCHIVELOG;<\/p>\n<p>RELEASE CHANNEL C1;<\/p>\n<p>}<br \/>\n[\/crayon]<br \/>\n&nbsp;<\/p>\n<p>The backup should be copied to the <strong>\/u02\/backup<\/strong> path in the Standby. If copying the backup is going to take a long time, start the NFS (Network File System) service and then mount, this will save the trouble of copying.<\/p>\n<p>&nbsp;<\/p>\n<p>[crayon]<\/p>\n<p>mount -o rw,bg,hard,rsize=32768,wsize=32768,vers=3,nointr,timeo=600,tcp PrimaryDB_IP:\/u02\/backup \/u02\/backup<\/p>\n<p>[\/crayon]<\/p>\n<p>&nbsp;<\/p>\n<h2>Step 13.<\/h2>\n<p>The RMAN backup should be restored in the standby. To do this, in the Primary DB :<\/p>\n<p>&nbsp;<\/p>\n<p>[crayon]<br \/>\nrman target \/ auxiliary sys\/sys@FSM_DG2<\/p>\n<p>DUPLICATE TARGET DATABASE FOR STANDBY NOFILENAMECHECK;<\/p>\n<p>[\/crayon]<br \/>\n<strong>tail -f<\/strong> outputs the alertlog dump.<\/p>\n<h2>Step 14.<\/h2>\n<p>Creating the redo logs in the Standby (be careful with the file sizes).<\/p>\n<p>&nbsp;<br \/>\n[crayon]<br \/>\nselect bytes from v$log;<\/p>\n<p>select bytes\/1048576 as MB from v$log;<\/p>\n<p>select group#, member from v$logfile ;<\/p>\n<p>col member format a70<\/p>\n<p>set lines 132<\/p>\n<p>set trims on<\/p>\n<p>select group#,type,member from v$logfile order by type;<\/p>\n<p>[\/crayon]<br \/>\n&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>Drop StandBy Log<br \/>\n[crayon]<br \/>\nALTER DATABASE DROP STANDBY LOGFILE GROUP 5;<\/p>\n<p>ALTER DATABASE DROP STANDBY LOGFILE GROUP 6;<\/p>\n<p>ALTER DATABASE DROP STANDBY LOGFILE GROUP 7;<\/p>\n<p>ALTER DATABASE DROP STANDBY LOGFILE GROUP 8;<\/p>\n<p>ALTER DATABASE DROP STANDBY LOGFILE GROUP 9;<br \/>\n[\/crayon]<br \/>\n&#8212; adding a single standby log<\/p>\n<p>[crayon]<br \/>\nALTER DATABASE ADD STANDBY LOGFILE (&#8216;\/u02\/app\/oracle\/oradata\/FSM\/stdby_log01_1.log&#8217;) SIZE 100M reuse;<\/p>\n<p>ALTER DATABASE ADD STANDBY LOGFILE (&#8216;\/u02\/app\/oracle\/oradata\/FSM\/stdby_log02_1.log&#8217;) SIZE 100M reuse;<\/p>\n<p>ALTER DATABASE ADD STANDBY LOGFILE (&#8216;\/u02\/app\/oracle\/oradata\/FSM\/stdby_log03_1.log&#8217;) SIZE 100M reuse;<\/p>\n<p>ALTER DATABASE ADD STANDBY LOGFILE (&#8216;\/u02\/app\/oracle\/oradata\/FSM\/stdby_log04_1.log&#8217;) SIZE 100M reuse;<\/p>\n<p>ALTER DATABASE ADD STANDBY LOGFILE (&#8216;\/u02\/app\/oracle\/oradata\/FSM\/stdby_log05_1.log&#8217;) SIZE 100M reuse;<br \/>\n[\/crayon]<\/p>\n<p>&nbsp;<\/p>\n<p>&#8212; adding a multi-user standby log<\/p>\n<p>[crayon]<br \/>\nALTER DATABASE ADD STANDBY LOGFILE (&#8216;\/u02\/app\/oracle\/oradata\/FSM\/stdby_log01_1.log&#8217;,&#8217;\/u02\/app\/oracle\/oradata\/FSM\/stdby_log01_2.log&#8217;) SIZE 100M reuse;<\/p>\n<p>ALTER DATABASE ADD STANDBY LOGFILE (&#8216;\/u02\/app\/oracle\/oradata\/FSM\/stdby_log02_1.log&#8217;,&#8217;\/u02\/app\/oracle\/oradata\/FSM\/stdby_log02_2.log&#8217;) SIZE 100M reuse;<\/p>\n<p>ALTER DATABASE ADD STANDBY LOGFILE (&#8216;\/u02\/app\/oracle\/oradata\/FSM\/stdby_log03_1.log&#8217;,&#8217;\/u02\/app\/oracle\/oradata\/FSM\/stdby_log03_2.log&#8217;) SIZE 100M reuse;<\/p>\n<p>ALTER DATABASE ADD STANDBY LOGFILE (&#8216;\/u02\/app\/oracle\/oradata\/FSM\/stdby_log04_1.log&#8217;,&#8217;\/u02\/app\/oracle\/oradata\/FSM\/stdby_log04_2.log&#8217;) SIZE 100M reuse;<\/p>\n<p>ALTER DATABASE ADD STANDBY LOGFILE (&#8216;\/u02\/app\/oracle\/oradata\/FSM\/stdby_log05_1.log&#8217;,&#8217;\/u02\/app\/oracle\/oradata\/FSM\/stdby_log05_2.log&#8217;) SIZE 100M reuse;<br \/>\n[\/crayon]<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<h2>Step 15.<\/h2>\n<p>To apply the redos, created in the Primary, to the Standby:<\/p>\n<p>&nbsp;<br \/>\n[crayon]<br \/>\nalter database recover managed standby database disconnect from session;<br \/>\n[\/crayon]<\/p>\n<p>&nbsp;<\/p>\n<p>To check, in the Primary:<\/p>\n<p>&nbsp;<br \/>\n[crayon]<br \/>\nselect thread#,max(sequence#) from v$archived_log where archived=&#8217;YES&#8217; group by thread#;<br \/>\n[\/crayon]<\/p>\n<p>&nbsp;<\/p>\n<p>In the Standby:<\/p>\n<p>&nbsp;<\/p>\n<p>[crayon]select thread#,max(sequence#) from v$archived_log where applied =&#8217;YES&#8217; group by thread#;<br \/>\n[\/crayon]<\/p>\n<p>&nbsp;<\/p>\n<p><strong>REDO APPLY<\/strong><\/p>\n<p>&nbsp;<\/p>\n<p>[crayon]<br \/>\nalter database recover managed standby database disconnect;<br \/>\n[\/crayon]<\/p>\n<p>&nbsp;<br \/>\n<strong>REDO APPLY USING REAL-TIME APPLY<\/strong><\/p>\n<p>&nbsp;<br \/>\n[crayon]<br \/>\nalter database recover managed standby database using current logfile disconnect;<br \/>\n[\/crayon]<br \/>\n&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>This can done manually without making an RMAN duplicate. Put the Primary DB into Mount mode, create a control file for the Standby and copy to the original paths using the same names.<\/p>\n<p>The same procedure should be applied for both the datafiles and log files.<\/p>\n<p>[crayon]SELECT SWITCHOVER_STATUS,PROTECTION_MODE,DATABASE_ROLE from v$database;[\/crayon]<br \/>\nPRIMARY<\/p>\n<p>[crayon]SELECT SEQUENCE#, FIRST_TIME, NEXT_TIME FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;[\/crayon]<br \/>\nSTANDBY<\/p>\n<p>[crayon]SELECT SEQUENCE#, APPLIED FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;[\/crayon]<\/p>\n<p>[crayon]<\/p>\n<p>column &#8220;First Time&#8221; format A40column applied format A10<\/p>\n<p>column &#8220;Next Time&#8221; format A40<\/p>\n<p>set linesize 120<\/p>\n<p>set pagesize 1000<\/p>\n<p>select thread#, sequence#, applied,<\/p>\n<p>to_char(first_time,&#8217;DD-MON-YY:HH24:MI:SS&#8217;) &#8220;First Time&#8221;,<\/p>\n<p>to_char(next_time,&#8217;DD-MON-YY:HH24:MI:SS&#8217;) &#8220;Next Time&#8221;<\/p>\n<p>from v$archived_log<\/p>\n<p>UNION<\/p>\n<p>select NULL,NULL,&#8217; &#8216;,NULL,null FROM DUAL<\/p>\n<p>UNION<\/p>\n<p>select null,null,<\/p>\n<p>db_unique_name,<\/p>\n<p>database_role,<\/p>\n<p>open_mode<\/p>\n<p>from v$database<\/p>\n<p>\/<\/p>\n<p>[\/crayon]<br \/>\nChecking the Standby&#8217;s Archive destination from the Primary DB<\/p>\n<p>[crayon]<\/p>\n<p>Select Status, Errorfrom v$Archive_dest<\/p>\n<p>where dest_id=2;<br \/>\n[\/crayon]<br \/>\nThe Redo Switch frequency<\/p>\n<p>[crayon]<\/p>\n<p>COL DAY FORMAT a15;COL HOUR FORMAT a4;<\/p>\n<p>COL TOTAL FORMAT 999;<\/p>\n<p>SELECT TO_CHAR(FIRST_TIME,&#8217;YYYY-MM-DD&#8217;) DAY,<\/p>\n<p>TO_CHAR(FIRST_TIME,&#8217;HH24&#8242;) HOUR,<\/p>\n<p>COUNT(*) TOTAL<\/p>\n<p>FROM V$LOG_HISTORY<\/p>\n<p>GROUP BY TO_CHAR(FIRST_TIME,&#8217;YYYY-MM-DD&#8217;),TO_CHAR(FIRST_TIME,&#8217;HH24&#8242;)<\/p>\n<p>ORDER BY TO_CHAR(FIRST_TIME,&#8217;YYYY-MM-DD&#8217;),TO_CHAR(FIRST_TIME,&#8217;HH24&#8242;)<\/p>\n<p>ASC;<\/p>\n<p>[\/crayon]<br \/>\nIf there are any idle archivelogs<\/p>\n<p>[crayon]select * from v$archive_gap;[\/crayon]<br \/>\n[crayon]<\/p>\n<p>SELECT nameFROM v$archived_log<\/p>\n<p>WHERE thread# = 1<\/p>\n<p>AND dest_id = 1<\/p>\n<p>AND sequence# BETWEEN Low_Sequence and High_Sequence;<\/p>\n<p>[\/crayon]<br \/>\nCopy missing archivelogs from the Primary to the Standby<\/p>\n<p>[crayon]<\/p>\n<p>ALTER DATABASE REGISTER LOGFILE &#8216;\/u02\/app\/oracle\/archive\/FSM\/arc_38792_5711453.log&#8217;;ALTER DATABASE REGISTER LOGFILE &#8216;\/u02\/app\/oracle\/archive\/FSM\/arc_38793_5711453.log&#8217;;<\/p>\n<p>ALTER DATABASE REGISTER LOGFILE &#8216;\/u02\/app\/oracle\/archive\/FSM\/arc_38794_5711453.log&#8217;;<\/p>\n<p>[\/crayon]<br \/>\nFlashback needs to be active for MAXAVAILABILITY.<\/p>\n<p>[crayon]<\/p>\n<p>SELECT flashback_on, log_mode FROM v$database;whilst in mount mode<\/p>\n<p>alter database flashback on;<\/p>\n<p>[\/crayon]<br \/>\nBoth in the Primary and the Standby run<\/p>\n<p>[crayon]Alter system set dg_broker_start=True scope=both;[\/crayon]<br \/>\n<span style=\"font-size: 14.3999996185303px; line-height: 18.7199993133545px;\">Check that machine is running the observer process<\/span><\/p>\n<p>[crayon]select FS_FAILOVER_OBSERVER_HOST from v$database;[\/crayon]<\/p>\n<p>[crayon]Check that machine is running the observer process[\/crayon]<\/p>\n<p>[crayon]<\/p>\n<p>show configuration verboseSHOW DATABASE &#8216;FSM_DG2&#8217;;<\/p>\n<p>SHOW DATABASE &#8216;FSM_DG1&#8217;;<\/p>\n<p>SHOW DATABASE VERBOSE &#8216;FSM_DG1&#8217;;<\/p>\n<p>SHOW DATABASE VERBOSE &#8216;FSM_DG2&#8217;;<\/p>\n<p>SHOW INSTANCE FSM_DG1;<\/p>\n<p>SHOW INSTANCE VERBOSE FSM_DG1;<\/p>\n<p>SHOW INSTANCE FSM_DG1 &#8216;TopWaitEvents&#8217;;<\/p>\n<p>[\/crayon]<\/p>\n<h3>Primary<\/h3>\n<p>db_name&#8212;&#8212;&#8212;&#8212;-&gt;FSM<\/p>\n<p>db_unique_name&#8212;&#8212;&gt;FSM_DG1<\/p>\n<p>&nbsp;<\/p>\n<h3>StandBy<\/h3>\n<p>db_name&#8212;&#8212;&#8212;&#8212;-&gt;FSM<\/p>\n<p>db_unique_name&#8212;&#8212;&gt;FSM_DG2<\/p>\n<p>&nbsp;<\/p>\n<h3>log<\/h3>\n<p>tail -300f \/u01\/app\/oracle\/admin\/FSM\/bdump\/drcFSM.log |more<\/p>\n<p>&nbsp;<\/p>\n<p>Connecting to the Primary<\/p>\n<p>[crayon]<\/p>\n<p>connect sys\/sys@FSM_DG1&gt;<\/p>\n<p>show configuration verbose<\/p>\n<p>CREATE CONFIGURATION FSM_BROKER as PRIMARY DATABASE IS &#8220;FSM_DG1&#8221; CONNECT IDENTIFIER IS &#8220;FSM_DG1&#8221;;<\/p>\n<p>ADD DATABASE &#8220;FSM_DG2&#8221; AS CONNECT IDENTIFIER IS &#8220;FSM_DG2&#8221; MAINTAINED AS PHYSICAL ;<\/p>\n<p>show configuration<\/p>\n<p>EDIT DATABASE &#8220;FSM_DG1&#8221; SET PROPERTY &#8216;LogXptMode&#8217;=&#8217;SYNC&#8217;;<\/p>\n<p>EDIT DATABASE &#8220;FSM_DG2&#8221; SET PROPERTY &#8216;LogXptMode&#8217;=&#8217;SYNC&#8217;;<\/p>\n<p>set property FastStartFailoverThreshold = 15;<\/p>\n<p>EDIT CONFIGURATION SET PROTECTION MODE AS MAXAVAILABILITY;<\/p>\n<p>Succeeded.<\/p>\n<p>EDIT DATABASE &#8216;FSM_DG1&#8242; SET PROPERTY FastStartFailoverTarget=&#8217;FSM_DG2&#8217;;<\/p>\n<p>Property &#8220;faststartfailovertarget&#8221; updated<\/p>\n<p>EDIT DATABASE &#8216;FSM_DG2&#8242; SET PROPERTY FastStartFailoverTarget=&#8217;FSM_DG1&#8217;;<\/p>\n<p>[\/crayon]<br \/>\n<strong>NOTE: Enabling configuration shuts down and restarts the database!!!!<\/strong><\/p>\n<p>There should be a system alert when enabling configuration, however the DBMS doesnt give one.<\/p>\n<p>[crayon]<\/p>\n<p>********************SHUTSDOWN THE DATABASE !!!!!!********************;SHUTSDOWN THE DATABASE !!!!!!<\/p>\n<p>enable configuration;<\/p>\n<p>********************SHUTSDOWN THE DATABASE !!!!!!<\/p>\n<p>********************SHUTSDOWN THE DATABASE !!!!!!<\/p>\n<p>[\/crayon]<br \/>\n[crayon]ENABLE FAST_START FAILOVER;[\/crayon]<br \/>\nIn both databases<\/p>\n<p>[crayon]sqlplus sys\/sys@FSM_DG1;<br \/>\nsqlplus sys\/sys@FSM_DG2[\/crayon]<br \/>\nThis should allow connection to both the databases, however in a failover it wouldn&#8217;t allow opening the database.<\/p>\n<p>&nbsp;<\/p>\n<p>Alternatives:<\/p>\n<p>In Standby<\/p>\n<p>[crayon]<\/p>\n<p>Alter System set Log_archive_dest_2=&#8217;Service=FSMLGWR AFFIRM SYNC<\/p>\n<p>VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)<\/p>\n<p>db_unique_name=FSM_DG1&#8242;;<\/p>\n<p>[\/crayon]<br \/>\nPutting the Primary in mount mode<\/p>\n<p>&nbsp;<\/p>\n<p>ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE AVAILABILITY;<\/p>\n<p>&nbsp;<\/p>\n<p>[crayon]<\/p>\n<p>To disable<\/p>\n<p>disable fast_start failover;<\/p>\n<p>disable fast_start failover force<\/p>\n<p>[\/crayon]<br \/>\n[crayon]switchover to &#8216;FSM_DG1&#8217; ;[\/crayon]<br \/>\n(Writes to the current Standby DB)<\/p>\n<p>(Switches roles, primary to standby and standby to primary)<\/p>\n<p>&nbsp;<\/p>\n<p>REINSTATE DATABASE &#8216;FSM_DG2&#8217;;<\/p>\n<p>&nbsp;<\/p>\n<p>standby archive location<\/p>\n<p>[crayon]<\/p>\n<p>how database &#8216;FSM_DG1&#8217; standbyarchivelocation ;show database &#8216;FSM_DG2&#8217; standbyarchivelocation ;<\/p>\n<p>edit database FSM_DG2 set property StandbyArchiveLocation = &#8216;\/u01\/app\/oracle\/archive\/FSM&#8217;;<\/p>\n<p>[\/crayon]<br \/>\nClosing and restarting the databases in the Data Guard environment.<\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"text-decoration: underline;\"><strong>Steps to close the databases<\/strong><\/span><\/p>\n<p>[crayon]connect sys\/sys@FSM_DG1;<br \/>\nstop observer<br \/>\n[\/crayon]<br \/>\nPrimary<\/p>\n<p>[crayon]<\/p>\n<p>alter system set log_archive_dest_state_2=defer;<br \/>\nalter system switch logfile ;<\/p>\n<p>shutdown immediate<\/p>\n<p>[\/crayon]<br \/>\nStandby<\/p>\n<p>[crayon]<\/p>\n<p>alter database recover managed standby database cancel;<br \/>\nshutdown immediate;<\/p>\n<p>[\/crayon]<br \/>\n<span style=\"text-decoration: underline;\"><strong>Steps to restart<\/strong><\/span><\/p>\n<p>Standby<\/p>\n<p>[crayon]<\/p>\n<p>startup nomount;<br \/>\nalter database mount standby database;<\/p>\n<p>alter database recover managed standby database disconnect from session;<\/p>\n<p>[\/crayon]<br \/>\nPrimary<\/p>\n<p>[crayon]<\/p>\n<p>startup;<br \/>\nalter system set log_archive_dest_state_2=enable;<\/p>\n<p>alter system switch logfile;<\/p>\n<p>[\/crayon]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This article describes the setup of the DataGuard and Observer, in Maxavailability mode and with Fail Over about to be activated.<\/p>\n","protected":false},"author":1,"featured_media":3637,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[352,338],"tags":[345],"class_list":["post-2753","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-high-availability","category-oracle-tr","tag-oracle"],"_links":{"self":[{"href":"https:\/\/sysdba.org\/en\/wp-json\/wp\/v2\/posts\/2753","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sysdba.org\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sysdba.org\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sysdba.org\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sysdba.org\/en\/wp-json\/wp\/v2\/comments?post=2753"}],"version-history":[{"count":0,"href":"https:\/\/sysdba.org\/en\/wp-json\/wp\/v2\/posts\/2753\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sysdba.org\/en\/wp-json\/"}],"wp:attachment":[{"href":"https:\/\/sysdba.org\/en\/wp-json\/wp\/v2\/media?parent=2753"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sysdba.org\/en\/wp-json\/wp\/v2\/categories?post=2753"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sysdba.org\/en\/wp-json\/wp\/v2\/tags?post=2753"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}