Monitoring operation in Dataguard

6 篇文章 0 订阅

Check dataguard role is primary or stand by 

[oracle@oracle-db-19c ~]$ 
[oracle@oracle-db-19c ~]$ sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Wed Feb 1 16:45:17 2023
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.


Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0

SQL> set pagesize 200
SQL> set linesize 200
SQL> 
SQL> col DATABASE_ROLE format a30
SQL> col INSTANCE format a30
SQL> col OPEN_MODE format a30
SQL> col PROTECTION_MODE format a30
SQL> col PROTECTION_LEVEL format a30
SQL> col SWITCHOVER_STATUS format a30
SQL> SELECT DATABASE_ROLE, DB_UNIQUE_NAME INSTANCE, OPEN_MODE, PROTECTION_MODE, PROTECTION_LEVEL, SWITCHOVER_STATUS FROM V$DATABASE;

DATABASE_ROLE                  INSTANCE                       OPEN_MODE                      PROTECTION_MODE                PROTECTION_LEVEL               SWITCHOVER_STATUS
------------------------------ ------------------------------ ------------------------------ ------------------------------ ------------------------------ ------------------------------
PRIMARY                        cdb1                           READ WRITE                     MAXIMUM PERFORMANCE            MAXIMUM PERFORMANCE            NOT ALLOWED

SQL> 

Monitoring recovery progress of stand by dataguard

SQL> 
SQL> 
SQL> SELECT TO_CHAR (START_TIME, 'DD-MON-YYYY HH24:MI:SS') "Recovery Start Time",
  2         TO_CHAR (item) || ' = ' || TO_CHAR (sofar) || ' ' || TO_CHAR (units)
  3             "Progress"
  4    FROM v$recovery_progress
  5   WHERE start_time = (SELECT MAX (start_time) FROM v$recovery_progress);

no rows selected

SQL> 

Monitoring lag in dataguard stand by and RAC

SQL> 
SQL> COLUMN applied_time FOR a30
SQL> SET LINESIZE 140
SQL> 
SQL> SELECT DB_NAME,
  2  APPLIED_TIME,
  3  LOG_ARCHIVED - LOG_APPLIED LOG_GAP,
  4  (CASE
  5  WHEN ( ( APPLIED_TIME IS NOT NULL
  6  AND (LOG_ARCHIVED - LOG_APPLIED) IS NULL)
  7  OR ( APPLIED_TIME IS NULL
  8  AND (LOG_ARCHIVED - LOG_APPLIED) IS NOT NULL)
  9  OR ( (LOG_ARCHIVED - LOG_APPLIED) > 5))
 10  THEN
 11  'Error! Log Gap is '
 12  ELSE
 13  'OK!'
 14  END)
 15  Status
 16  FROM (SELECT INSTANCE_NAME DB_NAME
 17  FROM GV$INSTANCE
 18  WHERE INST_ID = 1),
 19  (SELECT MAX (SEQUENCE#) LOG_ARCHIVED
 20  FROM V$ARCHIVED_LOG
 21  WHERE DEST_ID = 1 AND ARCHIVED = 'YES' AND THREAD# = 1),
 22  (SELECT MAX (SEQUENCE#) LOG_APPLIED
 23  FROM V$ARCHIVED_LOG
 24  WHERE DEST_ID = 2 AND APPLIED = 'YES' AND THREAD# = 1),
 25  (SELECT TO_CHAR (MAX (COMPLETION_TIME), 'DD-MON/HH24:MI') APPLIED_TIME
 26  FROM V$ARCHIVED_LOG
 27  WHERE DEST_ID = 2 AND APPLIED = 'YES' AND THREAD# = 1)
 28  UNION
 29  SELECT DB_NAME,
 30  APPLIED_TIME,
 31  LOG_ARCHIVED - LOG_APPLIED LOG_GAP,
 32  (CASE
 33  WHEN ( ( APPLIED_TIME IS NOT NULL
 34  AND (LOG_ARCHIVED - LOG_APPLIED) IS NULL)
 35  OR ( APPLIED_TIME IS NULL
 36  AND (LOG_ARCHIVED - LOG_APPLIED) IS NOT NULL)
 37  OR ( (LOG_ARCHIVED - LOG_APPLIED) > 5))
 38  THEN
 39  'Error! Log Gap is '
 40  ELSE
 41  'OK!'
 42  END)
 43  Status
 44  FROM (SELECT INSTANCE_NAME DB_NAME
 45  FROM GV$INSTANCE
 46  WHERE INST_ID = 2),
 47  (SELECT MAX (SEQUENCE#) LOG_ARCHIVED
 48  FROM V$ARCHIVED_LOG
 49  WHERE DEST_ID = 1 AND ARCHIVED = 'YES' AND THREAD# = 2),
 50  (SELECT MAX (SEQUENCE#) LOG_APPLIED
 51  FROM V$ARCHIVED_LOG
 52  WHERE DEST_ID = 2 AND APPLIED = 'YES' AND THREAD# = 2),
 53  (SELECT TO_CHAR (MAX (COMPLETION_TIME), 'DD-MON/HH24:MI') APPLIED_TIME
 54  FROM V$ARCHIVED_LOG
 55  WHERE DEST_ID = 2 AND APPLIED = 'YES' AND THREAD# = 2)
 56  ;

DB_NAME                                          APPLIED_TIME                      LOG_GAP
------------------------------------------------ ------------------------------ ----------
STATUS
------------------------------------------------------
cdb1
OK!


SQL> 

Monitoring dataguard stand by background processes


SQL> SELECT PROCESS, STATUS, THREAD#, SEQUENCE#, BLOCK#, BLOCKS FROM V$MANAGED_STANDBY;

PROCESS                     STATUS                                  THREAD#  SEQUENCE#     BLOCK#     BLOCKS
--------------------------- ------------------------------------ ---------- ---------- ---------- ----------
ARCH                        CONNECTED                                     0          0          0          0
ARCH                        CLOSING                                       1        127      73728       1986
ARCH                        CONNECTED                                     0          0          0          0
ARCH                        CONNECTED                                     0          0          0          0
DGRD                        ALLOCATED                                     0          0          0          0
DGRD                        ALLOCATED                                     0          0          0          0
DGRD                        ALLOCATED                                     0          0          0          0

7 rows selected.

SQL> 

View dataguard messages

SQL> 
SQL> show user;
USER is "SYS"
SQL> SELECT MESSAGE FROM V$DATAGUARD_STATUS;

MESSAGE
--------------------------------------------------------------------------------------------------------------------------------------------
Redo network throttle feature is disabled at mount time
STARTING ARCH PROCESSES
ARC0: Archival started
ARC1: Archival started
ARC2: Archival started
Becoming a 'no FAL' ARCH
Becoming the 'no SRL' ARCH
ARC3: Archival started
STARTING ARCH PROCESSES COMPLETE
Gap Manager starting
Beginning to archive T-1.S-127 (SCN:0x0000000001339b27-SCN:0x0000000001340b2c)
Completed archiving T-1.S-127 (SCN:0x0000000001339b27-SCN:0x0000000001340b2c)

12 rows selected.

SQL> 

Last log applied or received in stand by dataguard

SELECT 'Last Log applied : ' Logs,
       TO_CHAR (next_time, 'DD-MON-YY:HH24:MI:SS') Time
  FROM v$archived_log
 WHERE sequence# = (SELECT MAX (sequence#)
                      FROM v$archived_log
                     WHERE applied = 'YES')
UNION
SELECT 'Last Log received : ' Logs,
       TO_CHAR (next_time, 'DD-MON-YY:HH24:MI:SS') Time
FROM v$archived_log
where sequence# = (select max(sequence#) from v$archived_log);
SQL> 
SQL> show user;
USER is "SYS"
SQL> SELECT 'Last Log applied : ' Logs,
  2         TO_CHAR (next_time, 'DD-MON-YY:HH24:MI:SS') Time
  3    FROM v$archived_log
  4   WHERE sequence# = (SELECT MAX (sequence#)
  5                        FROM v$archived_log
  6                       WHERE applied = 'YES')
  7  UNION
  8  SELECT 'Last Log received : ' Logs,
  9         TO_CHAR (next_time, 'DD-MON-YY:HH24:MI:SS') Time
 10  FROM v$archived_log
 11  where sequence# = (select max(sequence#) from v$archived_log);

LOGS
------------------------------------------------------------
TIME
---------------------------------------------------------------------------------
Last Log received :
01-FEB-23:17:00:31


SQL> 

Monitoring recovery progress of stand by dataguard

SQL> 
SQL> show user;
USER is "SYS"
SQL> SELECT TO_CHAR (START_TIME, 'DD-MON-YYYY HH24:MI:SS') "Recovery Start Time",
  2         TO_CHAR (item) || ' = ' || TO_CHAR (sofar) || ' ' || TO_CHAR (units)
  3             "Progress"
  4    FROM v$recovery_progress
  5   WHERE start_time = (SELECT MAX (start_time) FROM v$recovery_progress);

no rows selected

SQL> 

 Stop / Start managed recovery process (MRP) in stand by dataguard

Cancel MRP process in standby:

alter database recover managed standby database cancel;

Start MRP:

alter database recover managed standby database disconnect from session;

For real time media recovery:

alter database recover managed standby database using current logfile disconnect from session;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值