首页 > 数据库 >并行回滚导致的数据库hang

并行回滚导致的数据库hang

时间:2022-10-10 18:36:52浏览次数:55  
标签:回滚 hang 数据库 db file event select

国庆节假日的最后一天,客户反馈数据库运行较慢,pl/sql连接数据库登陆直接卡死,请求排查原因。因为是内网环境,不太方便查看,同事在接到请求后指导客户进行排查,排查了服务器空间、alter日志、等待事件延迟等信息,并未看到有效的信息反馈。

##通过以下命令来查看当前等待事件的延迟,通过以下发现延迟较高以为是存储性能出现故障,询问是否检查存储,得到的反馈是已经联系浪潮相关人员,存储正常

select * 
  from (
        select event, total_waits,total_timeouts,time_waited,average_wait
          from gv$system_event
          where time_waited > 0
          order by time_waited desc )
  where rownum <=10 ;

 

 通过以下命令查看数据库相关等待事件,发现以下信息,这里发现数据库正在等待undo record,怀疑是数据库正在进行回滚操作

select event,count(*) from v$session_wait group by event order by 2

到这里后我就申请通过内网跳转到目标数据库服务器,并对当前数据库进行查询,发现数据库执行相关命令异常缓慢

#通过以下命令,发现数据库有80个进程,正在进行回滚,这里的80个进程和上面查询的db file sequential read等待事件的个数正好对应上。

select spid from v$process where pid in (select pid from v$fast_start_servers);

抓取了当前环境的ash报告,从这里也发现了当前数据库的db file sequential read在读取undo表空间

 

这里我也发现了db file sequential read、db file parallel write和wait for a undo record同时出现。

 

 

 通过以上信息,我判断数据库此时正在执行并行回滚,对应的进程数为80,将数据库相关资源耗尽,这里我的思路就是将并行回滚设置为串行回滚,也就是修改参数fast_start_parallel_rollback=false,并重启数据库

alter system set fast_start_parallel_rollback=false scope=spfile;
shutdown abort
startup

重启数据库后,数据库虽然仍在回滚,但是数据库已经没有之前卡顿了,其他业务也能正常进行

 

标签:回滚,hang,数据库,db,file,event,select
From: https://www.cnblogs.com/hanglinux/p/16776757.html

相关文章

  • 2022-10-10 (≥▽≤) Redis数据库
    1.RedisNoSQL:NotOnlySQL非关系型数据库NoSQL的四大类:键值(Key-Value)存储数据库,使用到一个哈希表,这个表中有一个指针指向特定的数据:Redis,Memcache。列存储数据库......
  • Python-pymysql操作MySQL数据库
    一、安装pymysqlpy-mpipinstallpymysql;二、pymysql数据库操作1.简单示例#coding=utf-8importpymysql#打开数据库连接conn=pymysql.connect(host=......
  • python连接tdengine数据库
    1、首先在pyCharm中install(我的做法)或者: pipinstallC:\TDengine\connector\python\windows\python3(参考 https://blog.csdn.net/Tomonkey/article/details/10880791......
  • adg dumplcate数据库搭建--ora-01537
    dumplicate数据库搭建过程中如下报错  通过以下命令查看相关ora报错信息[oracle@oracle11g~]$oerrora153701537,00000,"cannotaddfile'%s'-filealread......
  • python连接Phoenix数据库
    参考:https://www.cnblogs.com/alexgl2008/articles/12703793.html1、连接后查询数据:    2、连接后插入数据:  执行结果: ......
  • DataSource——数据库连接池
    #今日内容1.数据库连接池2.SpringJDBC:JDBCTemplate##数据库连接池1.概念:其实就是一个容器(集合),存放数据库连接的容器。当系统初始化......
  • [转]SQL标准对schema如何定义?(不同数据库中schema模式的意义)
    原文地址:SQL标准对schema如何定义?-知乎(zhihu.com)SO/IEC9075-1SQL标准中将schema定义为描述符的持久命名集合(apersistent,namedcollectionofdescriptors),如果......
  • idea连接mysql数据库报错
      原因:版本的问题我安装的mysql版本高,但是驱动的版本低,所以就不行了,那就换个版本,我用了最新的版本,好了   ......
  • 38、mysql数据库(pymysql及事务)
    38.1、python之pymysql模块:1、说明:pymsql是Python中操作MySQL的模块,其使用方法和py2的MySQLdb几乎相同。2、模块安装:pipinstallpymysql3、在pycharm中添加pymysql模块:File......
  • 36、mysql数据库(dml)
    36.1、表记录的增删改:1、增加表记录:insert[into]tab_name(field1,filed2,.......)values(value1,value2,.......);(1)创建一张表:createtableemployee_new(idintprimaryk......