注册
日常运维数据库PURGE和SESSION监控
专栏/技术分享/ 文章详情 /

日常运维数据库PURGE和SESSION监控

Kendo 2023/12/07 1833 0 0
摘要

日常运维中我们常常遇到一些问题无法进行分析,此时需要结合一些相关的监控脚本信息来辅助我们进行判断;这里提供purge和session的监控内容。

PURGE监控

这里的purge监控,可以定位到哪些业务表存在问题,导致purge堆积,防止出现数据库回滚文件过大问题。

表结构:

CREATE TABLE "SYSDBA"."PURGE_RECORD"
(
"TIME" TIMESTAMP(6) NOT NULL,
"SCH_NAME" VARCHAR(50),
"TAB_NAME" VARCHAR(50),
"OBJ_NUM" INTEGER NOT NULL) ;

CREATE  INDEX "IDX_PUREGE_1" ON "SYSDBA"."PURGE_RECORD"("TIME" ASC,"OBJ_NUM" ASC) ;

代理作业添加

添加定时语句

监控语句:

insert into "SYSDBA"."PURGE_RECORD" (SCH_NAME,TAB_NAME,OBJ_NUM,TIME) 
select TOP 10 sch.name,s.name,count(*),SYSDATE from v$purge_pseg_tab p,sysobjects s,sysobjects sch where s.id=p.tab_id
and s.schid=sch.id group by sch.name,s.name order by 3 desc;
COMMIT;

image.png

定时删除语句:

DELETE FROM "SYSDBA"."PURGE_RECORD" WHERE TIME <= SYSDATE() - 30;

image.png

作业调度添加:

周期为5分钟一次

image.png

会话SESSION监控

会话监控,可以帮我们定位数据库异常会话连接的问题,处理相关业务会话满之类的问题。

表结构

CREATE TABLE "SYSDBA"."SESSION_MON_5MIN"
(
"IP" VARCHAR(128),
"USER_NAME" VARCHAR(128),
"NUM" VARCHAR(64),
"SELECT_TIME" TIMESTAMP(6),
"DB_NAME" VARCHAR2(32);

CREATE  INDEX "INDEX_SESSMON_TIME" ON "SYSDBA"."SESSION_MON_5MIN"("SELECT_TIME" ASC)  ;

代理作业添加

监控语句

INSERT INTO SESSION_MON_5MIN
SELECT USER_NAME,CLNT_IP,COUNT(*),SYSDATE(),INSTANCE_NAME  FROM GV$SESSIONS
GROUP BY USER_NAME,CLNT_IP,INSTANCE_NAME

捕获1.PNG
删除语句

DELETE FROM SESSION_MON_5MIN WHERE SELECT_TIME <= SYSDATE() - 30;
COMMIT;

捕获2.PNG

作业调度添加:

可以1分钟一次,也可以5分钟一次

捕获3.PNG

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服