Today I will give you information about Fast Start Failover -SINGLE NODE.
1. We check the broker’s configuration to see if everything is normal.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | DGMGRL> show configuration Configuration - DG_Solution Protection Mode: MaxPerformance Members: primary - Primary database prmyFS - Far sync instance physical - Physical standby database logical - Logical standby database Members Not Receiving Redo: physclFS - Far sync instance Fast-Start Failover: DISABLED Configuration Status: SUCCESS (status updated 42 seconds ago) |
2. We check whether Flashback is enabled in Primary and Standby Databases.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | [Primary] SQL> select flashback_on from v$database; FLASHBACK_ON ------------------ NO [Physical] SQL> select flashback_on from v$database; FLASHBACK_ON ------------------ NO [Logical] SQL> select flashback_on from v$database; FLASHBACK_ON ------------------ NO |
3. We control the duration that Flashback Logs will be stored.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | [Primary] SQL> show parameter db_flashback_retention NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ db_flashback_retention_target integer 1440 [Physical] SQL> show parameter db_flashback_retention NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ db_flashback_retention_target integer 1440 [Logical] SQL> show parameter db_flashback_retention NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ db_flashback_retention_target integer 1440 |
4. We check whether there is enough space in the location where Flashback Logs will be stored.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | [Primary] SQL> show parameter db_recovery NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ db_recovery_file_dest string /u01/app/oracle/recovery_area db_recovery_file_dest_size big integer 10G [Physical] SQL> show parameter db_recovery NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ db_recovery_file_dest string /u01/app/oracle/recovery_area db_recovery_file_dest_size big integer 10G [Logical] SQL> show parameter db_recovery NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ db_recovery_file_dest string /u01/app/oracle/recovery_area db_recovery_file_dest_size big integer 10G |
5. Before activating Flashback, we stop Log Apply operations on Standby Databases.
1 2 3 4 5 6 7 8 9 10 11 12 13 | [oracle@primary ~]$ dgmgrl DGMGRL for Linux: Version 12.1.0.2.0 - 64bit Production Copyright (c) 2000, 2013, Oracle. All rights reserved. Welcome to DGMGRL, type "help" for information. DGMGRL> connect sysdg Password: Connected as SYSDG. DGMGRL> edit database physical set state='APPLY-OFF'; Succeeded. DGMGRL> edit database logical set state='APPLY-OFF'; Succeeded. |
If I did it with SQL, I would use the following commands.
1 2 | [Physical] SQL> alter database recover managed standby database cancel; [Logical] SQL> alter database stop logical standby apply; |
6. We enable Flashback feature in Primary and Standby Databases.
1 2 3 4 5 6 7 8 9 10 11 | DGMGRL> sql "alter database flashback on"; Succeeded. DGMGRL> connect sysdg/Passw0rd4@physical Connected as SYSDG. DGMGRL> sql "alter database flashback on"; Succeeded. DGMGRL> connect sysdg/Passw0rd4@logical Connected as SYSDG. DGMGRL> sql "alter database flashback on"; Succeeded. DGMGRL> |
The reason we put this feature into use is that the databases other than the Primary Database, which will be Disabled after Failover, and the Fast-Start Failover Target Standby database, can successfully perform the necessary roles again with Flashback Logs.
Otherwise I would have to create these databases again.
I could also do this with SQL from SQLPLUS, but after the Broker configuration, I will need to manage the Data Guard Environment from the Broker, so I do it from the Broker for the sake of hand.
7. We check whether the flashback feature is enabled in the databases.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | [Primary] SQL> select flashback_on from v$database; FLASHBACK_ON ------------------ YES [Physical] SQL> select flashback_on from v$database; FLASHBACK_ON ------------------ YES [Logical] SQL> select flashback_on from v$database; FLASHBACK_ON ------------------ YES |
8. It is checked whether Flashback Logs have started to occur.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | [Primary] SQL> select file_type,number_of_files,percent_space_used from v$recovery_area_usage; FILE_TYPE NUMBER_OF_FILES PERCENT_SPACE_USED ----------------------- --------------- ------------------ CONTROL FILE 0 0 REDO LOG 0 0 ARCHIVED LOG 95 6.33 BACKUP PIECE 0 0 IMAGE COPY 0 0 FLASHBACK LOG 2 .98 FOREIGN ARCHIVED LOG 0 0 AUXILIARY DATAFILE COPY 0 0 8 rows selected. [Physical] SQL> select file_type,number_of_files,percent_space_used from v$recovery_area_usage; FILE_TYPE NUMBER_OF_FILES PERCENT_SPACE_USED ----------------------- --------------- ------------------ CONTROL FILE 0 0 REDO LOG 0 0 ARCHIVED LOG 95 6.33 BACKUP PIECE 0 0 IMAGE COPY 0 0 FLASHBACK LOG 2 .98 FOREIGN ARCHIVED LOG 0 0 AUXILIARY DATAFILE COPY 0 0 8 rows selected. [Logical] SQL> select file_type,number_of_files,percent_space_used from v$recovery_area_usage; FILE_TYPE NUMBER_OF_FILES PERCENT_SPACE_USED ----------------------- --------------- ------------------ CONTROL FILE 0 0 REDO LOG 0 0 ARCHIVED LOG 59 18.66 BACKUP PIECE 0 0 IMAGE COPY 0 0 FLASHBACK LOG 2 .98 FOREIGN ARCHIVED LOG 67 3.54 AUXILIARY DATAFILE COPY 0 0 8 rows selected. |
9. Current Flashback Size is also checked.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | [Primary] SQL> select flashback_size from v$flashback_database_log; FLASHBACK_SIZE -------------- 104857600 [Physical] SQL> select flashback_size from v$flashback_database_log; FLASHBACK_SIZE -------------- 104857600 [Logical] SQL> select flashback_size from v$flashback_database_log; FLASHBACK_SIZE -------------- 104857600 |
That’s equivalent to 100MB. This is allocate to you when it is created in Default. It increases according to Flaschback_Retention time.
10. We start Log Apply operations on Standby Databases.
1 2 3 4 | DGMGRL> edit database physical set state='APPLY-ON'; Succeeded. DGMGRL> edit database logical set state='APPLY-ON'; Succeeded. |
11. We check if the Log Apply processes have started.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | DGMGRL> show database physical Database - physical Role: PHYSICAL STANDBY Intended State: APPLY-ON Transport Lag: 0 seconds (computed 1 second ago) Apply Lag: 0 seconds (computed 1 second ago) Average Apply Rate: 10.00 KByte/s Real Time Query: ON Instance(s): physical Database Status: SUCCESS DGMGRL> show database logical Database - logical Role: LOGICAL STANDBY Intended State: APPLY-ON Transport Lag: 0 seconds (computed 0 seconds ago) Apply Lag: 0 seconds (computed 0 seconds ago) Active Apply Rate: 0 Byte/s Instance(s): logical Database Status: SUCCESS |
12. A new table is created under the TEST user to check whether the Log Apply processes have started.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | [Primary] SQL> create table test.regions_yedek as select * from hr.regions; Table created. [Primary] SQL> select table_name from dba_tables where owner='TEST'; TABLE_NAME -------------------------------------------------------------------------------- DEPARTMENTS_YEDEK REGIONS_YEDEK JOBS_YEDEK EMPLOYEES_YEDEK [Physical] SQL> select table_name from dba_tables where owner='TEST'; TABLE_NAME -------------------------------------------------------------------------------- DEPARTMENTS_YEDEK REGIONS_YEDEK JOBS_YEDEK EMPLOYEES_YEDEK [Logical] SQL> select table_name from dba_tables where owner='TEST'; TABLE_NAME -------------------------------------------------------------------------------- JOBS_YEDEK EMPLOYEES_YEDEK DEPARTMENTS_YEDEK REGIONS_YEDEK |
13. Finally, we check the RedoRoutes parameters to see if the logs will go according to the desired architecture.
1 2 3 4 5 6 7 8 9 10 | DGMGRL> show database primary 'RedoRoutes'; RedoRoutes = '(primary:prmyFS SYNC)' DGMGRL> show database physical 'RedoRoutes'; RedoRoutes = '(physical:physclFS SYNC)' DGMGRL> show database logical 'RedoRoutes'; RedoRoutes = '' DGMGRL> show far_sync 'prmyFS' 'RedoRoutes'; RedoRoutes = '(primary:physical,logical ASYNC)' DGMGRL> show far_sync 'physclFS' 'RedoRoutes'; RedoRoutes = '(physical:primary,logical ASYNC)' |
14. Now we start the parameter adjustments for Fast-Start Failover operations.
a. Target Standby Database is determined for Fast-start Failover.
1 2 3 4 5 | DGMGRL> edit database primary set property 'FastStartFailoverTarget'='physical'; Property "FastStartFailoverTarget" updated DGMGRL> show database primary FastStartFailoverTarget FastStartFailoverTarget = 'physical' |
b. After the role change, Fast-start Failover Target Standby Database is determined.
1 2 3 4 5 | DGMGRL> edit database physical set property 'FastStartFailoverTarget'='primary'; Property "FastStartFailoverTarget" updated DGMGRL> show database physical 'FastStartFailoverTarget'; FastStartFailoverTarget = 'primary' |
c. It is determined how often the Observer will establish a connection with the Primary Database.
1 2 | DGMGRL> edit configuration set property ObserverReconnect=120; Property "observerreconnect" updated |
I don’t think so much parameter changes are necessary for now and I don’t make any other changes.
15. Before enabling Fast-start Failover, we check the status of the parameters one last time.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | DGMGRL> show fast_start failover Fast-Start Failover: DISABLED Threshold: 30 seconds Target: (none) Observer: (none) Lag Limit: 30 seconds Shutdown Primary: TRUE Auto-reinstate: TRUE Observer Reconnect: 120 seconds Observer Override: FALSE Configurable Failover Conditions Health Conditions: Corrupted Controlfile YES Corrupted Dictionary YES Inaccessible Logfile NO Stuck Archiver NO Datafile Offline YES Oracle Error Conditions: (none) |
Observer is not START yet, so it cannot be seen on which HOST it is running. Also, Target parameter will be seen after Fast-start Failover ENABLE.
16. We ENABLE the broker.
1 2 3 4 | DGMGRL> enable fast_start failover; Error: ORA-16693: requirements not met for enabling fast-start failover Failed. |
The reason for this error is that although we use Far SYNC in the Data Guard Environment, the current Protection Mode is Max Performance. Protection Mode must be Maximum Availability.
17. We make Protection Mode Maximum Availability.
1 2 | DGMGRL> edit configuration set protection mode as maxavailability; Succeded. |
18. The broker is requested to be ENABLEd again.
1 2 | DGMGRL> enable fast_start failover Enabled. |
19. We are questioning the status of Fast-start Failover.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | DGMGRL> show fast_start failover Fast-Start Failover: ENABLED Threshold: 30 seconds target: physical Observer: (none) Lag Limit: 30 seconds (not in use) Shutdown Primary: TRUE Auto-reinstate: TRUE Observer Reconnect: 120 seconds Observer Override: FALSE Configurable Failover Conditions Health Conditions: Corrupted Controlfile YES Corrupted Dictionary YES Inaccessible Logfile NO Stuck Archiver NO Datafile Offline YES Oracle Error Conditions: (none) |
The reason why it says “not in use” in the Lag Limit parameter is that this parameter is used while in Maximum Performance mode.
20. We query the status of the broker configuration.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | DGMGRL> show configuration Configuration - DG_Solution Protection Mode: MaxAvailability Members: primary - Primary database Warning: ORA-16819: fast-start failover observer not started prmyFS - Far sync instance physical - (*) Physical standby database Warning: ORA-16819: fast-start failover observer not started logical - Logical standby database Members Not Receiving Redo: physclFS - Far sync instance Fast-Start Failover: ENABLED Configuration Status: WARNING (status updated 11 seconds ago) |
The reason for these warnings is that the Observer has not been started yet.
21. The Observer is started.
Since the Observer is a foreground process, it constantly occupies the DGMGRL prompt it is running, and we can see all the processes it captures and the jobs it does from this prompt.
For this reason, it is useful to connect from a different computer. In addition, since it will follow the Primary and Standby Databases, it should not be run in these databases. That’s why I run it in Primary Far_SYNC.
22. We are questioning the status of Fast-start Failover again.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | DGMGRL> show fast_start failover Fast-Start Failover: ENABLED Threshold: 30 seconds Target: physical Observer: broker.tivibulab.local Lag Limit: 30 seconds (not in use) Shutdown Primary: TRUE Auto-reinstate: TRUE Observer Reconnect: 120 seconds Observer Override: FALSE Configurable Failover Conditions Health Conditions: Corrupted Controlfile YES Corrupted Dictionary YES Inaccessible Logfile NO Stuck Archiver NO Datafile Offline YES Oracle Error Conditions: (none) |
I ran Observer from a completely separate instance. This is not mandatory. As I mentioned before, it can also be run from Far SYNC instances.
23. The broker configuration is also queried again.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | DGMGRL> show configuration Configuration - DG_Solution Protection Mode: MaxAvailability Members: primary - Primary database prmyFS - Far sync instance physical - (*) Physical standby database logical - Logical standby database Members Not Receiving Redo: physclFS - Far sync instance Fast-Start Failover: ENABLED Configuration Status: SUCCESS (status updated 46 seconds ago) |
(*) Indicates Fast-start Failover Target Standby Database.
24. Fast-start Failover is triggered by closing Primary Database with Shutdown Abort.
1 2 3 | [Primary] SQL> shu abort; Oracle instance shutdown |
25. Follow the steps during the Failover process from the computer where the Observer is started.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | DGMGRL> start observer Observer started 13:57:24.56 Saturday, February 11, 2017 Initiating Fast-Start Failover to database "physical"... Performing failover NOW, please wait... Failover succeeded, new primary is "physical" 13:58:43.37 Saturday, February 11, 2017 13:58:44.41 Saturday, February 11, 2017 Initiating reinstatement for database "logical"... Reinstating database "logical", please wait... Operation requires shut down of instance "logical" on database "logical" Shutting down instance "logical"... Database closed. Database dismounted. ORACLE instance shut down. Operation requires start up of instance "logical" on database "logical" Starting instance "logical"... ORACLE instance started. Database mounted. Continuing to reinstate database "logical" ... Operation requires shut down of instance "logical" on database "logical" Shutting down instance "logical"... ORA-01109: database not open Database dismounted. ORACLE instance shut down. Operation requires start up of instance "logical" on database "logical" Starting instance "logical"... ORACLE instance started. Database mounted. Continuing to reinstate database "logical" ... Reinstatement of database "logical" succeeded 14:00:25.56 Saturday, February 11, 2017 |
26. Failover operation completed successfully. We pass to the controls.
a. The broker configuration is queried to see if there is an error.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | DGMGRL> show configuration Configuration - DG_Solution Protection Mode: MaxAvailability Members: physical - Primary database Warning: ORA-16817: unsynchronized fast-start failover configuration physclFS - Far sync instance primary - (*) Physical standby database (disabled) ORA-16661: the standby database needs to be reinstated logical - Logical standby database Members Not Receiving Redo: prmyFS - Far sync instance Fast-Start Failover: ENABLED Configuration Status: WARNING (status updated 27 seconds ago) |
The reason for this warning is that the Original Primary Database is disabled and is not synchronized with the New Primary.
The reason for the error is that the Original Primary needs the Reinstate operation.
b. The statuses of the databases are queried.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | [oracle@primary ~]$ sqlplus / as sysdba SQL*Plus: Release 12.1.0.2.0 Production on Sat Feb 11 14:01:16 2017 Copyright (c) 1982, 2014, Oracle. All rights reserved. Connected to an idle instance. [Physical] SQL> select status from v$instance; STATUS ------------ OPEN [PhysicalFS] SQL> select status from v$instance; STATUS ------------ MOUNTED [Logical] SQL> select status from v$instance; STATUS ------------ OPEN [PrimaryFS] SQL> select status from v$instance; STATUS ------------ MOUNTED |
c. Databases’ open_mode, roles and protection modes are queried.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | [Physical] SQL> select open_mode, database_role, protection_mode from v$database; OPEN_MODE DATABASE_ROLE PROTECTION_MODE -------------------- ---------------- -------------------- READ WRITE PRIMARY MAXIMUM AVAILABILITY [Logical] SQL> select open_mode, database_role, protection_mode from v$database; OPEN_MODE DATABASE_ROLE PROTECTION_MODE -------------------- ---------------- -------------------- READ WRITE LOGICAL STANDBY MAXIMUM AVAILABILITY [PhysicalFS] SQL> select open_mode, database_role, protection_mode from v$database; OPEN_MODE DATABASE_ROLE PROTECTION_MODE -------------------- ---------------- -------------------- MOUNTED FAR SYNC MAXIMUM AVAILABILITY [PrimaryFS] SQL> select open_mode, database_role, protection_mode from v$database; OPEN_MODE DATABASE_ROLE PROTECTION_MODE -------------------- ---------------- -------------------- MOUNTED FAR SYNC MAXIMUM AVAILABILITY |
d. It is questioned whether the Log Switch operation has been carried out successfully. For this, first RESETLOGS_TIME is learned. This is because databases eat OPEN RESETLOGS and the log sequence numbers change.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | [Physical] SQL> select RESETLOGS_TIME from v$database; RESETLOGS --------- 11-FEB-17 [Physical] SQL> alter session set nls_date_format='dd-mm-yyyy hh24:mi:ss'; Session altered. [Physical] SQL> select RESETLOGS_TIME from v$database; RESETLOGS_TIME ------------------- 11-02-2017 13:58:39 |
e. Existing log sequence numbers are queried.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | [Physical] SQL> select max(sequence#),thread# from v$archived_log where first_time > to_date('11/02/2017 13:58:39', 'DD-MM-YYYY HH24:MI:SS') group by thread#; MAX(SEQUENCE#) THREAD# -------------- ---------- 28 1 [Logical] SQL> select max(sequence#),thread# from dba_logstdby_log where first_time > to_date('11/02/2017 13:58:39', 'DD-MM-YYYY HH24:MI:SS') group by thread#; MAX(SEQUENCE#) THREAD# -------------- ---------- 28 1 [PhysicalFS] SQL> select max(sequence#),thread# from v$archived_log where first_time > to_date('11/02/2017 13:58:39', 'DD-MM-YYYY HH24:MI:SS') group by thread#; MAX(SEQUENCE#) THREAD# -------------- ---------- 28 1 |
f. Log Switch operation is performed and log sequence numbers are checked.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | [Physical] SQL> alter system switch logfile; System altered. [Physical] SQL> select max(sequence#),thread# from v$archived_log where first_time > to_date('11/02/2017 13:58:39', 'DD-MM-YYYY HH24:MI:SS') group by thread#; MAX(SEQUENCE#) THREAD# -------------- ---------- 30 1 [Logical] SQL> select max(sequence#),thread# from dba_logstdby_log where first_time > to_date('11/02/2017 13:58:39', 'DD-MM-YYYY HH24:MI:SS') group by thread#; MAX(SEQUENCE#) THREAD# -------------- ---------- 30 1 [PhysicalFS] SQL> select max(sequence#),thread# from v$archived_log where first_time > to_date('11/02/2017 13:58:39', 'DD-MM-YYYY HH24:MI:SS') group by thread#; MAX(SEQUENCE#) THREAD# -------------- ---------- 30 1 |
The reason for the difference in 2 sequences is that there is 1 more log switch operation until I do my operations.
g. A table belonging to the TEST user is DROPed to see if the DDL and DML operations are running smoothly.
i. Existing tables are queried.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | [Physical] SQL> select table_name from dba_tables where owner='TEST'; TABLE_NAME -------------------------------------------------------------------------------- DEPARTMENTS_YEDEK REGIONS_YEDEK JOBS_YEDEK EMPLOYEES_YEDEK [Logical] SQL> select table_name from dba_tables where owner='TEST'; TABLE_NAME -------------------------------------------------------------------------------- REGIONS_YEDEK DEPARTMENTS_YEDEK EMPLOYEES_YEDEK JOBS_YEDEK |
ii. A table is DROP.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | [Physical] SQL> drop table test.DEPARTMENTS_YEDEK; Table dropped. [Physical] SQL> select table_name from dba_tables where owner='TEST'; TABLE_NAME -------------------------------------------------------------------------------- REGIONS_YEDEK JOBS_YEDEK EMPLOYEES_YEDEK [Logical] SQL> select table_name from dba_tables where owner='TEST'; TABLE_NAME -------------------------------------------------------------------------------- REGIONS_YEDEK EMPLOYEES_YEDEK JOBS_YEDEK |
27. Assuming that the problem in the original Primary database has been resolved, let’s re-enable it and ask it to assume the role of Physical Standby. For this, the database is mounted.
1 2 3 4 5 6 7 8 9 | [Primary] SQL> startup mount; ORACLE instance started. Total System Global Area 3472883712 bytes Fixed Size 2930272 bytes Variable Size 822086048 bytes Database Buffers 2634022912 bytes Redo Buffers 13844480 bytes Database mounted. |
28. The logs in the Observer are followed.
1 2 3 4 5 | 14:24:05.01 Saturday, February 11, 2017 Initiating reinstatement for database "primary"... Reinstating database "primary", please wait... Reinstatement of database "primary" succeeded 14:24:20.64 Saturday, February 11, 2017 |
29. The status of the original Primary database is queried.
1 2 3 4 5 | [Primary] SQL> select status from v$instance; STATUS ------------ OPEN |
30. The Recovery Modes of the databases are queried.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | [Primary] SQL> select open_mode, database_role, protection_mode from v$database; OPEN_MODE DATABASE_ROLE PROTECTION_MODE -------------------- ---------------- -------------------- READ ONLY WITH APPLY PHYSICAL STANDBY MAXIMUM AVAILABILITY [Primary] SQL> select recovery_mode from v$archive_dest_status where dest_id <4; RECOVERY_MODE ----------------------- MANAGED REAL TIME APPLY [Logical] SQL> select recovery_mode from v$archive_dest_status where dest_id <4; RECOVERY_MODE ----------------------- LOGICAL REAL TIME APPLY |
31. It is questioned whether there is an error in the broker configuration.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | DGMGRL> show configuration Configuration - DG_Solution Protection Mode: MaxAvailability Members: physical - Primary database physclFS - Far sync instance primary - (*) Physical standby database logical - Logical standby database Members Not Receiving Redo: prmyFS - Far sync instance Fast-Start Failover: ENABLED Configuration Status: SUCCESS (status updated 30 seconds ago) |
32. A table belonging to the TEST user is DROPed to see if the DDL and DML operations are running smoothly.
a. We are querying the existing tables.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | [Physical] SQL> select table_name from dba_tables where owner='TEST'; TABLE_NAME -------------------------------------------------------------------------------- REGIONS_YEDEK JOBS_YEDEK EMPLOYEES_YEDEK [Primary] SQL> select table_name from dba_tables where owner='TEST'; TABLE_NAME -------------------------------------------------------------------------------- REGIONS_YEDEK JOBS_YEDEK EMPLOYEES_YEDEK [Logical] SQL> select table_name from dba_tables where owner='TEST'; TABLE_NAME -------------------------------------------------------------------------------- REGIONS_YEDEK EMPLOYEES_YEDEK JOBS_YEDEK |
b. A table is DROP.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | [Physical] SQL> drop table test.REGIONS_YEDEK; Table dropped. [Physical] SQL> select table_name from dba_tables where owner='TEST'; TABLE_NAME -------------------------------------------------------------------------------- JOBS_YEDEK EMPLOYEES_YEDEK [Primary] SQL> select table_name from dba_tables where owner='TEST'; TABLE_NAME -------------------------------------------------------------------------------- JOBS_YEDEK EMPLOYEES_YEDEK [Logical] SQL> select table_name from dba_tables where owner='TEST'; TABLE_NAME -------------------------------------------------------------------------------- EMPLOYEES_YEDEK JOBS_YEDEK |