快检查达梦库怎么了

扁鹊的弟弟来了
要求5分钟定位达梦数据库问题

#!/bin/bash## content 实例个数 告警日志 实例状态 用户连接 活动会话 锁 集群状态 服务状态 磁盘空间 cpu mem 侦听及日志
## scope   单机、DW、DSC  Linux 多实例
## example 将脚本保存为d.sh,用root用执行,例如 sh /tmp/d.sh
## ver 1.0printf '%.s*' {1..80}
echo 
echo "__CHECK BEGIN" `date '+%Y-%m-%d %H:%M:%S'`"__"## cpu memory filesystem instance_name
os=`uname`
case $os inAIX)ps aux |head -1 ; ps aux|sort -rn +2|head -5echops aux|head -1;ps aux | sort +5 -6 -n -r | head -5echodf|grep -e "[8,9][0-9]%" -e "100%"instlist=`ps -ef|grep dm.ini|grep -v grep|awk '{print $2}' `inst_cnt=`ps -ef|grep dm.ini|grep -v grep|awk '{print $2}' |wc -l`if [ $inst_cnt -gt 1 ]; thenps -ef|grep dms|grep -v grep|awk '{print $9}'|cut -b 6-fierrpt|headPROFILE='.profile';;Linux)## CPU较高的进程ps aux --sort=-%cpu| head -5echo##内存较高的进程ps aux|head -1;ps aux|grep -v PID|sort -rn -k +4|head -5echo##磁盘空间使用率超过80df -h|grep -v Size|sed 's#[[:space:]][[:space:]]*# #g'|cut -d ' ' -f5,6|sort -t '%' -k1 -nr|egrep '[8-9][0-9]%|100%' ##实例个数大于1,提醒 ora_ckpt_ORCL2instlist=`ps -ef|grep dm.ini|grep -v grep|awk '{print $9}'|cut -b 6- |sort`inst_cnt=`ps -ef|grep dm.ini|grep -v grep|awk '{print $2}' |wc -l`if [ $inst_cnt -gt 1 ]; thenps -ef|grep dms|grep -v grep|awk '{print $9}'|cut -b 6- |sortfitail -5500 /var/log/messages|grep -C 5 -iE 'err|fatal|oom'|tail -20PROFILE='.bash_profile';;*)echo "Unsupported OS type!"exit;
esac## 主要进程
echo
ps -ef|grep dmdbms|grep -v grep## databaseCMDFILE=/tmp/dm_check.sh
(cat  << EOF
#!/bin/bash
. \$HOME/$PROFILE
os=\`uname\`
echo "----------------------------"
echo \$1 \$2  \$3
echo "----------------------------"##登录用户及口令放到一个临时文件,例如sysdba/Dameng
if [ -f '/tmp/pwdfile.tmp' ]; thensqlpwd=\`cat /tmp/pwdfile.tmp\`
elsesqlpwd=" /:\$1 as sysdba "
fi# 20221121 
dbver=\` disql -id|awk -F'-' '{print \$2}' \`## 显示告警日志 `date +"%Y%m"`
aa=\$DM_HOME/log/dm_\$3_\`date +"%Y%m"\`.log tail -5000 \$aa|grep -v INFO|grep -v libgssapi|tail -20#disql "/:5237 as sysdba"
disql -S " \$sqlpwd " <<!
set  linesize 200 pagesize 200
set feedback off lineshow off timing off--os配置及负载
select N_CPU cpu,TOTAL_PHY_SIZE/1024/1024/1024||'G' memory,trunc(CPU_USER_RATE,2) us,trunc(CPU_SYSTEM_RATE,2) sy, ROUND(SEND_BYTES_TOTAL /1024/1024/1024) send_gb,ROUND(RECEIVE_BYTES_TOTAL/1024/1024/1024) recv_gb, trunc(LOAD_ONE_AVERAGE,2) load1,trunc(LOAD_FIFTEEN_AVERAGE,2) load15 from v\\\$systeminfo;--实例状态
select instance_name,start_time,host_name,status\$,mode\$,BUILD_VERSION  from v\\\$instance;--license
select SERIES_NO,AUTHORIZED_CUSTOMER, isnull(to_char(EXPIRED_DATE),'for ever') yxq, 
case SERVER_SERIES when 'P' then 'Personal'when 'S' then 'Standard'when 'E' then 'Enterprise'when 'A' then 'Security'when 'D' then 'Developer'when 'C' then 'Cloud' end edition,
case SERVER_type when '1' then 'Official'when '2' then 'Test'when '3' then 'Trial' end type, server_ver,
case substr(CLUSTER_TYPE,1,1) when '1' then 'YES' else 'NO' end DW,
case substr(CLUSTER_TYPE,2,1) when '1' then 'YES' else 'NO' end MPP,
case substr(CLUSTER_TYPE,3,1) when '1' then 'YES' else 'NO' end RW,
case substr(CLUSTER_TYPE,4,1) when '1' then 'YES' else 'NO' end DSC
from v\\\$license;--内存分配
SELECT
round((SELECT SUM(N_PAGES * (PAGE_SIZE+0.0))/1024/1024 FROM V\\\$BUFFERPOOL))||'MB' AS BUFFER_SIZE,
round((SELECT SUM(TOTAL_SIZE)/1024/1024 FROM V\\\$MEM_POOL))||'MB' AS MEM_POOL,
round(((SELECT SUM(N_PAGES * (PAGE_SIZE+0.0)) FROM V\\\$BUFFERPOOL)+(SELECT SUM(TOTAL_SIZE) FROM V\\\$MEM_POOL))/1024/1024/1024)||'GB' AS TOTAL_SIZE
FROM  DUAL;--asm磁盘组使用率
select group_name,total_mb/1024 total_gb,free_mb/1024 free_gb,round((total_mb-free_mb)/1024,1) used_gb,round((1-(free_mb+0.0)/total_mb)*100,2) used_per,au_size from v\\\$asmgroup;--表空间使用率
SELECT UPPER(F.TABLESPACE_NAME)     tsname,--    "表空间名",D.TOT_GROOTTE_MB             size_mb,--    "表空间大小(M)",D.TOT_GROOTTE_MB - F.TOTAL_BYTES used_mb,--"已使用空间(M)",TO_CHAR(ROUND(( D.TOT_GROOTTE_MB - F.TOTAL_BYTES ) / D.TOT_GROOTTE_MB * 100, 2), '990.99')|| '%'                         use_percent,--  "使用比",F.TOTAL_BYTES                  free_mb,--  "空闲空间(M)",F.MAX_BYTES                    max_size -- "最大块(M)"
FROM   (SELECT TABLESPACE_NAME,ROUND(SUM(BYTES) / ( 1024 * 1024 ), 2) TOTAL_BYTES,ROUND(MAX(BYTES) / ( 1024 * 1024 ), 2) MAX_BYTESFROM   SYS.DBA_FREE_SPACEGROUP  BY TABLESPACE_NAME) F,(SELECT DD.TABLESPACE_NAME,ROUND(SUM(DD.BYTES) / ( 1024 * 1024 ), 2) TOT_GROOTTE_MBFROM   SYS.DBA_DATA_FILES DDGROUP  BY DD.TABLESPACE_NAME) D
WHERE  D.TABLESPACE_NAME = F.TABLESPACE_NAME
ORDER  BY 2 DESC;--近期error
select ECPT_CODE, count(0) from  v\\\$runtime_err_history where err_time>sysdate-1 group by ECPT_CODE;
select to_char(err_time,'yyyy-mm-dd hh24:mi:ss')err_time,SESS_ID,SESS_SEQ,ECPT_CODE,substr(ECPT_DESC,1,20)ecpt_desc,substr(SQL_TEXT,1,20)sql_txt from v\\\$runtime_err_history where err_time>sysdate-1 and rownum<11;
select log_time,thread_name,level$,substr(txt,1,50) sql_txt from  v\\\$INSTANCE_LOG_HISTORY  where LEVEL$ in ('ERROR','FATAL') and LOG_TIME>sysdate-10 and rownum<11; --会话个数 
select INSTANCE_NAME,user_name,count(0) cnt from gv\\\$sessions group by INSTANCE_NAME,user_name order by 1,2;--当前执行超过2秒的会话
SELECT* FROM (SELECT SESS_ID, user_name,DATEDIFF(SS,LAST_RECV_TIME,SYSDATE) Y_EXETIME, substr(SF_GET_SESSION_SQL(SESS_ID),1,100) sql_txt,CLNT_IP FROM V\\\$SESSIONS WHERE STATE='ACTIVE' and sess_id<> SYS_CONTEXT('USERENV','SID') ) WHERE Y_EXETIME>=2 ;--慢sql
select top 10 sess_id,sql_id,substr(sql_text,1,50)sql_txt,round(exec_time/1000) miao,n_runs, finish_time from V\\\$LONG_EXEC_SQLS order by exec_time desc;--查被阻塞会话 
SELECT DS.SESS_ID  blked_sid,substr(DS.SQL_TEXT,1,30) blked_sql,DS.TRX_ID blked_trx,(CASE L.LTYPE WHEN 'OBJECT' THEN '对象锁' WHEN 'TID' THEN '事务锁' END CASE ) lx,to_char(DS.CREATE_TIME,'yyyy-mm-dd hh24:mi:ss') create_time,SS.SESS_ID blocker_sid,--substr(SS.SQL_TEXT,1,30) blocker_sql,--SS. CLNT_HOST blocker,L.TID blocker_trx
FROM   V\\\$LOCK L LEFT JOIN V\\\$SESSIONS DS ON  DS.TRX_ID = L.TRX_ID LEFT JOIN V\\\$SESSIONS SS ON  SS.TRX_ID = L.TID
WHERE   L.BLOCKED = 1;--单个会话内存使用总量
SELECT top 10 A.CREATOR ,b.sess_id,b.user_name,substr(B.SQL_TEXT ,1,40) sql_txt,round(SUM(A.TOTAL_SIZE)/1024/1024) TOTAL_MB,--当前总量(包括扩展)round(SUM(A.DATA_SIZE)/1024/1024) DATA_MB--实际使用量
FROM V\\\$MEM_POOL A, V\\\$SESSIONS B
WHERE A.CREATOR=B.THRD_ID
GROUP BY A.CREATOR, b.sess_id,b.user_name, (B.SQL_TEXT ,1,60) 
ORDER BY TOTAL_MB DESC;--dg delay
selectSEQNO,        apply_cmt_time,        last_cmt_time ,timestampdiff(sql_tsi_frac_second, apply_cmt_time, last_cmt_time) diff
fromv\\\$rapply_stat;exit
!getrole() {
disql -S " \$sqlpwd " <<!
set HEA off
set feedback off
set echo off
set time off
set timing off
select MODE$ from v\\\$instance;
exit
!
}std_delay() {
disql -S " \$sqlpwd "<<!
selectSEQNO,        apply_cmt_time,        last_cmt_time ,timestampdiff(sql_tsi_frac_second, apply_cmt_time, last_cmt_time) diff
fromv\\\$rapply_stat;
exit
!
} #std_delay()EOF
)>$CMDFILE
dbuser=`ps -ef|grep dmserver|grep -v grep |awk '{print $1}'|head -1`for sid in $instlist 
do#获取端口port=`grep -w PORT_NUM      $sid|awk -F'=' '{print $2}'|awk -F'#' '{print $1}'|awk 'gsub(/^ *| *$/,"")'`inst=`grep -w INSTANCE_NAME $sid|awk -F'=' '{print $2}'|awk -F'#' '{print $1}'|awk 'gsub(/^ *| *$/,"")'`#echo $portsu - $dbuser "-c /bin/bash $CMDFILE $port $sid $inst"echo
done#w
#vmstat 3 3printf '%.s*' {1..80}
echo
echo "__CHECK   END" `date '+%Y-%m-%d %H:%M:%S'`"__"exit 0

看看效果
在这里插入图片描述
我觉得,没什么问题,除了锁表。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/896749.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++20中`constexpr`的显著增强

文章目录 1. **更多标准库函数支持constexpr**2. **支持动态内存分配**3. **支持虚函数和多态**4. **支持try-catch异常处理**5. **更灵活的控制流**6. **支持std::initializer_list**7. **支持修改union活跃成员**8. **允许更多类型的非类型模板参数**总结 C20对 constexpr进…

Tomcat 乱码问题彻底解决

1. 终端乱码问题 找到 tomcat 安装目录下的 conf —> logging.properties .修改ConsoleHandler.endcoding GBK &#xff08;如果在idea中设置了UTF-8字符集&#xff0c;这里就不需要修改&#xff09; 2. CMD命令窗口设置编码 参考&#xff1a;WIN10的cmd查看编码方式&…

以太坊测试网

文章目录 什么是测试网如何使用测试网获取测试以太币 什么是测试网 测试网&#xff08;Testnet&#xff09;是一个模拟以太坊主网&#xff08;Mainnet&#xff09;行为的区块链网络。它允许开发人员和用户在不使用真实资金的情况下测试智能合约和应用程序。虽然测试网上的代币…

算法随笔_62: 买卖股票的最佳时机

上一篇:算法随笔_61:二进制求和-CSDN博客 题目描述如下: 给定一个数组 prices &#xff0c;它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票&#xff0c;并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获…

腾讯混元文生图大模型(Hunyuan-DiT)与Stable Diffusion(SD)对比分析

腾讯混元文生图大模型&#xff08;Hunyuan-DiT&#xff09;与Stable Diffusion&#xff08;SD&#xff09;对比分析 腾讯混元文生图大模型&#xff08;Hunyuan-DiT&#xff09;与Stable Diffusion&#xff08;SD&#xff09;作为当前文生图领域的两大代表模型&#xff0c;各自…

【HTML—前端快速入门】HTML 基础

准备工作 vscode下载 百度网盘 Subline Text 下载 Sublime Text下载 百度网盘 vscode 下载 Sublime Text 是一款轻量好用的文本编辑器&#xff0c;我们在写前端代码时&#xff0c;使用 Sublime Text 打开比使用记事本打开&#xff0c;得到的代码体验更好&#xff0c;比 vscode…

基于单片机的GPS定位系统设计

1 系统硬件 1.1单片机模块 单片机的种类和型号可以说是有成百上千种&#xff0c;很多大的公司和企业都生产开发自己的单片机芯片&#xff0c;并且广泛应用于各种产品。Intel、 philips、 摩托罗拉、凌阳、宏晶等等种类繁多。大体上可以分为51系列单片机和非51系列单片机。 其…

对大模型输出的 logits 进行处理,从而控制文本的生成

对大模型输出的 logits 进行处理&#xff0c;从而控制文本的生成 flyfish 在文本生成任务中&#xff0c;模型输出的 logits 代表了每个词被选为下一个生成词的未归一化概率得分。通过对 logits 进行处理&#xff0c;可以精确地控制文本的生成 基本原理 在每一步生成过程中&…

Reids缓存穿透、缓存雪崩和缓存击穿

Redis缓存中常见的三个问题&#xff1a;缓存穿透、缓存雪崩和缓存击穿。这些问题在使用Redis作为缓存时经常遇到&#xff0c;但通过合理的策略可以有效解决。我会用简单易懂的方式来讲解&#xff0c;帮助你理解这些问题的原理和解决方案。 1. 缓存穿透 1.1 什么是缓存穿透&…

附录-Python — 包下载缓慢,配置下载镜像

1️⃣命令行配置 pip config set global.index-url http://mirrors.aliyun.com/pypi/simple/ pip config set install.trusted-host mirrors.aliyun.com 2️⃣配置文件配置 1、打开文件夹&#xff0c;输入 %APPDATA% 回车 2、打开 %APPDATA% 路径&#xff0c;并在此路径下新建…

VS 2019 免费版 下载与安装 教程说明

推荐大家直接转到第13步&#xff0c;点击链接即可下载VS2019版本 1.VS官网 2.登录账号 3.在搜索栏输入“2019” 4.点击2019这个标题 5.点击“下载” 6.选择合适的版本下载 7.打开下载文件&#xff08;若下载过程总是转圈圈&#xff0c;则换个网络下载即可&#xff09; 8.安…

介绍 torch-mlir 从 pytorch 生态到 mlir 生态

一、引言 The Torch-MLIR project provides core infrastructure for bridging the PyTorch ecosystem and the MLIR ecosystem. For example, Torch-MLIR enables PyTorch models to be lowered to a few different MLIR dialects. Torch-MLIR does not attempt to provide a…

Java并发编程之ConcurrentHashMap的原理和使用

ConcurrentHashMap(CHM)是Java为解决高并发场景下哈希表性能瓶颈而设计的线程安全容器,其核心目标在于: 线程安全‌:避免多线程操作导致的数据不一致问题‌;高吞吐量‌:通过细粒度锁和无锁化设计降低线程竞争‌;动态扩展‌:支持自动扩容与数据结构优化(如链表转红黑树…

AbMole揭秘伤口愈合:IGF-1-SP1-CD248信号通路的新发现

科学家们揭示了一条新的信号通路——IGF-1-SP1-CD248&#xff0c;这一发现为理解伤口愈合障碍提供了新的视角&#xff0c;并为未来的研究开辟了新方向。 研究背景 糖尿病患者的伤口愈合是一个长期存在的挑战。据统计&#xff0c;约15%的糖尿病患者会遭受慢性伤口的困扰&#…

Go入门之文件

以只读方式打开文件 package mainimport ("fmt""io""os" )func main() {file, err : os.Open("./main.go")defer file.Close()if err ! nil {fmt.Println(err)return}fmt.Println(file)var tempSlice make([]byte, 128)var strSlice…

python量化交易——金融数据管理最佳实践——使用qteasy管理本地数据源

文章目录 统一定义的金融历史数据表最重要的数据表数据表的定义交易日历表的定义&#xff1a;交易日历表: trade_calendar qteasy是一个功能全面且易用的量化交易策略框架&#xff0c; Github地址在这里。使用它&#xff0c;能轻松地获取历史数据&#xff0c;创建交易策略并完…

通过 PromptTemplate 生成干净的 SQL 查询语句并执行SQL查询语句

问题描述 在使用 LangChain 和 Llama 模型生成 SQL 查询时&#xff0c;遇到了 sqlite3.OperationalError 错误。错误信息如下&#xff1a; OperationalError: (sqlite3.OperationalError) near "sql SELECT Name FROM MediaType LIMIT 5; ": syntax error [SQL: …

STaR(Self-Taught Reasoner)方法:让语言模型自学推理能力(代码实现)

STaR&#xff08;Self-Taught Reasoner&#xff09;方法&#xff1a;让语言模型自学推理能力 在大型语言模型&#xff08;LLM&#xff09;的推理能力优化中&#xff0c;STaR&#xff08;Self-Taught Reasoner&#xff09; 是一种引人注目的技术&#xff0c;属于“修改提议分布…

Asp.Net Web API| React.js| EF框架 | SQLite|

asp.net web api EF SQLiteReact前端框架 设计一个首页面&#xff0c;包含三个按钮分别对应三类用户&#xff08;数据查看&#xff0c;设计人员&#xff0c;管理员&#xff09;&#xff0c;当点击管理员的时候弹出一个前端页面可以输入信息&#xff08;以学生数据为例&#…

[SWPUCTF 2022 新生赛]1z_unserialize

题目描述&#xff1a;是很简单的反序列化噢 代码审计看注释 <?phpclass lyh{ //定义一个类为lyhpublic $url NSSCTF.com;//公共属性&#xff0c;初始值为NSSCTF.compublic $lt; //公共属性&#xff0c;没有初始值public $lly; //公共属性&…