通过top命令抓取cpu高消耗的sql
top命令在linux环境维护中很实用,虽然功能缺失不够sar那么全面。今天和大家分享一个通过top命令来抓取性能sql的案例。通过top命令抓取了如下的信息。pid是3585的进程对应的sql 之前已经确定是性能问题导致的了,所以先放过,可以看看pid是8879的这个进程,出现的不是很“稳定”。可能通过ash,awr不一定能够及时的抓...
关于oracle里的process总结
感觉需要对process做一个简单的总结。准备了如下的测试场景。session在服务端请求先用sqlplus / as sysdba在服务端登录。SQL> show userUSER is "SYS"得到当前的session为5860.SQL> select sid from v$mystat where rownum<2; SID---------- 5860得到对应的Proces...
数据库shutdown之后无法启动的问题
最近在已有数据库服务器上又新建了4个数据库实例,目前一共有9个数据库实例。环境搭好以后做检查的时候。根据反馈,有个job报如下的错误。Failed to create connection for url=jdbc:oracle:thin:@xxxxx and dbUser=xxxxxxNested Exception/Error: java.sql.SQLRecoverableException: IO Error: Got minus one fr...
linux下挂载新硬盘和分区的步骤
今天和大家分享一下在linux下挂载新硬盘的步骤。演示的环境基于centos[root@localhost etc]# uname -aLinux localhost.localdomain 2.6.32-220.el6.x86_64 #1 SMP Tue Dec 6 19:48:22 GMT 2011 x86_64 x86_64 x86_64 GNU/Linux[root@localhost etc]# cat system-releaseCentOS release 6.2 (Final)[root@localhost e...
关于drop user的cascade选项解惑
在数据库中,有时候需要删除用户,大多数时候都需要使用cascade选项,有些时候却不需要,想知道在这个简单的命令之后数据库倒底在干什么,这时候给一些指定的操作加上trace就跟把那层纱布揭开一样,可以很清楚看到数据库倒底在干些什么。10046,sql_trace等都是一些不错的选择。首先来复现一下这个问题。‘创建一个新用...
关于trigger过滤最大值的问题
今天碰到一个问题,开发有一个比较紧的需要,想问问我数据库这边能不能帮上忙。如果开发那边来做,需要改代码,如果数据库这边能临时支持,代码就可以多做些测试,然后再打补丁了。需求的情况大体是这样:有一个表的字段是number(11,4),意味着数据保持4为精度,总共长度支持11位,最大值位9999999.9999如果超过了那个最大...
关于oracle中session跟踪的总结
数据库中的session在操作中可能会有各种各样的问题,比如一条sql语句执行失败,某一个应用在一些特定的场景下就会有一些性能问题等等,有时候在代码层去做一些debug来说肯定是不实际的,而且也不一定能够迅速的排查问题,对于session的监控显得尤为重要。可以灵活的开启和关闭,在数据库层面,session层面,甚至特定的应用...
session跟踪失效的问题和原因
最近碰到一个奇怪的问题,在生产和其他比较正式的环境中进行sql trace都没问题,但就是测试环境的数据库不知道怎么的, 设置sql_trace,开启诊断事件,dbms_system,dbms_monitor都试了,就是没有trace日志,我都怀疑是不是有些配置给禁用了。查看基本的参数设置,没有发现什么问题。SQL> show parameter statisNAM...
分析函数牛刀小试
今天有个同事问我一个问题,想通过一条sql语句完成一个稍显复杂的查询。结构如下面所示。需要算出tax apply 的值,但是需要汇总charge_amount列和tax_amount列的值 CDL CRDCharge AmountTax AmountTax apply...
物化视图刷新的问题及分析
最近现场需要搭建一套全新的环境,对于数据字典的管理采用了物化视图,因为数据量不大,采用了全量刷新的方式。因为有好几套环境,有几套环境是通过db link和主节点的表创建的物化视图,这几个节点间的网络情况不好,刷新一个稍微大一些的表或者带有lob字段的表时,速度会很慢,因为有好几套环境,一套一套的等待刷新完得花...
关于update语句的性能测试
今天对表的update进行了性能测试,收获不小。在linux 64位的环境中测试,数据量是按照40万左右的标准进行的测试。SQL> select count(*)from test; COUNT(*)---------- 411426数据库在archive log 模式下。没有考虑索引(没有添加索引),没有考虑执行计划优化的影响,为了保证每次执行的环境基本...
not null constraint和check constriant的问题及分析
oracle的constraint有6类,如下。但是基于列的constraint主要有 type 为C,P,R,U 接触比较多的。今天来和大家讨论check constraint和not null constraint,它们的constraint type都为C,但是实际应用中还是有很大的差别。Type Code Type Description ...
通过shell脚本生成数据统计信息的报表
对于统计信息的收集,不同的环境中使用的策略也会有很大的不同,有的按照一定的时间频率来收集,有的比较稳定的系统根据数据的增长频率来收集,用户比较稳定的系统,甚至都不再收集统计信息。以下是使用shell生成的统计信息报表效果,可以在备份库中进行这些信息的收集,可以看到哪些表的查询耗费的时间较多,当前数据条数...
生产系统中EXP-00000的问题及解决
早上刚来的时候,客户的dba就急忙找到我说生产系统exp出问题了。exp的时候报了错误,让我帮着看一下。> exp xxxxx file=tui.dmp log=xxx.log Message 206 notfound; No message file for product=RDBMS, facility=EXP: Release 11.2.0.2.0 -Production on Thu May 8 09:36:55 2014 Copyright (c) 1982,2009, ...
利用shell脚本生成动态sql
在一些分布式环境中,可能涉及到的数据库有很多,相关的数据库用户也不少,有些看似简单的变更可能需要在不同的库,不同的用户间要进行复杂的操作。现在我们有3套环境,一套是测试环境test,一套是准生产环境xprd,一套是生产环境prod,比如在prod上有5个库一共20个用户,某一个变更可能在这20个用户里面要进行一些的操作...
关于SCN的总结测试
scn是数据库对自身变化的一个标记。通过一个序列号能够反映出数据库在那个时间点正在进行的操作,scn没有选用时间来作为基准单位,可能也是因为时间的不确定性,比如当前时间为2014年3月14号晚上八点整,如果修改了系统时间,改为晚上七点钟,name重启数据库以后,那个时间段的操作就都乱套了。这个scn在一般的库上都看似比...
物化视图全量刷新与insert的redo生成量测试
之前的一篇博客中提到,物化视图的全量刷新也是一种高可用性的体现,但是性能如何呢,下面来简单的测试一下。 首先需要创建一个函数,这个函数会计算当前session下的一些指标信息。比如redo的生成量。 CREATE OR REPLACE FUNCTION "GET_STAT_VAL" (p_name in varchar2) return number as l_va...
泰国之旅随感
今天无意中看到自己之前和同事分享的泰国之行的感想,在此和大家继续分享。泰国之旅已经是2012年末的事情了。离现在有些日子了,不过重在分享旅程的感悟,如果有对于旅程的攻略,可以发私信给我。旅程的大体时间安排如下:从北京到曼谷,然后从曼谷到普吉岛。然后从普吉岛飞回曼谷,从曼谷再飞回北京。-->In bangkok ...
rac节点无法启动ORA-29702的问题及分析
今天在虚拟机上启动rac,发现有一个节点怎么都起不了。另外一个节点没问题。 SQL> startup nomount ORA-29702: error occurred in Cluster Group Service operation 尝试使用crs_stat查看crs的组件状态,也报错了。 -bash-4.1$ crs_stat -t CRS-0184: Cannot communicate with the CRS daemon. 查看alert日志,发...
goldengate学习-安装篇
goldengate算是数据同步的利器,可以在不同的库,平台间进行数据的同步,当然还是有一些bug的,不过还是优点大过缺点。 算是尝尝鲜,从官网下载了一个版本12的,可以支持11g,12c。安装的过程我开始以为会很繁琐。结果安装的过程很简单,不过配置和管理要费一些功夫的。后续再说。 下载安装包可以从官网上得到,大概300多...