快檢查達夢庫怎么了

扁鵲的弟弟來了
要求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.pswp.cn/news/896749.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/896749.shtml
英文地址,請注明出處:http://en.pswp.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; //公共屬性&…