一次数据库响应缓慢的问题排查
今天客户说有一个job跑的特别慢。想看看到底是不是数据库这边有什么问题了。使用top来查看,io wait奖金30%,已经算是负载比较重的了。和客户确认从什么时候发现速度开始变慢的,他们说大概是从中午以后。使用sar来看一下,确实是从iowait从:1:00开始有了大量的io 10:40:01AM &...
一次数据库无法登陆的"问题"及排查
继昨天发生san存储切换导致io等待异常高的问题后,晚上客户对测试环境的数据库进行了远程启动,因为库比较多,监控process都起来了。客户就发邮件通知测试组继续测试。结果早上测试反馈有一个库怎么都等不了。他们提供的日志如下:sqlplus test3c/xxxx@testdbSQL*Plus: Release 11.2.0.2.0 Production on Sat Jun 21 12...
数据紧急修复之启用错误日志
昨晚对测试环境进行了升级,同步了部分生产的数据。整个过程比较顺利,但是在最后一步启用foreign key constraint的时候报了错误。ora-02298:cannot validate(xxxx.xxxx_fk) -parent keys not found很明显是一部分数据没有同步到,有一部分数据丢失了。和开发做了确认,从生产中根据条件导出了一个dump,关联的表有100多个...
数据迁移中需要考虑的问题
在生产环境中,做数据迁移需要考虑很多的可能性和场景,尽量排除可能发生的问题。我自己总结了下,大体有如下需要注意的地方。1)充分的测试,评估时间,总结经验,提升性能在生产中进行数据的大批量迁移时,充分的测试时必须的。一方面可以根据这些测试积累一些必要的数据作为生产中使用参考,另外一方面可以基于之前的...
生产环境数据迁移问题汇总
在测试环境中做了3轮数据迁移的演练,最终到了生产环境中,还是出现了不少问题,经过大半夜的奋战,终于是数据都迁移成功了。1)共享存储的配置问题共享存储使用NFS来共享存储,但是在实际操作中发现配置出了问题,原因是因为两台服务器上的用户不同在,目标机器上没有任何写权限。-rw-r--r-- 1 3160 dba ...
生产环境sqlldr加载性能问题及分析之一
在测试环境中进行了多轮测试,使用sqlldr批量加载数据,csv文件大概有120G左右,在一致的数据量的情况下,测试环境都在一个小时左右,但是在生产环境中竟然跑了将近2个小时,性能差了一倍。而且生产环境的服务器配置还要好一些。对于这个奇怪的问题,尽管说数据第一轮数据迁移已经完成了,对于之后的数据迁移还是很好的参...
只言片语分析datapump的工作原理
datapump是从oracle 10g推出的新的数据导入导出工具,可以说是exp/imp的加强版,主要的亮点在于服务端,结合了direct+parallel,而且从datapump的结构上来说也和exp/imp有很大的差别。而老式的exp/imp还有一套自己的数据字典表需要维护,习惯了exp/imp,突然切换到expdp/impdp还有是一些抵触情绪的,因为从之前的感触中没有...
关于desc的一个奇怪问题及分析
在平时的工作中,desc这个命令可谓短小精悍,可以很方便的查看表结构和not null的情况。今天在生产环境中碰到一个有些奇怪的desc问题。首先是数据迁移组说有一个表的constraint丢了。但是在master中有。这种问题有两种可能,一种就是constraint确实丢了。另一种可能性就是创建的constraint的问题,可以参见: no...
生产环境sqlldr加载性能问题及分析之二
上一节讨论了在数据迁移中发现数据加载的速度一下子慢了很多,和之前在测试环境相比有很大的差距。一个原因就是由于在数据加载的过程中有一些额外的session也在操作访问数据库,造成了undo的使用率急剧上升,数据库负载从某种程度上也加剧了。通过查看awr,ash报告可以发现更多的内容。测试环境的数据库负载情况Load P...
巧用parallel极速提升数据加载速度
并行在平时工作中可能不是很注意,因为有时候即使设定了parallel 相关的hint,感觉性能也好不到哪去。今天通过一个案例来分享一下通过parallel来使数据加载的速度达到极速提升。现有一个很让人头疼的表,里面还有clob字段,通过exp/imp来导出导入数据,导出慢还可以接受,导入的速度大概在一秒钟1000条的速度,对于千万,...
对分区表导入导出的水平,垂直切分
在工作中有时候碰到一些分区表,业务数据量很大,可能几百G,上T的规模,而且做数据的导入导出的时候,会感觉到exp/expdp的时候生成的dump文件太大了,做导入的时候也是很重的负担。比如500G的dump,你在使用imp做导入的时候,别无选择,只能看着日志里partition里的数据一个一个被导入。impdp可能稍微好点,还能指定个并...
循序渐进调优union相关的sql
今天在生产中发现一条sql语句消耗了大量的cpu资源。 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND &...
关于sequence问题的紧急处理
今天早上收到邮件,说有一个很紧急的问题,是关于sequence的。错误日志里面还有ORA的错误----- ... 7 more Causedby: java.sql.SQLException: ORA-08004: sequence TRX_1SQ.NEXTVAL exceedsMAXVALUE and cannot be instantiated 猛一看就是sequence的值越界了。导致这个问题的原因主要...
关于权限设置的一个小把戏
现在有一个需求,需要开放一些"特殊“的权限给开发组。具体的背景是这样的:有三个数据库用户,tabowner, tabconn, tab_temp三个用户tableowner是owner用户,里面存放着表,索引,序列,存储过程等。tabconn是一个连接用户,在这个用户里面建立了一些同义词,可以直接通过这个用户来进行数据的增删改查。tab_temp是一...
sql_profile的使用(一)
SQL> create table t1 as select object_id,object_name from dba_objects where rownum create table t2 as select * from dba_objects; Table created.SQL> create index t2_idx on t2(object_id);Index created.SQL> exec dbms_stats.gather_tabl...
sql monitor的使用(一)
在sql调优中,对于sql语句的实时监控显得尤为重要,如果某条sql语句的性能比较差。可能从前端的直观感觉就是执行时间比较长。对于dba来说,可能关注的相关因素需要多一些.1)可以通过top命令来监控sql的性能情况,查看cpu使用率较高的oracle process,然后通过查看session和process得绑定得到对应的session,然后得到对应的...
生产环境大型sql语句调优实战第一篇(一)
SELECT DISTINCT CA.L9_CONVERGENCE_CODE AS ATB2, CU.CUST_SUB_TYPE AS ACCOUNT_TYPE, CST.DESCRIPTION AS ACCOUNT_TYPE_DESC, SS....
生产环境大型sql语句调优实战第一篇(二)
继续昨天的部分,上一篇的链接为:http://blog.itpub.net/23718752/viewspace-1217012/对这条大sql的性能瓶颈进行了分析。主要瓶颈在于一个很大的业务表,数据量在亿级。如果通过时间条件来过滤,会有5%以内的数据被过滤出来。但是没有时间相关的索引字段,所以会走全表扫描,在目前的产品线中,这个大分区表的索引时严...
巧用xmltype解析clob数据
对于clob的数据,很多场合中都使用xml的格式,但是对于数据的查取和处理总是感觉力不从心。在条件允许的情况下,如果能够巧妙的使用xmltype来做数据处理,无意中是对于clob的一个处理利器。简单说下需求。数据库里存放的clob类似下面的格式<ObjectInfo xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://...
创建用户时的密码校验问题
今天需要在测试环境中做一些性能测试,为了不影响原有的数据,准备创建一个临时的schema。但是创建的时候报了如下的错误。SQL> create user mig_perf identified by mig_perf;create user mig_perf identified by mig_perf*ERROR at line 1:ORA-28003: password verification for the specified password failedORA-2...