1.闪回区监控
--使用百分比大于某个值要告警。
SQL> select * from v$flash_recovery_area_usage where FILE_TYPE='ARCHIVED LOG';
FILE_TYPE PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE NUMBER_OF_FILES CON_ID
----------------------- ------------------ ------------------------- --------------- ----------
ARCHIVED LOG 4.35 0 72 0
SQL> select * from v$flash_recovery_area_usage where FILE_TYPE='ARCHIVED LOG' and PERCENT_SPACE_USED > 60;
未选定行
2.oracle主从监控
(1)主库查询
--主库查询,归档路径的状态是否正常。
select dest_name,status,error from v$archive_dest;
col dest_name for a30
set lin 200
select dest_name,status,error from v$archive_dest
where DEST_NAME in ('LOG_ARCHIVE_DEST_1','LOG_ARCHIVE_DEST_2','LOG_ARCHIVE_DEST_3','LOG_ARCHIVE_DEST_4','LOG_ARCHIVE_DEST_5');
DEST_NAME STATUS ERROR
------------------------------ --------- -----------------------------------------------------------------
LOG_ARCHIVE_DEST_1 VALID
LOG_ARCHIVE_DEST_2 VALID
LOG_ARCHIVE_DEST_3 VALID
LOG_ARCHIVE_DEST_4 INACTIVE
LOG_ARCHIVE_DEST_5 INACTIVE
---ERROR部分没有值,说明正常。
SYS@coredb1> col dest_name for a30
SYS@coredb1> set lin 200
SYS@coredb1> select dest_name,status,error from v$archive_dest
2 where DEST_NAME in ('LOG_ARCHIVE_DEST_1','LOG_ARCHIVE_DEST_2','LOG_ARCHIVE_DEST_3','LOG_ARCHIVE_DEST_4','LOG_ARCHIVE_DEST_5');
DEST_NAME STATUS ERROR
------------------------------ --------- -----------------------------------------------------------------
LOG_ARCHIVE_DEST_1 VALID
LOG_ARCHIVE_DEST_2 VALID
LOG_ARCHIVE_DEST_3 DISABLED ORA-12543: TNS:destination host unreachable
LOG_ARCHIVE_DEST_4 ERROR ORA-16191: Primary log shipping client not logged on standby
LOG_ARCHIVE_DEST_5 INACTIVE
--如上,如果ERROR 字段有值,说明说明该条归档有问题,即有可能该归档路径对应从库有问题。
(2)从库gap查询
--是否有gap;
SQL> select * from v$archive_gap;
THREAD# LOW_SEQUENCE# HIGH_SEQUENCE#
---------- ------------- --------------
2 76519 76726
--有值说明当前节点不同步。有归档未传输到当前节点。
SQL> select process,status,thread#,sequence# from V$managed_standby ;
PROCESS STATUS THREAD# SEQUENCE#
--------- ------------ ---------- ----------
ARCH CLOSING 1 84600
ARCH CLOSING 2 89595
ARCH CONNECTED 0 0
ARCH CLOSING 2 89592
MRP0 WAIT_FOR_LOG 1 84601
RFS IDLE 0 0
RFS IDLE 0 0
RFS IDLE 0 0
RFS IDLE 1 84601
RFS IDLE 2 89596
RFS IDLE 0 0
RFS IDLE 0 0
--如果是单节点,1号线程的 RFS接收进程对应的序列号等于 MRP0 进程对应的序列号,表示同步。
PROCESS=RFS,THREAD#=1,SEQUENCE#=84601
PROCESS=MRP0,THREAD#=1,SEQUENCE#=84601
--如果是RAC还要判断2号线程。
PROCESS=RFS,THREAD#=2,SEQUENCE#=89596
PROCESS=MRP0,THREAD#=2,SEQUENCE#=89596
如果是主库是单机,仅判断1号线程即可。
如果是主库是RAC集群:需要判断1号线程,或者2号线程接收(RFS进程)的序列号=MRP0进程的序列号,
表示同步,不相同,或差异很大,表示不同步。
如果RFS进程不在这个视图里面,也表示当前节点异常。
3.总结
满足如下任意一个则表示从库异常。
1).如果RFS进程不在这个视图里面
2).相同的线程号:RFS进程对应的序列号与MRP0 进程对应的序列号相差较大。
3).select * from v$archive_gap;视图有值,都代表从库异常。