成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

記一次生產環境卡頓優化過程:大事務并發回滾

數據庫 SQL Server
最近生產環境有這么個現象,平時的訂單調度只需要2s內可以出結果,但是多個人調度就會卡住,超過15分鐘都沒有結果出來,有時還會失敗然后導致數據不準確。

 [[273847]]

概述

最近生產環境有這么個現象,平時的訂單調度只需要2s內可以出結果,但是多個人調度就會卡住,超過15分鐘都沒有結果出來,有時還會失敗然后導致數據不準確。

記一次生產環境卡頓優化過程--大事務并發回滾

下面記錄一下生產環境卡頓時排查的過程。

1、獲取ASH報告

  1. SQL> @?/rdbms/admin/ashrpt.sql 
  2. --To specify absolute begin time: 
  3. --[MM/DD/YY]] HH24:MI[:SS] 
  4. --08/09/19 08:40:00 

 

記一次生產環境卡頓優化過程--大事務并發回滾

 

記一次生產環境卡頓優化過程--大事務并發回滾

 

記一次生產環境卡頓優化過程--大事務并發回滾

 

記一次生產環境卡頓優化過程--大事務并發回滾

2、ASH分析

(1)Top User Events

記一次生產環境卡頓優化過程--大事務并發回滾

(2)相關sql

Top SQL with Top Events

記一次生產環境卡頓優化過程--大事務并發回滾

sql明細

記一次生產環境卡頓優化過程--大事務并發回滾

(3)存儲過程

記一次生產環境卡頓優化過程--大事務并發回滾

(4)TOP sessions

記一次生產環境卡頓優化過程--大事務并發回滾

從上面分析可以看到兩個明顯的等待事件:wait for stopper event to be increased 等待事件和wait for a undo record 等待事件,這個應該是批量任務調度的時候產生了大量的大事務,產生了一些回滾造成了嚴重的資源消耗

3、處理大事務并發回滾

一般情況下wait for stopper event to be increased 等待事件是跟wait for a undo record 等待事件聯系起來的。

對于這個等待事件metalink上面有一篇文檔

  1. 464246.1 
  2. Sometimes Parallel Rollback of Large Transaction may become very slow. After killing a large running transaction  
  3. (either by killing the shadow process or aborting the databasethen database seems to hang, or smon and parallel query servers  
  4. taking all the available cpu. 
  5. In fast-start parallel rollback, the background process Smon acts as a coordinator and rolls back a set of transactions in parallel  
  6. using multiple server processes. Fast start parallel rollback is mainly useful when a system has transactions that run a long time  
  7. before comitting, especially parallel Inserts, Updates, Deletes operations. When Smon discovers that the amount of recovery work is  
  8. above a certain threshold, it automatically begins parallel rollback by dispersing the work among several parallel processes. 
  9. There are cases where parallel transaction recovery is not as fast as serial transaction recovery, because the pq slaves are interfering 
  10. with each other. It looks like the changes made by this transaction cannot be recovered in parallel without causing a performance problem.  
  11. The parallel rollback slave processes are most likely contending for the same resource, which results in even worse rollback performance  
  12. compared to a serial rollback

解決的辦法:

  1. --關掉并發回滾,變成串行回滾(直接重啟解決) 
  2. sql> alter system set fast_start_parallel_rollback = false scope=spfile;  

 

記一次生產環境卡頓優化過程--大事務并發回滾

通常,如果有很多并發進程,可以根據v$px_session視圖去查看,查看v$px_session視圖,發現所有的并發進程都是由smon進程導致(即qcsid列為smon進程的session id)

而smon進程的等待事件為wait for stopper event to be increased

即smon進程在做大事務的回滾,默認參數fast_start_parallel_rollback參數為low,即回滾時會啟動2*CPU個數 個并發進程。而由于是使用并發,所以可能由于并發之間相互使用共同的資源,導致回滾速度更慢。因為是生產環境,不能隨便重啟,所以我用了下面的方法來修改這個參數:

(1)查找smon進程ID

  1. select pid,spid,pname,username,tracefile from v$process where pname='SMON' 

 

記一次生產環境卡頓優化過程--大事務并發回滾

(2)禁用smon進程的事務清理(Disable SMON transaction cleanup)

  1. oradebug setorapid 'SMON's Oracle PID'; 
  2.  oradebug event 10513 trace name context forever, level 2 

 

記一次生產環境卡頓優化過程--大事務并發回滾

(3)查詢V$FAST_START_SERVERS視圖,將所有smon啟用的并發進程殺掉

記一次生產環境卡頓優化過程--大事務并發回滾

(4)修改fast_start_parallel_rollback參數

  1. alter system set fast_start_parallel_rollback=false

(5)啟用smon進程的事務清理(enable transaction recovery)

  1. oradebug setorapid 'SMON's Oracle PID'; 
  2. oradebug event 10513 trace name context off 

(6)獲得tracefile name

  1. oradebug tracefile_name 
記一次生產環境卡頓優化過程--大事務并發回滾

(7)驗證

記一次生產環境卡頓優化過程--大事務并發回滾

4、業務驗證

修改后去業務驗證,到高峰期還是有卡頓現象,不過頻率減少了很多,報錯之類的也沒有了,同時觀察新的報告可以發現并發回滾之類的等待事件已經沒有了。

責任編輯:華軒 來源: 今日頭條
相關推薦

2021-03-01 06:14:50

環境高并發延遲

2022-06-01 06:17:42

微服務Kafka

2019-09-24 07:00:01

SQL Server服務器卡頓內存分配

2019-08-19 01:34:38

數據庫SQL數據庫優化

2019-01-21 11:17:13

CPU優化定位

2019-12-12 10:38:10

mysql數據庫nnodb

2019-09-27 17:24:26

數據庫優化sql

2020-11-03 07:34:12

Kafka后端工程師

2020-09-25 07:57:42

生產事故系統

2018-12-06 16:25:39

數據庫服務器線程池

2019-11-18 13:42:55

MySQL數據庫遷移

2019-09-08 17:52:10

數據庫log file sy等待事件

2019-11-22 08:05:01

數據庫mysql分區

2019-12-16 07:18:42

數據庫SQL代碼

2019-12-02 08:09:57

境數據庫連接超時自動回收

2025-05-14 08:05:00

大數據Kafka集群

2021-01-12 07:57:36

MySQLBinlog故障處理

2025-05-19 09:22:32

2019-12-27 10:43:48

磁盤數據庫死鎖

2019-07-25 08:30:58

數據庫服務器故障
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲一区二区三区在线视频 | www.国产91 | 久久在线| 成人h电影在线观看 | 国产一区二区精品 | 中文字幕成人 | 色欧美综合 | 日韩精品久久一区 | 欧美日韩综合一区 | 国产精品免费在线 | 日韩精品在线看 | 日韩在线欧美 | 国产精品久久a | 成人欧美一区二区三区在线播放 | 大吊一区二区 | 无码一区二区三区视频 | 免费a大片 | 中文字幕日韩欧美 | 国产精品久久久亚洲 | 欧美www在线| 中文字幕成人 | 中文字幕第5页 | 亚洲一区二区久久 | 天天射影院 | 国产精品视频一区二区三区四蜜臂 | 精品中文在线 | 91手机精品视频 | 亚洲精品久久久久中文字幕二区 | 欧美成人免费在线视频 | 精产国产伦理一二三区 | 免费视频二区 | 精品欧美二区 | 欧美高清一区 | 国产美女精品 | 欧美一页 | 亚洲高清av在线 | 国产成人精品区一区二区不卡 | 婷婷激情在线 | 天天射天天干 | 欧洲一区二区三区 | 国产精品1|