使用shell脚本查看数据库负载情况(第二篇)
在之前写了一个shell脚本,能够得到一个基于时间点的数据库负载报告。使用shell脚本查看数据库负载情况 http://blog.itpub.net/23718752/viewspace-1168027/在生产环境中快照的生成频率可能10分钟或者半个小时就会生成,频率要快些,使用原先的脚本执行起来会有一定的延时。想查看在快照的时间间隔内数据库的负载...
使用shell脚本查看数据库负载情况
平时在查看数据库的问题时,会有种迷茫的感觉,如果没有任何人反馈问题,基本上没有主动查找问题的方向,awr,ash都是在得知问题发生的时间段或者一些时间戳来从历史记录中查找相关的信息,个人整理了如下的脚本,能够显示当天的时间段内数据库的负载信息,能够很好掌握数据库的忙闲情况。 来看一个简单的例子,比如我要查...
一条执行4秒的sql语句导致的系统问题
一般来说一条sql语句执行个4秒钟是可以接受的,没有什么问题,但是如果应该执行1秒,却执行了4秒,问题就挺大的了。今天查看数据库负载,发现在中午12:00 到1点之间,数据库的负载急剧增加,负载达到了百倍。Snap IdSnap TimeSessionsCursors/Session...
关于纠结的recycle pool的设置
现在生产环境中目前有一个很大的中继表,作为多个流程的数据流动所用,数据量很大。里面有clob字段,加上庞大的数据量,表就显得很臃肿了。目前在做大批量的数据处理的时候发现了一些问题,事物数在不断增加的情况下,数据的处理速度也在不断的降低。最后出现了一些资源的问题。在抓取了awr和同事的分析之后,产品部门...
一条sql语句导致的数据库宕机问题及分析
之前分享过一篇博文,是一条sql语句"导致"的数据库宕机,上次是另有原因,这次真碰到一个案例,而且是在重要的环境上,希望大家引以为戒。数据库是基于Linux64的版本,版本是11.2.0.2.0,已经打了最新的psu.数据库的访问用户数大约在1000左右,当时查看服务器的cpu已经是100%了,有大约10个进程都是cpu 100%,数据库逻辑读...
impdp/expdp 并行时出现wait for unread message on broadcast channel等待事件
昨晚有个朋友说加班在IMPDP数据, 在导入中途突然没有了进展,挂在那里不动了,impdp 窗口也没有报错, 一直等了1个多小时,说是impdp使用了parallel,怀疑是parallel参数出了问题, 最终其实原因很简单。这里只是简单的描述遇到这类问题时的处理思路。 set lines 150 pages 100 numwidth 7 col program...
redo_log_switch_date
select sequence#, to_char(first_time, 'yyyy-mm-dd hh24:mi') || ' ' || to_char(nexttime, 'hh24:mi'), round(((first_time - nexttime) * 24) * 60, 2) diff from (select sequence#, ...
archive_log_size_group_by_day
--每天产生的archive_log_sizeselect trunc(completion_time), sum(G)
rman_trun_arch.sh
<span style="font-family:宋体;line-height:normal;orphans:2;text-align:-webkit-auto;white-space:normal;widows:2;font-size:medium;"><br />#!/bin/bash</span><br style="font-family:宋体;line-height:normal;orphans:2;text-align:-webkit-auto;white-space:normal;widows:2;font-size:medium;" /><span style="f...
格式化DBMS_METADATA获得DDL
<span style="font-family:宋体;line-height:normal;orphans:2;white-space:normal;widows:2;font-size:medium;">--输出信息采用缩排或换行格式化</span><br style="font-family:宋体;line-height:normal;orphans:2;white-space:normal;widows:2;font-size:medium;" /><span style="font-family:宋体;line-height:normal;o...
等待事件脚本
SELECT t1.sid, t1.serial#, t1.machine, t1.username, t1.event, t2.sql_text, t1.sql_id, t1.seconds_in_wait, ...
Query temp ts use
--Query temp ts useSELECT b.tablespace, ROUND(((b.blocks * p.value) / 1024 / 1024), 2) || 'M' AS temp_size, a.sid || ',' || a.serial# AS sid_serial, NVL(a.username, '(oracle)') AS username, a...
Query undo ts use
--Query undo ts useSELECT TO_CHAR(s.sid) || ',' || TO_CHAR(s.serial#) AS sid_serial, NVL(s.username, '(oracle)') AS username, s.program, r.name undoseg, t.used_ublk * TO_NUMBER(x.value) / 102...
关于session leak的问题分析
在生产环境中,作为dba需要对系统的负载有一个很清晰的认识。能够在很快的时间内能够发现系统潜在的问题,并且及时定位问题,高效的响应和处理问题。比如说对于生产环境的session leak问题,这个部分是awr都很难捕捉到的信息,如果问题比较隐蔽,连ash也很难定位。比如说在早上9点的时候某个程序出现了session leak的问题...
通过shell脚本监控oracle session
最近数据库碰到了连接紧张的问题,想通过一个脚本对数据库的session情况一目了然。以下是自己写的脚本。实现的效果如下。对session的总体情况,那些program主要在占用,每个用户所拥有的session(active,inactive,killed,sniped...)都能够一目了然。STATUS CNT-------- ----------...
find命令详解
Linux find 命令是所有 Linux 命令中最有用的一个,同时也是最混乱的一个。它很难,因为它的语法与其他 Linux 命令的标准语法不同。但是,它很强大,因为它允许您按文件名、文件类型、用户甚至是时间戳查找文件。使用 find 命令,您不但可以找到具这些属性任意组合的文件,还可以对它找到的文件执行...
和开发人员讨论一个业务需求和简单实现
前几天一个开发的同事来找我咨询一个问题,说是咨询,其实是开发的同事也不是非常清楚里面的逻辑,因为历史系统,历史原因,各种原因吧,所以我也是带着试试看的态度来帮助了这位同事。这位同事知道这个咨询我的是一个存储过程。基本思路是从千万级的表table1中查出结果集,然后在table2,table3,table4都插入数据。这个存...
保持 RAC 群集环境稳定当前必须要做的 11 件事 (文档 ID 1525819.1)
保持 RAC 群集环境稳定当前必须要做的 11 件事 (文档 ID 1525819.1)转到底部文档内容...
提升自己oracle分析能力一些思考及方法论
AIX中快速定位引起大量磁盘IO操作的进程
公司的一个生产应用发生异常,无法正常运行。当时应用系统异常后,登录主机发现/tmp文件系统写满了,删除了一些不用的文件后,应用正常,但df -k 查看后发现 /tmp 剩余空间仍然在不断增长,而且速度很快。看来没有找到问题的实质。最后应用开发人员的协助下,发现是一个应用进程在不断的向 /tmp 中写一个临时文件,这个...