通过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做关...
关于表联结方法_sort-merge join
在比较经典的表联结方法中,nested loop join和hash join是比较常用的,对于sort-merge join来说,可能略微有些陌生。在数据库中有一个隐含参数,默认是开启的。NAME ...
关于exp/imp的总结学习
关于exp/imp,是很常用的数据导出导入工具,在10g开始推出的数据泵datapump相当于是exp/imp的补充和升级版本。在后续章节再做一个总结。exp/imp的使用相对比较简单,通常用做在不同的数据库或者环境之间转移数据,即使数据库位于不同的平台,也可以通过统一的接口来做数据的导入导出工作。使用方法可以通过exp -help,imp -...
同样的sql执行结果不同的原因分析
今天开发的同事问我一个问题,说有一个sql语句,在weblogic的日志中执行没有结果,但是手动拷贝数据到客户端执行,却能够查到。这种奇怪的问题一下子就能引起我的好奇心,从我知道的原因来看啊,可能是存在不可见字符造成的。对于不可见字符的问题,有必要先说明一下,可以简单举个例子。我们创建一个表,然后插入的数据...
由hugepage设置导致的数据库事故
近期客户希望提高业务处理能力,在现有的环境中加入几台weblogic服务器,所以需要增加一下连接数的配置,但是同时他们想对现有系统的设置一些变更,最后发送了一个清单给我们。 大体的变更如下: Change Processes from 10000 to 18000 Change PGA from 10G to 20G Change Buffer Cache from 20G to 40G Change Sh...
了解一下CPU 第一篇
CPU可能对于我们来说是熟悉又陌生的,每天的工作基本都离不开CPU,CPU的消耗是系统负载的一个重要指标,每天都会不定时的来看看CPU的使用情况,但是对于它了解甚少。在查找了一些资料,个人还是比较能够接受中对于CPU的描述。首先来看看书中提供的一张图。这张图是关于经典...
关于db_files和maxdatafiles的问题
昨天在做生产监控的时候发现有个库的表空间不够了,就发邮件给客户的dba去处理,但是得到的反馈是尝试添加的时候发现已经超过了数据文件的最大数限制。这个错误毫无疑问就是"ORA-00059: Maximum Number Of db_files Exceeded"一看到这个问题,一下子感觉就头大了。这个参数是在创建数据库的时候就应该考虑到的。竟然没有考...
Linux Glibc库严重安全漏洞修复(详细过程)
LinuxGlibc库严重安全漏洞修复通知(重要)=======正确的脚本(的确需要加个空格 在 CANARY和 "in_the_coal_mine"之间 加空格,否则gcc GHOST.c -o GHOST 报GHOST.c:6:15: warning: missing whitespace after the macro name )=============== root用户执行-------------...
Oracle 内存自动管理--关闭自动管理
Oracle 内存自动管理Oracle 内存自动管理从Oracle 10g开始,Oracle提供了自动SGA的管理(简称ASMM,即AutomaticShared Memory Management)新特性。所谓ASMM,就是指我们不再需要手工设置shared pool、buffer pool等若干内存池的大小,而是为SGA设置一个总的大小尺寸即可。Oracle 10g数据库会根据系统负载的变化...
EOF中的$符号不被当成默认的转义字符需改成\$