索引列顺序导致的性能问题
今天和大家分享一个很有意思的例子,关于索引列的顺序导致的性能问题。发现数据库的性能比较差,CPU消耗很高,抓了一个awr,发现瓶颈在sql上,top 1的sql是一个很简单的update语句,没有复杂的条件和表关联。竟然导致CPU 99%抓了一个explain plan 的report和自己的理解,先简单说明一下表的情况。表,TEST_NOTIF_REQ_LOG, ...
狗狗的天空
突然看到6年前在大学时候写的文章,感慨感慨啊。狗狗的天空 2007-07-28 12:39:04 在简单又复杂的生活中无所适从的时候,朋友把他的小狗带过来,让我带养几天,说在他宿舍里整天叫,宿舍的人受不了,当时想想有个小狗挺好的,学习累了可以拉拉小腿,爱抚一下,喂食的时候也不花什么时间,不...
永远的吉他情结
7年前自己的随笔2006-09-28 17:07:13 曾经自己还是一个很菜的人,特别希望能够拿一吧吉他在草地上弹唱,那种感觉特别的向往 ,在大一的下学期的时候我硬是咬着牙去买了一把吉他 ,一把古典的吉他,开始了我的吉他生涯,说实话啊 我现在的技术也不高,只能弹几首一般的曲子,但那段日子却是特别让我怀念的,到了晚上,宿舍的 同学...
RAC 单节点报ora-1105 ora-01606的解决
最近自己搭了一套 11g rac的环境,基于redhat 6, 11g 用了11.2.0.3.0的cluster和db的安装包。共享存储基于nfs,没有用asm.环境打完以后,crs_stat -t看到相应的服务都起了,但是第二个节点上的实例不知道怎么回事却没起来。手工尝试启动,报了如下的错误。SQL> startup mountORACLE instance started.Total System Glo...
shell动态脚本和pl/sql动态脚本的比较
实现的目标如下,对于同时含有table1--5的db schema才需要执行指定的脚本,脚本内容都是些dml操作。目前的情况只能够得到db schema的列表,对于里面是否还有5个表,还没有细粒度的管理。脚本需要从db schema的列表中筛选出符合的 db schema,然后执行脚本内容。
关于segment的一个小问题
今天统计数据的时候,发现一个奇怪的小问题,通过segment去判断一个表的大小,然后查表的count,有一个表明明在,但是从segment里面去查的时候查不出来。SQL> select distinct segment_name,to_number(to_char(sum(bytes/1024/1024/1024))) from user_segmentswhere segment_name in (select table_name...
ORA-01461问题的对比测试
昨天生产环境有个严重问题,报了ora-01461的错误,这个问题看似应该是开发那边的问题,但dba这边也得提供一些信息,自己模拟测试了一把。为问题的排查也提供了一些帮助。这个问题可以使用一下场景来对比测试。--》场景 #1使用关键字values来插入。using key word “values” toinsert.SQL> Declare...
数据库突然宕机无法open的问题及解决
测试的数据库有一天突然宕机,然后无法正常open了,这个问题虽然过去了一段时间,也在这儿总结一把。从alert日志中的信息如下。Fri Jan 10 16:09:42 2014Archived Log entry 6837 added for thread 1 sequence 6863 ID 0x19db56aa dest 1:Fri Jan 10 16:12:59 2014Errors in file /oravl01/oracle/adm/FETABP2/diag/rd...
DBMS_STATS收集统计信息的问题及解决
收集数据库的统计信息是dba工作的一部分,如果在数据快速增长的库上,统计信息如果收集的频率太慢,会对执行计划有一定的影响。而对于逐渐客户饱和的系统来说,统计信息就可以很长时间收集或者尽量不收集。对于统计信息的收集,如果是很大的表,收集100%也是不现实的,如果收集的百分比太小,统计信息又失真,对系统系统...
手工创建/删除数据库的步骤
今天和大家分享下数据库的创建和删除的步骤,里面有很多细节需要大家考虑。创建数据库不只是一个create database语句。删除数据库 drop database也不是随时都能执行的。--创建数据库的步骤。1.用户,文件系统,挂载点和网络的配置,内核参数配置这个需要提前准备好。2.ORACLE_HOME的安装和PSUoracle_home的安装,这个...
探索ASH
老是在用ASH,昨天心血来潮,想看看ash视图里面是怎么样的,过程也算曲折,不过也算抛砖引玉。先看看v$active_session_history的情况。-->是个同义词SQL> select owner,object_name,object_type from dba_objects where object_name='V$ACTIVE_SESSION_HISTORY';OWNER &nb...
数据库突然宕机的问题及分析
昨天晚上,某个环境的数据库在做一个压力测试的时候突然宕机了。这个问题比较急。马上查看日志文件。看到了如下的一段,报了os级的linux错误。提示没有空间了。Fri Mar 14 19:16:47 2014Archived Log entry 192 added for thread 1 sequence 192 ID 0x1ed7a02c dest 1:Fri Mar 14 19:39:24 2014Incremental checkpoin...
alert日志中出现ash size的警告
今天查看数据库的alert日志总出现了如下的警告。Archived Log entry 202 added for thread 1 sequence 202 ID 0x1ed7a02c dest 1:Sat Mar 15 01:37:30 2014Completed checkpoint up to RBA [0xca.2.10], SCN: 267711453Sat Mar 15 01:44:58 2014Active Session History (ASH) performed an emergency flush. This may ...
探究AWR 第一篇
statspack相比算是比较通用,免费,可以在标准版,企业版中使用,awr算是statspack的一个升级版,而且代码不公开。但是实现的功能和数据的采集要更丰富。awr算是dba工作的必备工具。自己总结了一下,大概由以下几个方面来说明一下。1.snapshot的管理先来看看snapshot,这是列出近几天的snapshot,可以看出如果数据库重启...
ORACLE 11g导入9i dump的问题及解决
因为系统迁移,需要将一部分的9i的数据导入11g的库里,目标库是11.2.0.3.0 64位的环境。导入dump的时候,有一个比较大的分区表,需要用导入分区的方式,就写了如下的命令。但是奇怪的是过了一会,抛出来一个imp的错误就完事了。-bash-4.1$ imp n1/n1@testdb tables=TEST_DB:TEST_DB_PAR_P1  ...