有时候,一个语句执行很慢,不仅仅是sql执行计划的问题,还很有可能是存储发生了问题,如存储的cache发生问题,存储的控制器有问题,这些问题,都可以在存储相应的log中可以看到。但是作为一个dba,可能会不清楚存储的相关知识,我们在处理问题的时候,怎么样利用数据库的表现去怀疑是否是存储问题,进而请存 […]
HPUX开异步IO
同事来说在$ORACLE_HOME/rdbms/log下有大量产生trace文件,trace的文件内容为:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
/oracle/app/oracle/product/9.2.0/rdbms/log/jxadt_ora_100.trc Oracle9i Enterprise Edition Release 9.2.0.6.0 - 64bit Production With the Partitioning, OLAP and Oracle Data Mining options JServer Release 9.2.0.6.0 - Production ORACLE_HOME = /oracle/app/oracle/product/9.2.0 System name: HP-UX Node name: jx_db03 Release: B.11.11 Version: U Machine: 9000/800 Instance name: jxadt Redo thread mounted by this instance: 0 <none> Oracle process number: 0 100 Ioctl ASYNC_CONFIG error, errno = 1 |
其实这个问题是由于开异步IO的时候,没有给系统的oracle用户MLOCK权限,当主机已经开启的异步IO的参数,但是没给MLO […]
利用rcp复制备机数据库
我们在安装双机热备的数据库时,没必要在2台机器上都安装一次数据库,我们只需在一台数据库主机安装完成后,用rcp的方式把app下的所有文件复制到备机上。以下是主要的安装步骤: 1.在A机(10.203.1.1 db_01)上调整主机内核参数,建立dba group和oracle用户,安装数据库软件,且 […]
dbms_metadata的进一步学习
一开始,只是认为dbms_metadata.get_ddl仅仅能用来获取表结构的语句,其实这个包的功能还是挺多的,差不多所有你希望的对象都能获取: 1.显示设置:
1 2 3 4 5 6 7 8 9 10 11 |
/*创建DBMS_METADATA: @?/rdbms/admin/catmeta.sql */ SET SERVEROUTPUT ON SET LINESIZE 1000 SET FEEDBACK OFF set long 999999 SET PAGESIZE 1000 /*若希望不显示storage参数: EXEC DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM,'STORAGE',false); */ |
2.9i R2所支持的45个OBJECT TYPE: [crayon- […]
也谈电信重组
前段时间网上都在讨论电信重组的后续发展,那个运营商利好,哪个运营商利空。偶毕业后先在联通,后到了移动的子公司,卓望科技,也算是一直没离开过电信行业,也来扯扯这次电信重组的事情。目前电信重组的消息已经确定:中国移动和中国铁通将组成新中国移动,中国电信、联通C网和中国卫通组成新中国电信,联通G网和中国网 […]
为什么不走hash join?
今天,某省的同事来告诉我,表重组后,他用于统计的一个sql脚本运行变慢了,之前只需要17、8分钟能出来的结果,现在1小时40分钟左右才能出来结果。 我们一起来看看脚本中的一个sql:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
SQL> explain plan for 2 select a.startdate,b.subsid from tab_1 a,tab_2 b where 3 a.servid='025001003681' and a.status!='C' and a.mid=b.mid; Explained. Elapsed: 00:00:00.03 SQL> select * from table(dbms_xplan.display) SQL> / PLAN_TABLE_OUTPUT -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost | Pstart| Pstop | ---------------------------------------------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | 369 | 23985 | 980 | | | | 1 | NESTED LOOPS | | 369 | 23985 | 980 | | | | 2 | PARTITION HASH ALL | | | | | 1 | 4 | |* 3 | TABLE ACCESS BY LOCAL INDEX ROWID| tab_1 | 369 | 14022 | 242 | 1 | 4 | |* 4 | INDEX RANGE SCAN | IDX_tab_1_SERVID | 492 | | 10 | 1 | 4 | | 5 | PARTITION HASH ITERATOR | | | | | KEY | KEY | | 6 | TABLE ACCESS BY LOCAL INDEX ROWID| tab_2 | 1 | 27 | 2 | KEY | KEY | |* 7 | INDEX UNIQUE SCAN | PK_tab_2_MID | 1 | | 1 | KEY | KEY | ---------------------------------------------------------------------------------------------------------------- Predicate Information (identified by operation id): --------------------------------------------------- 3 - filter("A"."STATUS"<>'C') 4 - access("A"."SERVID"='025001003681') 7 - access("A"."MID"="B"."MID") Note: cpu costing is off 22 rows selected. Elapsed: 00:00:00.56 |
我们看到这个sql是通过索引后在走nested l […]
职业生涯最严重的一次宕机
昨天,经历了职业生涯中最令人心惊胆颤的危机,差点要去买锄头准备回家种地去了。-_-!! 早上5点钟,被同事叫醒,说应用程序连数据库报TNS没响应。于是开始登录数据库主机。登录的时候,用常用的浮动IP连接,没响应,此时第一个反映就是是不是数据库主机挂了?难道要去机房?现在可是奥运前期,进出机房是件挺麻 […]
2008深圳车展
趁着粽子节的最后一天休假,去看了深圳2008车展。车展的整体规模还是比较大的,占据了会展中心的8个场馆,不过由于是车展的最后一天,又恰巧是中午吃饭时间,我看美女的愿望只达成了不到十分之一……T_T
误将对象创建在system表空间中
昨天一位同事在执行创建数据库全量对象脚本时,在sys用户下执行了,那些本来应该在应用用户下创建的对象,不小心创建在了sys用户下。由于创建的对象是一个脚本执行的,里面有近1500个对象,要是一个一个删除,那是不可能了。 由于测试部的同事急着要用,先在应用用户下重新把创建数据库对象的全量脚本再次执行了 […]
insert大量数据的一些经验
在很多时候,我们会需要对一个表进行插入大量的数据,并且希望在尽可能短的时间内完成该工作,这里,和大家分享下我平时在做大量数据insert的一些经验。 前提:在做insert数据之前,如果是非生产环境,请将表的索引和约束去掉,待insert完成后再建索引和约束。 1. [crayon-680dc652 […]
一次可怕的crosscheck
某省有个数据库的备份坏了,同事采取的策略是每天定期的用脚本删除归档。于是,当备份恢复的时候,需要做一次crosscheck,以便验证那些归档是validate的,于是可怕的事情发生了:crosscheck运行了1小时,还是没动静——需要crosscheck的日志太多了!! 查了一下文档,原来cros […]
oracle的sysdba权限登录问题
最近的时间,在搞数据库的安全加固问题,关于数据库中关于sysdba权限的登录,通过最近的一些实践和测试,在这里记录一下: 数据库用sysdba登录的验证有两种方式,一种是通过os认证,一种是通过密码文件验证;登录方式有两种,一种是在数据库主机直接登录(用os认证的方式),一种是通过网络远程登录;需要 […]