GoldenGate11g長交易造成CPU負載高
使用Quest PA監控,發現資料庫伺服器CPU資源消耗很大,原先CPU的負載差不多30%多,但最近一段,高達60%。從監控資訊可以看出是Goldgate使用者等待事件SQL*NET more data to/from client等待消耗CPU資源非常大。
首先想到一點是檢查是否存在僵死程式:
輸出結果中,我們發現存在兩個僵死程式,透過kill -9將其程式清除。
然後將GG中extract程式重啟:
輸出結果發現兩個抽取程式存在長交易無法正常停止程式,需要進一步定位是什麼長交易session:
從輸出結果可以看出有兩個交易啟動時間已經長達2個多月,很明顯處於不正常狀況,需要進一步確認執行語句:
從以上執行結果可以看出,長連線交易的SQL語句是透過dblink插入一張表的資料,而恰好給session造成SQL*NET more data to/from client等待時間很長,消耗大量CPU等待時間。透過作業系統命令,將該程式kill。
首先想到一點是檢查是否存在僵死程式:
SQL>select spid from v$process where addr not in (select paddr from v$session) |
然後將GG中extract程式重啟:
ggsic>info all; ggsci>stop extract * |
輸出結果發現兩個抽取程式存在長交易無法正常停止程式,需要進一步定位是什麼長交易session:
GGSCI> send extract EXTXXXX, showtrans thread 1 Sending showtrans request to EXTRACT EXTDXXXX ... Oldest redo log files necessary to restart Extract are: Redo Thread 1, Redo Log Sequence Number 31144, SCN 3108.3631174241 (13352389530209), RBA 123683344 Redo Thread 2, Redo Log Sequence Number 28782, SCN 3193.2127650774 (13715958226902), RBA 332887056 ------------------------------------------------------------ XID: 24.0.4087185 Items: 0 Extract: EXTDXXXX Redo Thread: 1 Start Time: 2013-11-14:21:27:12 SCN: 3108.3631174241 (13352389530209) Redo Seq: 31144 Redo RBA: 123683344 Status: Running ------------------------------------------------------------ XID: 27.20.3177181 Items: 0 Extract: EXTXXXX Redo Thread: 1 Start Time: 2013-11-14:21:30:31 SCN: 3108.3631249907 (13352389605875) Redo Seq: 31144 Redo RBA: 130199568 Status: Running |
從輸出結果可以看出有兩個交易啟動時間已經長達2個多月,很明顯處於不正常狀況,需要進一步確認執行語句:
SQL>select addr, start_time from v$transaction where xidusn=27; (透過以上輸出XID獲取第一位數值) ADDR START_TIME -------------------------- -------------------- 0700000E998CE528 11/14/13 21:30:30 SQL>select sid, command,sql_id from v$session where taddr in (select addr from v$transaction where xidusn=27) SID COMMAND SQL_ID ---------- ---------- ------------- 4202 2 dd2jh9ht3h4fy SQL> select sql_text from v$sqlarea where sql_id='dd2jh9ht3h4fy' insert into xxx@dblink values xxxxxxxxxxxxx SQL> select spid from v$process where addr in (select paddr from v$session where sid=4202); SPID ------------------------ 24183256 |
從以上執行結果可以看出,長連線交易的SQL語句是透過dblink插入一張表的資料,而恰好給session造成SQL*NET more data to/from client等待時間很長,消耗大量CPU等待時間。透過作業系統命令,將該程式kill。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/17172228/viewspace-1077913/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- CPU使用率低負載高負載
- cpu負載是什麼意思 電腦cpu負載過高怎麼處理解決負載
- cpu負載過高原因負載
- CPU 使用率低高負載的原因,看看這篇!負載
- Shell----監控CPU/記憶體/負載高時的程式記憶體負載
- 利用 Arthas 精準定位 Java 應用 CPU 負載過高問題Java負載
- 再一次生產 CPU 高負載排查實踐負載
- MySQL案例05:CPU負載優化MySql負載優化
- Linux程序排程器-CPU負載Linux負載
- 故障分析 | 大量短時程式導致 cpu 負載過高案例一則負載
- keepalived高可用負載均衡負載
- Nginx負載均衡高可用Nginx負載
- nginx自定義負載均衡及根據cpu執行自定義負載均衡Nginx負載
- (譯)理解Linux系統的CPU負載均值Linux負載
- zabbix修改LINUX的CPU負載監控問題Linux負載
- PostgreSQL DBA(88) - Linux(CPU使用率 vs 平均負載)SQLLinux負載
- java檢測當前CPU負載狀態的方法Java負載
- 【萬字長文】吃透負載均衡負載
- java 7中新增的CPU和負載的監控Java負載
- Keepalived實現Nginx負載均衡高可用Nginx負載
- 乾貨分享|快速定位UXDB中CPU高負荷的SQL語句UXSQL
- 使用prometheus來避免Kubernetes CPU Limits造成的事故PrometheusMIT
- nginx反向大理和負載均衡以及高可用Nginx負載
- LVS+Keepalived 實現高可用負載均衡負載
- Mycat 雙主雙從-負載均衡-高可用負載
- Haproxy+Keepalived高可用負載均衡叢集負載
- haporxy+keepalived實現負載均衡+高可用負載
- 在Linux中,發現CPU負載過大,接下來怎麼辦?Linux負載
- 為什麼MySQL沒有負載,但交易卻跑不動?MySql負載
- keepalived+haproxy實現mysql負載均衡高可用MySql負載
- Nginx 高階篇(二)什麼是負載均衡Nginx負載
- Nginx 高階篇(三)負載均衡的實現Nginx負載
- 伺服器負載過高的處理方式伺服器負載
- 3.RabbitMQ高階叢集搭建(Haproxy負載均衡、Keepalived高可用)MQ負載
- [轉帖]CPU效能原理篇:什麼是負載,應該如何排查負載
- Linux 中的負載高低和 CPU 開銷並不完全對應Linux負載
- Java cpu 高排查Java
- 如何使網站伺服器承擔高負載網站伺服器負載
- 如何解決linux系統平均負載高(load average)Linux負載