Oracle_AWR报告分析指南(经典版)
如何分析Oracle_AWR报告
Oracle使用DBCA创建数据库脚本追踪学习案例(一)
使用oracle 10g数据库创建脚本实现手动创建数据库
Oracle RAC系列之:ASM基本操作维护(经典)
Oracle RAC系列之:ASM基本操作维护(经典)
Oracle10G Dataguard 多个备库 - 主库和物理备库的切换
一、规划平台:VMWare Server1.07、RHEL4.5 X86、Oracle10.2.0.1+p6810189_10204。保护模式:最大可用。为了考虑主库和物理备库的切换,主库也建standby redo logs。逻辑备库不考虑切换。为了更加理解参数设置,db_n...
latch:shared pool的一点理解
[@more@]latch:shared poolshared pool latch 起到保护堆的作用,为了查找free chunk,检索空闲列,分配适当的chunk,必要时候分割chunk。这些全部只能在获得shared pool latch之后才能执行。因此在获得shared pool latch过程中会发生latch:shared pool等待事件.一般情况下一个实例上只有一个latch:shared poolharding parse严重时,会发生分割chunk的现象.---==============================================================测试latch:shard pool等待事件创建测试脚本:create or replace procedure tt_pro isbeginfor i in 1.
通过shell来比较oracle和java中的字符串使用
今天在无意中看到了java字符串的一些东西,发现和oracle比较起来还是有一定的意义的,但是发现知识点准备好了,比较的时候,每一处java的变更都得重编译运行还是不够直观,其实代码中变化的部分很固定,所以尝试写了一个简单的shell脚本来实现动态编译运行,使得演示也更加直观,使用Runtime.exec还是有一些限制。比如我们...
使用logon trigger完成动态的session跟踪
在之前讨论过 关于oracle中session跟踪的总结,可以参见链接 http://blog.itpub.net/23718752/viewspace-1150568/基本的session跟踪方法都做了讨论,但是在实际应用中场景可能要复杂一些,比如我们可以对指定的session开诊断事件,如果session中运行的某个环节出现问题,可以根据诊断事件得到比较明细的递归sql...
一条全表扫描sql语句的分析
今天在对生产系统做监控的时候,发现一个process的cpu消耗很高,抓取了对应的session和执行的sql语句。发现是一个简单的update语句,这样一条如果CPU消耗较大,很可能是由于全表扫描的。UPDATECOMM_ACTIVITY SET COMM_ACTIVITY.EXTRACT_STATUS = NVL(:1 ,EXTRACT_STATUS), COMM_ACTIVITY.SOURCE_TYPE = NVL(:2 , SOURCE...
MySQL和Oracle对比学习之数据字典元数据
MySQL和Oracle虽然在架构上有很大的不同,但是如果从某些方面比较起来,它们有些方面也是相通的。毕竟学习的主线是MySQL,所以会从MySQL的角度来对比Oracle的一些功能。大体总结了以下的内容,欢迎大家拍砖,查看当前的数据库名mysql> SELECT DATABASE();+------------+| DATABASE() |+------------+| test &...
通过shell脚本来得到不稳定的执行计划
生产系统中总是可能碰到各种各样的sql问题,其中大部分问题都和执行计划有关,执行计划出现问题有很多原因导致,比如统计信息过旧,比如数据的分布极不均匀等等都会导致执行计划出现很大的偏差。可能有的sql语句在一周时间内,有一天执行只需要5秒,过了几天之后却需要几个小时,这种执行计划时需要格外重视的,这种问题目...
通过使用hint unnest调优sql语句
生产环境中有一条sql语句通过sql_monitor看到执行的时间实在是太惊人了,竟然达到了13个小时,而且还没有执行完。SessionAPPC (20015:7013)SQL ID74pzzzjddkyd4SQL Execution ID16777242Execution Start...
通过ORA错误反思sql语句规范
今天快下班的时候,有个开发的同事问我一个问题,说他在客户端执行一条sql语句,里面包含子查询,如果单独执行子查询,会报"invalid identifier"的错误,但是整个sql语句一致性就没有错误,而且数据的结果还是正确的,碰到这种问题,想必都是信心满满,越是奇怪越想探个究竟。为了能够简单说明这个问题,我使用如下下面的...
关于内存异常的一个猜想
今天查看生产某个服务器的负载的时候,发现内存的使用情况有些异常。top - 12:00:08 up 15 days, 12:04, 13 users, load average: 63.31, 55.12, 43.39Tasks: 5542 total, 21 running, 5511 sleeping, 0 stopped, 10 zombieCpu(s): 13.6%us, 3.7%sy, 0.0%ni, 81.1%id, 0.1%w...
操作系统存储管理和oracle数据库(第二篇)
在之前分享过第一篇 关于操作系统存储管理和oracle数据库 http://blog.itpub.net/23718752/viewspace-1359146/感觉对自己来说是迈出了艰难的一步,操作系统的概念有时候确实感觉枯燥,但是细细品来,都是前车之鉴,很多的方法或者改进都是在碰到很多问题之后总结琢磨出来的,所以从某种程度上来说,操作系统的基础是...
操作系统存储管理和oracle数据库(第三篇)
在之前的一篇博文中讨论了分页存储,http://blog.itpub.net/23718752/viewspace-1435671/今天看了下分段存储,尽管这部分内容都是大学的课程内容,但是感觉好像没学过一样:)分段式存储管理系统中,会为每个段分配一个连续的分区,而进程中的各个段可以离散地移入内存中不同的分区中,这一点上所说的段和数据库中的段还...
job处理缓慢的性能问题排查与分析
昨天开发的同事找到我说,生产有个job处理数据的速度很慢,想让我帮忙看看是怎么回事,最近碰到这种问题相对比较多了,但是问题的原因也是五花八门。我还是大体找他们了解了下情况,说有一个Job是处理文件传输的,但是从目前的运行情况来看,处理速度很慢,基本没什么进展,我向他们确认这几天是否有数据变更的操作,他们说...
使用telnet命令验证邮箱
前些天在看一本shell脚本攻略的时候,里面有一个章节是通过curl命令来访问gmail邮箱,我在本地反复尝试,看来还是google服务在大陆受限的原因,一直都不通。最后想把这种思路转化为可使用的方式,最后发现telnet还是一种可行的方式。当然在支持中文方面还是不够全面,总是会有中文乱码的问题。不管怎么说这种用法不太主流...
awr中DB CPU过低的原因分析
前几天在做巡检的时候发现有个库的负载在某一个时间段内极高,高达100倍。一个10分钟的awr报告,得到的db time 却有1000分钟。Snap Id Snap Time Sessions Cursors/Session Begin Snap:2774513-Jan-15 06:00:...
关于shell中的pl/sql脚本错误排查与分析
今天有个同事问我一个问题,他说运行shell脚本的时候抛出了ORA 错误,但是对于错误的原因没有思路,想让我帮他看看。我查看了下,脚本的结构比较清晰,看起来像是按照shell脚本风格来做的,首先在pl/sql中声明了大量的procedure,类似shell中的function,大概有10多个procedure然后在最后使用一个类似main函数的pl/sql块...
关于ORA-01779问题的分析和解决
最近同事问我一个问题,是关于一个update语句的问题,需求有点特别,结果在使用update语句尝试了各种方法后,仍然是不依不饶的报出ORA-01779的错误。今天专门花时间分析了一下这个问题,还是有些收获。为了说明问题,我们先来看两组数据有两个表data,link,现在希望更新data表中的amount列值,和link表的credit_class做关...