数据库监控、诊断
深圳gg
这个作者很懒,什么都没留下…
展开
-
expdp导出慢的问题
expdp导出慢,看等待事件是Disk file operations I/O。Disk file operations I/O This event is used to wait for disk file operations (for example, open, close, seek, and resize). It is also used for miscellaneous I/O operations such as block dumps and password file acce原创 2021-06-19 10:40:43 · 1162 阅读 · 0 评论 -
Oracle12c impdp导入慢的问题
现场反馈数据泵导入超慢,40M的dump,导入花了20分钟。对于Oracle数据库来说,诊断问题对运维问题是比较友好的,通常的思路是看相应会话的等待事件。select s.INST_ID, s.sid, s.SERIAL#, s.EVENT, s.WAIT_CLASSfrom gv$session swhere s.MODULE like ‘%Data Pump%’等待事件是:Streams AQ:enqueue blocked on low memory1.从字面意思上解读是内存不够,可...原创 2021-06-17 16:25:23 · 2464 阅读 · 0 评论 -
Oracle默认并行度引起数据库挂起
上周六现场数据库运维厂家反馈,有一个实例hang住了,说是两条SQL引起的,操作系统上报too many open files的错误。看了一下数据库报告,主要是gc domain validation,latch: parallel query alloc buffer这两个等待事件。 发现有两条SQL执行很多次,负载占了数据库的一半。分析SQL,使用了Oracle默认的并行度,哪并行度到底是多少呢? 单实例 = PARALLEL_THREADS_PER_CPU x CPU_COUNT ...原创 2020-06-01 11:38:49 · 1050 阅读 · 0 评论 -
Oracle 诊断临时暴涨的诊断
要想诊断过去临时表空间不足的问题。### Cause: org.hibernate.exception.GenericJDBCException: ORA-30928: 使用过滤状态的连接用尽了临时表空间ORA-30928: Connect by filtering phase runs out of temp tablespacesponsored linksCause: I原创 2016-09-21 15:52:10 · 1504 阅读 · 0 评论 -
window 2008 定时任务调用bat不成功的解决方法
之前一直有在一台XP的机器上调用定时任务,现在这台机器换成了window 2008的操作系统,调用一直不成功,不过在偶然之间解决了。 选择“任务计划程序” 任务计划程序库 点击创建基本任务 ,名称写上监控数据库,点击下一步 任务触发器 每天,点击下一步 每日填上相应的时间,点击下一步 操作,启动程原创 2014-04-18 08:38:43 · 6161 阅读 · 0 评论 -
2017-03-27Oracle故障gc buffer busy acquire导致数据库不可用
Snap IdSnap TimeSessionsCursors/SessionInstancesBegin Snap:1315824-3月 -17 09:00:2715317.52End Snap:1315924-3月 -17 10:00:38181010.02Ela原创 2017-03-28 10:33:18 · 5627 阅读 · 0 评论 -
Oracle临时表空间不够用一次经验主义导致贻误战机
? 现场报问题,现场用户操作系统功能报错,分析日志知道临时表空间不够用。### The error may exist in data/code/oms/EAR/APP-INF/lib/gg-cap-runtime-top-access-20150527.jar!/com/gg/top/sys/accesscontrol/service/dbconfig/UserFuncSQL.xml##...原创 2017-03-28 14:28:32 · 1010 阅读 · 0 评论 -
Oracle redo log切换非常频繁
检查数据库报告,发现log file sync 平均等待已经超过20ms,说明DML提交很慢,很可能磁盘比较慢。先查看IOStat by Function summary,确认一下数据库整体IO的情况。然后分析Segments by Physical Reads、Segments by Direct Physical Writes,是否有消耗占比大的对象。如果有则优化对应的SQL。 如原创 2017-03-28 16:40:47 · 10906 阅读 · 0 评论 -
Oracle11g RAC下真的要关闭DRM
以前从来没有遇到过如此的问题,特别是gcs drm freeze in enter server mode等待事件。Top 10 Foreground Events by Total Wait TimeEventWaitsTotal Wait Time (sec)Wait Avg(ms)% DB timeWait Clas原创 2017-04-06 16:07:52 · 14661 阅读 · 0 评论 -
Oracle数据库数据文件暴涨80G原因追查
凌晨6点钟接到数据库告警,磁盘快满了,不对啊,下班之前还检查过,还有很多。获取0-6点的数据库报告,数据库是3个实例,其中一个的信息为:OwnerTablespace NameObject NameSubobject NameObj. TypeDB Block Changes% of CaptureLPUB原创 2017-03-29 17:00:22 · 2099 阅读 · 0 评论 -
Oracle 11g 分析出那些表缺失索引
在设计、开发阶段我们会加索引,不过难免保证在运维阶段索引加全了。此时就需要把执行计划中带有全表扫描的SQL都找出来。sqlplus TEST/TEST@10.10.15.25 --数据库的用户名和密码,每个实例上都要运行set serveroutput on size 100000spool d:/result.txt set pagesize 200set linesi原创 2017-07-25 15:35:55 · 1552 阅读 · 0 评论 -
2017-8-11 db file sequential read占用很大可能存在的问题
一直有个疑问就是db file sequential read时间占比很大说明什么问题?是说明单块读很多吗?进而说明索引读取很多,很慢。今天看一个数据库报告我想知道原因了。先是用户反馈系统慢,看了下数据库报告,确实很多SQL慢,绝大部分时间都在等IO。Elapsed Time (s)ExecutionsElapsed Time per Exec (s)原创 2017-08-11 10:44:02 · 2429 阅读 · 0 评论 -
Oracle 11.2.0.4.0 RAC下DRM导致单节点宕机
DRM的bug太多,所以建议直接关闭。alert日志:Errors in file /oracle/app/oracle/diag/rdbms/gg/gg1/trace/gg1_lmon_60688126.trc:ORA-29702: error occurred in Cluster Group Service operationNo connectivity to other原创 2017-08-15 16:38:55 · 2794 阅读 · 0 评论 -
Oracle11.2.0.4查询表一直卡住cursor:pin s on x
现场反馈:查询一张几千条数据的表,一直卡住,然后重启了数据库,还是这样。1.获取了数据库报告,发现排在第一位的是cursor:pin s on x等待事件。Top 10 Foreground Events by Total Wait TimeEvent Waits Total Wait Time (sec) Wait Avg(ms) % DB time Wait Classcursor: ...原创 2019-09-29 10:17:02 · 1279 阅读 · 0 评论 -
2016-8-26并行惹的祸
刚现场反馈,系统有点慢,现场把进程的数量查了一下,1万多个进程。现场数据库是Oracle11g RAC两个实例。select count(*) from gv$process; COUNT(*)---------- 10497select s.USERNAME,s.SCHEMANAME,s.MACHINE,s.PROGRAM,s.EVENT from v$sessio原创 2016-08-26 18:11:14 · 1430 阅读 · 0 评论 -
oracle 11g SQL profile惹的祸
接到电话系统有时间会比较慢,先把数据库报告拿回来分析了一下:1. 可以基本上是并行产生的等待。Top 10 Foreground Events by Total Wait TimeEventWaitsTotal Wait Time (sec)Wait Avg(ms)% DB timeWait Class原创 2016-08-31 18:15:04 · 3238 阅读 · 0 评论 -
Oracle 无法通过 128 (在表空间 TEMP 中) 扩展 temp 段
开发人员找我,Oracle11g下SQL语句报无法通过 128 (在表空间 TEMP 中) 扩展 temp 段。因为在开发环境上,初步判断是SQL的问题,把SQL中的WMSYS.WM_CONCAT改为listagg,此SQL就没问题了,等了一会,开发人员再次找到我,说还有很多SQL报错。此时我判断现在是个系统的问题。之前写过一篇,2016-1-8 ORA-1652: unable to ext原创 2016-04-11 10:02:39 · 4290 阅读 · 0 评论 -
OEM大量占用cpu解决方法
今天用pl/sql连数据库很慢,执行SQL也很慢,使用的数据库是10.2.0.1.0 。 1. 登陆到数据库服务器上,使用top命令,看到有一个进程perl占用CPU为100%,是属于oracle用户的。 2. 直接kill -9,可惜的是过了几秒钟此进程有启动了,又占用了100%的CPU。 3. 关闭emctl stop dbconsole,然后再ki原创 2013-06-14 12:41:16 · 6601 阅读 · 0 评论 -
2012-11-04系统不可用分析
11-04(周日)中午12:00-13:00,由于数据库CPU占用接近100%导致系统不可用。 一、生成出12:00-14:00的数据库报告,先做一轮排查 1. DB Time为1,360.70 (mins),工作日8:00-12:00的DB time为400(mins)以下,说明CPU的消耗确实不正常。 2. 检查Top 5 Timed Ev原创 2012-11-07 19:33:56 · 875 阅读 · 0 评论 -
oracle 一存储过程执行超过9小时诊断
今天查看正式环境awr报告,1:00-10:00有个存储过程一直在执行。找到这个存储过程,分析了下结构和功能,结构是26个update语句,功能是统计各区设备数量,将查询结果插入一个表A中。处理过程如下: 1. 在测试环境下执行,非常快啊,2分钟就执行完成。确认了一下测试环境和正式环境的数据量,确定是一样的。 2. 怀疑是update A表的时候被锁定。次日一大原创 2012-09-19 17:44:14 · 4145 阅读 · 0 评论 -
Oracle 通过AWR的SQL ordered by Gets和SQL ordered by Reads诊断问题
之前看过很多数据库报告,直到最近出现过两次严重的性能问题,非常有代表性,所以记录下来。 一次是报Oracle进程把数据库服务器的CPU弄到100% SQL ordered by Gets 是在内存中取数据,单位是次,是消耗CPU的主要源头,在调试SQL的时候,大部分时候都是通过它来衡量性能。下面是实际的AWR报告,相当骇人啊:SQL ordered by Gets原创 2015-05-13 11:43:19 · 13744 阅读 · 0 评论 -
ORA-02049: 超时: 分布式事务处理等待锁诊断
正式环境有两个数据库A和B,在A库上建的dblink,业务是要将A库中的一些表,通过dblink更新到B库中去,更新的时候总是报错:ORA-02049: 超时: 分布式事务处理等待超时。 之前我写过一篇blog:ORA-02049: 超时: 分布式事务处理等待锁模拟,大致的意思是通过A更新B中的数据时,由于B库中的数据有锁,一直都不释放,导致通过A更新报错。诊断如下:在B库上执行原创 2015-05-13 17:07:16 · 3592 阅读 · 0 评论 -
log file switch (checkpoint incomplete)的问题定位
今天测试环境下应用慢,发现数据库出了问题,直接上AWR报告。由于是虚拟机,所以不用贴cpu的个数,可以发现负载高。 Snap IdSnap TimeSessionsCursors/SessionBegin Snap:1525730-Jun-15 09:30:575585.3En原创 2015-06-30 14:22:37 · 6924 阅读 · 0 评论 -
oracle表不能DDL和存储过程不能创建处理方法
在做数据迁移的过程中,我们会面临两种常见的hang住场景: 1.表不能修改加字段,不能增大长度。 2.存储过程不能覆盖。场景1:为表添加字段hang住的处理session1:create table test as select * from dba_objects;select * from test where object_id = 20 for upda原创 2015-05-18 15:17:36 · 2106 阅读 · 1 评论 -
log file sync的再次思考
昨天系统整体慢,最终定位到是数据库层面的问题。在TOP的等待事件中可以看到log file sync平均等待达到了157,根据之前的经验这个值超过20就有性能问题。 如果按照以前的诊断思路,就是认定服务器的IO有问题,建议用IO快一点的存储。 不过通过这次问题的解决,思路有些变化,发生log file sync等待事件过高说明服务器IO出现瓶颈,这是没有问题的。如果此服务器IO原创 2015-11-27 10:12:37 · 2020 阅读 · 0 评论 -
又是数据库服务器IO高引起的问题
昨天整个系统慢,weblogic日志有大量stuck,数据库服务器IO负载高。取了数据库报告后发现了问题。负载很高,平常DB Time最多1000.Host NamePlatformCPUsCoresSocketsMemory (GB)XXXXXXAIX-Based Systems (64-bit)12832 123.原创 2015-12-02 10:47:00 · 6446 阅读 · 0 评论 -
linux OSwatch 安装试用
oswatch是通过调用系统的命令完成信息的收集,有ps,top,mpstat,iostat,netstat,traceroute,vmstat。支持的操作系统有AIX ,Tru64,Solaris,HP-UX,Linux,windows。[root@oracle oswbb]tar -xf oswbb732.tar[root@oracle oswbb]cd oswbb[root原创 2015-12-22 17:25:33 · 1210 阅读 · 0 评论 -
诊断一次Oracle日志切换频繁的问题
日志切换,就是生成的日志太大,数据块的变化太频繁。Snap IdSnap TimeSessionsCursors/SessionBegin Snap:1456009-Dec-15 04:00:48594.5End Snap:1456109-Dec-15 05:00:59544.6Elapse原创 2015-12-23 16:13:31 · 6984 阅读 · 0 评论 -
2016-1-8 ORA-1652: unable to extend temp segment by 128 in tablespace解决方案
一次ORA-1652的诊断过程,系统不能使用,重启后可以使用。weblogic日志:#### > <[STUCK] ExecuteThread: '6' for queue: 'weblogic.kernel.Default (self-tuning)' has been busy for "603" seconds working on the request "Ht原创 2016-01-08 18:13:29 · 13045 阅读 · 0 评论 -
Oracle收集表的数据与统计信息差异
有时候有这样的烦恼,由于dmp增量到数据库中,或是大批量数据操作后没有收集表的统计信息,导致数据库性能慢。要手工写脚本检查。drop table gather_tcount;create table gather_tcount( TABLE_NAME VARCHAR2(30) not null, gather_time date, num_rows numbe原创 2016-03-28 15:46:05 · 2306 阅读 · 0 评论 -
2013-07-03 做的一次数据库诊断
今天分析管理的一个数据库AWR报告,发现从6月28日0点到8点,数据库中有一条语句执行接近1亿2千万次,同时也非常耗资源,对生产环境系统性能影响极大。接着分析28日之后的报告,发现此SQL语句每个小时都执行超过千万次。通过排查已经确定是在06-27 08:30:17,某一个同事以xxxx的账号登录到正式环境上,用PL/SQL中执行SQL没有关闭,一直在执行。17:00我已经关闭此执行会话,18原创 2013-07-04 14:27:04 · 1392 阅读 · 0 评论