The document describes how to check the status of Dataguard replication between a primary and standby database. It provides SQL queries to check the database role, archived log details, and replication status on both the primary and standby servers.
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0 ratings0% found this document useful (0 votes)
97 views3 pages
Check Dataguard Status
The document describes how to check the status of Dataguard replication between a primary and standby database. It provides SQL queries to check the database role, archived log details, and replication status on both the primary and standby servers.
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 3
Dataguard status check
Primary database: -
1. To check database role:
SELECT database_role, open_mode FROM v$database;
2. To check the dataguard process in primary server:
select PROCESS, STATUS, SEQUENCE#, BLOCKS, GROUP#, CLIENT_PROCESS from v$managed_standby;
3. To check log details applied, deleted:
SELECT sequence#, first_time, next_time, applied,DELETED FROM gv$archived_log ORDER BY sequence#;
4. Check applied log difference:
SELECT ARCH.THREAD# "Thread", ARCH.SEQUENCE# "Last Sequence Received", APPL.SEQUENCE# "Last Sequence Applied", (ARCH.SEQUENCE# - APPL.SEQUENCE#) "Difference" FROM (SELECT THREAD# ,SEQUENCE# FROM V$ARCHIVED_LOG WHERE (THREAD#,FIRST_TIME ) IN (SELECT THREAD#,MAX(FIRST_TIME) FROM V$ARCHIVED_LOG GROUP BY THREAD#)) ARCH, (SELECT THREAD# ,SEQUENCE# FROM V$LOG_HISTORY WHERE (THREAD#,FIRST_TIME ) IN (SELECT THREAD#,MAX(FIRST_TIME) FROM V$LOG_HISTORY GROUP BY THREAD#)) APPL WHERE ARCH.THREAD# = APPL.THREAD# ORDER BY 1; 5. Check Max Sequence:
Select max(sequence#) from gv$archived_log;
Standby server: -
1. To check database role:
SELECT database_role, open_mode FROM v$database;
2. To check the dataguard process in primary server:
select PROCESS, STATUS, SEQUENCE#, BLOCKS, GROUP#, CLIENT_PROCESS from v$managed_standby;
3. To check log details applied, deleted:
SELECT sequence#, first_time, next_time, applied,DELETED FROM gv$archived_log ORDER BY sequence#;
4. Check applied log difference:
SELECT ARCH.THREAD# "Thread", ARCH.SEQUENCE# "Last Sequence Received", APPL.SEQUENCE# "Last Sequence Applied", (ARCH.SEQUENCE# - APPL.SEQUENCE#) "Difference" FROM (SELECT THREAD# ,SEQUENCE# FROM V$ARCHIVED_LOG WHERE (THREAD#,FIRST_TIME ) IN (SELECT THREAD#,MAX(FIRST_TIME) FROM V$ARCHIVED_LOG GROUP BY THREAD#)) ARCH, (SELECT THREAD# ,SEQUENCE# FROM V$LOG_HISTORY WHERE (THREAD#,FIRST_TIME ) IN (SELECT THREAD#,MAX(FIRST_TIME) FROM V$LOG_HISTORY GROUP BY THREAD#)) APPL WHERE ARCH.THREAD# = APPL.THREAD# ORDER BY 1; 6. Check Max Sequence:
Select max(sequence#) from gv$archived_log;
To check dataguard parameter on both side
set lines 999 pages 999
col value for a80 col name for a50 set lines 256 select name, value from gv$parameter where name in ('INST_ID','instance_name','db_name','db_unique_name','log_archive_config', 'log_archive_dest_1','log_archive_dest_2','log_archive_dest_3','log_archive_dest_ 4', 'log_archive_dest_state_1','log_archive_dest_state_2','log_archive_dest_state_3', 'log_archive_dest_state_4', 'remote_login_passwordfile', 'log_archive_format','log_archive_max_processes','fal_server','fal_client','standby _file_management','db_file_name_convert','log_file_name_convert');
column message format a66
SELECT timestamp, facility, message FROM v$dataguard_status ORDER by