暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

官方文档中数据库监控部分

原创 _ 云和恩墨 2022-03-21
1653

一、跟踪文件控制

1.1、参数
MAX_DUMP_FILE_SIZE
	- unlimited 不限制,不分段,默认
	->15M,20%大小分段,最多五个段,除第一个外其它覆盖
	-<15M,限制不分段
1.2、手动追踪
alter session set sql_trace=true;--用处不大,sql追踪方法很多
1.3、设置监控警报阈值
select * from v$metricname; --查看可以设置的内容及测量单位
select * from v$metric; --查看实时值
select * from dba_thresholds;--查看已经设置的阈值及预警方式
DBMS_SERVER_ALERT  --设置阈值存储过程
案例一、
BEGIN
    DBMS_SERVER_ALERT.SET_THRESHOLD(METRICS_ID              => DBMS_SERVER_ALERT.TABLESPACE_PCT_FULL,
                                    WARNING_OPERATOR        => DBMS_SERVER_ALERT.OPERATOR_GE,
                                    WARNING_VALUE           => '50',
                                    CRITICAL_OPERATOR       => DBMS_SERVER_ALERT.OPERATOR_GE,
                                    CRITICAL_VALUE          => '60',
                                    OBSERVATION_PERIOD      => 1,
                                    CONSECUTIVE_OCCURRENCES => 1,
                                    INSTANCE_NAME           => NULL,
                                    OBJECT_TYPE             => DBMS_SERVER_ALERT.OBJECT_TYPE_TABLESPACE,
                                    OBJECT_NAME             => NULL);
END;
/

说明:
METRICS_ID:指标列表,见https://docs.oracle.com/en/database/oracle/oracle-database/19/arpls/DBMS_SERVER_ALERT.html#GUID-FADEEFDF-77C4-4D7A-B080-4FE768BD831D
WARNING_OPERATOR:与警告值比较 OPERATOR_XX(EQ(equal)、LT(less than)、GT、GE、LE、NE(not equal)),需要注意的是OPERATOR_CONTAINS表示文字匹配,OPERATOR_DO_NOT_CHECK表示不做比较,那么就不会有预警了)
WARNING_VALUE:比较的值,见视图 V$METRICNAME
CRITICAL_OPERATOR:与临界值比较
observation_period:多长时间观察一次
consecutive_occurrences:发警报前的观察周期
instance_name:对应的实例,本例观察表空间,设置该参数没什么意义
object_type:对象类型见上面文档

案例二、检查阈值
DECLARE
    METRICS_ID              BINARY_INTEGER;
    WARNING_OPERATOR        BINARY_INTEGER;
    WARNING_VALUE           VARCHAR2(60);
    CRITICAL_OPERATOR       BINARY_INTEGER;
    CRITICAL_VALUE          VARCHAR2(60);
    OBSERVATION_PERIOD      BINARY_INTEGER;
    CONSECUTIVE_OCCURRENCES BINARY_INTEGER;
    INSTANCE_NAME           VARCHAR2(60);
    OBJECT_TYPE             BINARY_INTEGER;
    OBJECT_NAME             VARCHAR2(200);
BEGIN
    DBMS_SERVER_ALERT.GET_THRESHOLD(DBMS_SERVER_ALERT.TABLESPACE_PCT_FULL,
                                    WARNING_OPERATOR,
                                    WARNING_VALUE,
                                    CRITICAL_OPERATOR,
                                    CRITICAL_VALUE,
                                    OBSERVATION_PERIOD,
                                    CONSECUTIVE_OCCURRENCES,
                                    NULL,
                                    DBMS_SERVER_ALERT.OBJECT_TYPE_TABLESPACE,
                                    NULL);
    DBMS_OUTPUT.PUT_LINE('Warning operator:       ' || WARNING_OPERATOR);
    DBMS_OUTPUT.PUT_LINE('Warning value:          ' || WARNING_VALUE);
    DBMS_OUTPUT.PUT_LINE('Critical operator:      ' || CRITICAL_OPERATOR);
    DBMS_OUTPUT.PUT_LINE('Critical value:         ' || CRITICAL_VALUE);
    DBMS_OUTPUT.PUT_LINE('Observation_period:     ' || OBSERVATION_PERIOD);
    DBMS_OUTPUT.PUT_LINE('Consecutive occurrences:' || CONSECUTIVE_OCCURRENCES);
END;
/

看这个太麻烦的话,直接

select * from dba_thresholds;
1.4、预警相关的视图
DBA_THRESHOLDS 查看定义的预警
DBA_OUTSTANDING_ALERTS 查看警报
DBA_ALERT_HISTORY 历史记录
V$ALERT_TYPES 
V$METRICNAME 指标定义相关的视图
V$METRIC 当前预警指标
V$METRIC_HISTORY 历史指标

二、监控锁

  • 1、运行catblock.sql,它会创建锁定视图。
  • 2、运行utllockt.sql脚本,该脚本使用创建的视图catblock.sql以树的形式显示系统中正在等待锁的会话以及它们正在等待的锁。

三、监控等待事件

- V$SESSION_WAIT 当前正在等待的事件或每个会话上最后等待的事件、等待状态和等待时间
- V$SESSION_WAIT_HISTORY 每个当前会话的最后10个等待事件和相关的等待时间
- V$SESSION_EVENT列出每个会话上等待的事件的累积历史记录。会话退出后,该会话的等待事件统计信息将从该视图中删除
- V$SYSTEM_EVENT列出自实例启动以来整个实例等待的事件和时间(即所有会话等待事件数据汇总)

四、相关视图和数据字典

V$LOCK  列出 Oracle 数据库当前持有的锁以及未完成的锁或闩锁请求
DBA_BLOCKERS  如果会话正在锁定另一个会话正在等待的对象,则显示会话
DBA_WAITERS 如果会话正在等待锁定的对象,则显示会话
DBA_DDL_LOCKS  列出数据库中持有的所有 DDL 锁和所有未完成的 DDL 锁请求
DBA_DML_LOCKS  列出数据库中持有的所有 DML 锁以及所有未完成的 DML 锁请求
DBA_LOCK 列出数据库中持有的所有锁或闩锁以及所有未完成的锁或闩锁请求
DBA_LOCK_INTERNAL 为每个被持有的锁或闩锁显示一行,为每个未完成的锁或闩锁请求显示一行
V$LOCKED_OBJECT 列出系统上每个事务获取的所有锁
V$SESSION_WAIT 列出活动会话正在等待的资源或事件
V$SYSSTAT 包含会话统计信息
V$RESOURCE_LIMIT 提供有关某些系统资源的当前和最大全局资源利用率的信息
V$SQLAREA 包含有关共享SQL区域的统计信息,并且每个SQL字符串包含一行。还提供有关在内存中、已解析并准备好执行的SQL语句的统计信息
V$LATCH 包含非父锁存器的统计信息和父锁存器的汇总统计信息

五、监控隔离对象

对象隔离使 Oracle 数据库即使在存在损坏的、不可恢复的对象时也能正常工作 V$QUARANTINE视图包含隔离对象的相关信息

COLUMN OBJECT FORMAT A10
COLUMN ADDRESS FORMAT A10
COLUMN BYTES FORMAT 999999999
COLUMN ERROR FORMAT A20
COLUMN TIMESTAMP FORMAT A20
SELECT OBJECT, ADDRESS, BYTES, ERROR, TIMESTAMP FROM V$QUA  RANTINE;
最后修改时间:2022-03-21 16:30:01
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论