一、跟踪文件控制
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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




