74.如何判断Oracle备库是否同步

本文介绍了如何通过监控Oracle数据库的闪回区使用情况,检查主库和从库的归档路径状态,以及通过序列号比较来识别从库的异常,包括RFS和MRP0进程的同步问题及归档间隙的存在。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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;视图有值,都代表从库异常。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值