US占比高
告警指标
执行如下语句,查看数据库服务进程,发现数据库主机CPU使用率高。
top -p 数据库服务进程
应急步骤
1.确认数据库状态:
—确认数据库进程正常。
ps –ef |grep dmserver
—然后通过以下语句查询数据库状态:
select instance_name,status$ from v$instance;
—确认无等待事务
select * from v$trxwait;
2.检查数据库当前会话,是否有运行中的异常SQL。如果有大量执行效率低的SQL,与应用确认是否可以限流、可以强制终止。
3.查询所有活动会话:
select
sysdate ,
SF_GET_SESSION_SQL(SESS_ID), --获取完整sql
sess_id ,
sess_seq ,
sql_text ,
state ,
seq_no ,
user_name ,
trx_id ,
create_time ,
clnt_ip
from
v$sessions
where
state='ACTIVE';
4.查询执行效率慢sql。
SELECT
*
FROM
(
SELECT
sess_id ,
sql_text ,
datediff (ss, last_recv_time, SYSDATE) Y_EXETIME,
SF_GET_SESSION_SQL (SESS_ID) fullsql ,
clnt_ip
FROM
V$SESSIONS
WHERE
STATE = 'ACTIVE'
)
WHERE
Y_EXETIME >= 2;--执行时间超2s,可以自定义该时间
5.终止异常会话:
在数据库里面执行SQL语句:sp_close_session(sess_id);
6.分析SQL执行计划,看是否有优化空间。将优化建议反馈应用、项目组进行紧急处理。
7.观察数据库活动会话是否正常。
SYS占比高
必要前提
服务器操作系统中有perf命令
排查流程
使用perf命令查看系统热点函数,将命令输出结果反馈给达梦数据库工程师,perf输出结果举例如下:
[root@DB1 ] perf top
文章
阅读量
获赞