2013年(350)
分类: Oracle
2013-04-24 16:42:30
监控逻辑standby
与物理standby的一样,提供了一系列动态性能视图来查看逻辑standby的状态,有一些我们前面已经接触过,而有一些,我们还从未用过。。。。。
1、DBA_LOGSTDBY_EVENTS
可以把该视图看成逻辑standby操作日志,因此如果发生了错误,可以通过该视图查看近期逻辑standby都做了些什么。默认情况下,该视图保留100条事件的记录,不过你可以通过DBMS_LOGSTDBY.APPLY_SET()过程修改该参数。
例如:
JSSLDG2> select event_time,status,event from dba_logstdby_events;
EVENT_TIME STATUS EVENT
------------------- -------------------------------------------------- ----------------------------------------
2008-03-06 08:58:11 ORA-16112: 日志挖掘和应用正在停止
2008-03-06 09:02:00 ORA-16111: 日志挖掘和应用正在启动
2008-03-06 09:52:53 ORA-16128: 已成功完成用户启动的停止应用操作
2008-03-12 15:52:53 ORA-16111: 日志挖掘和应用正在启动
2008-03-12 16:09:17 ORA-16226: 由于不支持而跳过 DDL ALTER DATABASE OPEN
2008-03-05 17:21:46 ORA-16111: 日志挖掘和应用正在启动
..............................
2、DBA_LOGSTDBY_LOG
该视图用来记录当前的归档日志应用情况,等同于物理standby中的v$archived_log,多数情况下,你只需要关注SEQUENCE#,APPLIED,即查看日志序号和是否应用,当然该视图还能提供更多信息,比如应用的scn,应用时间等,例如:
JSSLDG2> select sequence#,first_change#,next_change#,timestamp,applied from dba_logstdby_log;
SEQUENCE# FIRST_CHANGE# NEXT_CHANGE# TIMESTAMP APPLIED
---------- ------------- ------------ ------------------- --------
869 1319212 1319811 2008-03-12 16:09:15 CURRENT
通常情况下,该查询只会返回几条记录,如果说你的操作非常频繁,可能记录数会稍多一些,但如果记录数非常多,那你可能就需要关注一下,是不是出了什么问题,难道应用没有启动?
3、V$LOGSTDBY_STATS
从名字就大致猜的出来,该视图显示的是状态信息,没错,你猜对了,该视图就是用来显示LogMiner的统计信息及状态。
JSSLDG2> select *from v$logstdby_stats;
NAME VALUE
---------------------------------------------------------------- ---------------
number of preparers 1
number of appliers 5
maximum SGA for LCR cache 30
parallel servers in use 9
maximum events recorded 100
preserve commit order TRUE
transaction consistency FULL
record skip errors Y
record skip DDL Y
record applied DDL N
.........................
4、V$LOGSTDBY_PROCESS
该视图显示当前log应用服务的相关信息。常用于诊断归档日志逻辑应用的性能问题(后面优化部分会有涉及),包含的信息也很广:
v 身份信息:SID,SERIAL#,SPID
v SQL应用进程:COORDINATOR, READER, BUILDER, PREPARER, ANALYZER, 或APPLIER
v 进程当前的状态:见status_code或status列
v 该进程当前操作redo记录最大SCN:high_scn列
例如:
JSSLDG2> select sid,serial#,spid,type,status,high_scn from v$logstdby_process;
SID SERIAL# SPID TYPE STATUS HIGH_SCN
---------- ---------- ------------ --------------- ------------------------------------------------------------ ----------
145 1 508 COORDINATOR ORA-16116: 无可用工作 1319811
146 2 2464 READER ORA-16240: 正在等待日志文件 (线程号 1, 序列号 870) 1319811
143 1 1512 BUILDER ORA-16116: 无可用工作 1319742
142 1 4000 PREPARER ORA-16116: 无可用工作 1319741
139 1 2980 ANALYZER ORA-16116: 无可用工作 1319707
135 1 1648 APPLIER ORA-16116: 无可用工作 1319430
138 1 2332 APPLIER ORA-16116: 无可用工作 1319439
132 1 2200 APPLIER ORA-16116: 无可用工作 1319443
134 1 4020 APPLIER ORA-16116: 无可用工作
...........................................
5、V$LOGSTDBY_PROGRESS
该视图显示log应用服务当前进展状况,比如当前应用到逻辑standby的scn及时间,sql应用开始应用的scn及时间,最后接收及应用的scn和时间等等。
例如:
JSSLDG2> select * from v$Logstdby_progress;
APPLIED_SCN APPLIED_TIME RESTART_SCN RESTART_TIME LATEST_SCN LATEST_TIME MINING_SCN MINING_TIME
----------- ------------------- ----------- ------------------- ---------- ------------------- ---------- -------------------
1319810 2008-03-12 16:06:51 1319662 2008-03-12 16:03:22 1319810 2008-03-12 16:45:33 1319811 2008-03-12 16:06:51
6、V$LOGSTDBY_STATE
该视图就最简单了,就是显示sql应用的大致状态,比如primary库的dbid啦,是否启动了实时应用啦,当前sql应用的状态啦之类。
注意state列,该列可能有下述的几种状态:
v INITIALIZING: LogMiner session已创建并初始化
v LOADING DICTIONARY: SQL应用调用LogMiner字典
v WAITING ON GAP: SQL应用正等待日志文件,可能有中断
v APPLYING: SQL应用正在工作
v WAITING FOR DICTIONARY LOGS: SQL应用等待LogMiner字典信息
v IDLE: SQL应用工作非常出色,已经干的没什么可干了:)
例如:
JSSLDG2> select * from v$Logstdby_state;
字数受限,详细请查看: