-
Recent Posts
Recent Comments
- yangtingkun on 非空字段空值对查询的影响
- Eric Zong on 非空字段空值对查询的影响
- Kamus on Oracle Ace Director
- 设置全局死锁优先级 | yangtingkun on RAC全局死锁检测时间
- ORA-600(krbounotread_noctx)错误 | yangtingkun on ORA-600(krboReadBitmap_badbitmap)错误
Archives
- December 2020
- February 2019
- December 2018
- November 2018
- October 2018
- July 2018
- June 2018
- May 2018
- July 2016
- July 2013
- June 2013
- November 2012
- October 2012
- September 2012
- August 2012
- July 2012
- June 2012
- May 2012
- April 2012
- March 2012
- February 2012
- January 2012
- December 2011
- November 2011
- October 2011
- September 2011
- August 2011
Categories
Meta
Author Archives: yangtingkun
升级不正确导致ORA-27468错误
客户10.2.0.4环境告警日志出现ORA-27468错误。 详细错误信息为: Errors IN file /u01/app/oracle/admin/orcl/bdump/orcl1_j000_18724.trc: ORA-12012: error ON auto EXECUTE OF job 42791 ORA-27468: "EXFSYS.RLM$EVTCLEANUP" IS locked BY another processErrors in file /u01/app/oracle/admin/orcl/bdump/orcl1_j000_18724.trc: ORA-12012: error on auto execute of job 42791 ORA-27468: "EXFSYS.RLM$EVTCLEANUP" is locked by another process 导致这个错误的原因在于升级时没有执行catupgrd.sql,而是执行了建库的部分脚本如catalog.sql和catproc.sql,这导致只有CATALOG视图和系统的PACKAGE以及TYPE的版本更新到10.2.0.4,而其他数据库中组件的版本并没有升级,仍然是10.2.0.1。 … Continue reading
ORACLE PLSQL语言参考
无论是开发DBA还是管理DBA,PL/SQL和SQL一样都是基本功之一。 这篇文档介绍了PL/SQL的语法和功能。和其他文档不太一样,我的PL/SQL知识并非来自Oracle的官方文档,因为我认为Oracle的文档对于学习语言并不合适,相反Oracle的文档作为一个参考书或是说一个语法的字典是再合适不过了。 虽然个人观点是这篇文档用来学习PL/SQL或者说进行PL/SQL知识的扫盲并不合适,但并不妨碍有兴趣的朋友来看,这篇文档的在线阅读地址为:http://www.oracle.com/pls/db112/to_toc?pathname=appdev.112%2Fe25519%2Ftoc.htm&remark=portal+%28Books%29
Posted in BOOKS
Leave a comment
20120630 ACOUG活动
今天是ACOUG活动的日子,也是上半年的最后一天。 参加ACOUG的人很多,现场估计超过了100人,而且今天到会的ACE也很多,除了Eygle、Kamus、崔华和刚晋升为ACE的侯圣文之外,还有从成都赶过来的老熊。老熊虽然是第一次见面,此前打交道的次数也不多,但是有种一见如故的感觉,可能和老熊直爽的性格有关。 今天的第一个主题是杨海朝带来的《MySql的那点事儿》。杨海朝是新浪的首席DBA负责新浪微博的后台数据库,他带来的MySql方面的演讲介绍了如何利用mysql处理海量增长的大数据,以及如何满足前端应用的高可用需求。 第二个是Kamus带来的11g新特性。在10g已经推出了正常服务期,12c马上就要推出的今天,仍然有很多DBA对于11g的新特性不是很了解。Kamus的演讲应该算是一个新特性的普及,这次的内容是关于分区和高可用特性方面的新特性。 最后是崔华带来的SQL优化方面的主题,这次的内容是统计信息。崔华的演讲贯彻了他一向的风格,包含了大量的深入信息,并给出了很多Oracle内部算法和公式,而这些公式大部分来自他深入的研究,在其他的地方是无法看到的。
Posted in NEWS
Leave a comment
对象相关开发手册总结
从这篇文档中学到了不少语法和功能。 虽然对于TYPE以及COLLECTION类型经常使用,但是涉及到把这些类型作为表的存储结构接触的就少多了,而如果说在加上继承等告警特性,平常使用的就更少了。 在Oracle使用对象一般而言是为了简化某些工作,而把所有面向对象的语法和功能都搬到数据库中不太现实,而且一旦TYPE被应用到表结构中,就很难再进行改变,因此数据库中使用TYPE有一定的局限性。 不过对于一些语法和功能还是有必要知道的,或者至少在碰到问题时,应该知道查看那篇文档。
Posted in BOOKS
Leave a comment
HASH分区新增分区对索引状态的影响
一直认为Oracle对于所有分区的操作都是一样的,只有数据的改变才会导致分区状态的失效,没想到HASH分区的实现方式并不相同。 HASH分区表增加新的分区的一点研究:http://yangtingkun.itpub.net/post/468/195510 看一个范围分区SPLIT的例子: SQL> CREATE TABLE T_PART 2 (ID NUMBER, NAME VARCHAR2(30)) 3 PARTITION BY RANGE (ID) 4 (PARTITION P1 VALUES LESS THAN (10), 5 PARTITION PMAX VALUES LESS THAN (MAXVALUE)); TABLE created. SQL> INSERT INTO T_PART 2 SELECT ROWNUM, … Continue reading
单个分区索引失效导致绑定变量查询无法使用索引
一个客户碰到的问题,由于分区维护操作,导致个别分区对应的索引处于UNUSABLE状态,最终导致基于绑定变量的查询无法利用索引。 通过一个具体的例子来说明这个问题: SQL> CREATE TABLE t_part 2 (id NUMBER, 3 name varchar2(30)) 4 partition BY range (id) 5 (partition p1 VALUES less than (10), 6 partition p2 VALUES less than (20), 7 partition pmax VALUES less than (maxvalue)); TABLE created. … Continue reading
KFED-320错误
利用kfed的repair命令修复asm头块,碰到这个错误。 错误信息如下: $kfed repair /dev/rhdisk3 KFED-00320: Invalid block num1 = [3], num2 = [1], error = [type_kfbh]$kfed repair /dev/rhdisk3 KFED-00320: Invalid block num1 = [3], num2 = [1], error = [type_kfbh] 导致这个错误的原因是由于当前磁盘组的AUSIZE不是默认值1M,而是4M。 对于磁盘组的头块损坏,不知道具体AUSIZE的值的情况,有两个方法,一是通过ASM的告警日志文件,找磁盘组创建时的参数信息: SUCCESS: CREATE diskgroup oradata external redundancy disk … Continue reading
设置全局死锁优先级
测试控制全局死锁的隐含参数_lm_dd_interval时,突然想到这个问题。 RAC全局死锁检测时间:https://yangtingkun.net/?p=955 Oracle的死锁判断是没有优先级的,也就是说,当两个或多个会话发生死锁的时候,无法指定牺牲哪个会话,而是由Oracle随机决定。 不过对于RAC环境而言,死锁的检查不在是内部的随机实现,Oracle通过隐含参数_lm_dd_interval来控制死锁的检测时间。更重要的是,对于RAC环境而言,Oracle允许不同实例设置不同的值。而不同实例的检测死锁间隔不同,就意味着优先级的出现。 如果实例1上设置该值为默认值60秒,而实例2设置为30秒,那么当发生死锁后,永远是实例2上先检测到死锁,也就是说,实例2上会话会被牺牲掉。 这是两个实例上设置该参数相同的情况,两个会话分别连接到两个实例,产生死锁。实例1上的会话1: SQL> SELECT name FROM v$database; NAME ——— ORCL SQL> SELECT instance_number, instance_name FROM v$instance; INSTANCE_NUMBER INSTANCE_NAME ————— —————- 1 orcl1 SQL> SET sqlp ‘I1S1> ‘ I1S1> SHOW parameter _lm NAME TYPE VALUE ———————————— ———– … Continue reading
RAC全局死锁检测时间
对于单实例数据库而言,死锁的检测在秒级完成,而RAC环境则死锁的检测时间默认达到了1分钟。 对于单实例环境如果出现了死锁,那么马上其中一个进程就被中止,用户可以快速的得到错误返回。而对于RAC而言,死锁的检测并不是实时完成,而是需要60秒左右的时间。 会话1执行: SQL> CREATE TABLE t_deadlock (id NUMBER PRIMARY KEY, name varchar2(30)); TABLE created. Elapsed: 00:00:00.12 SQL> INSERT INTO t_deadlock VALUES (1, ‘a’); 1 ROW created. Elapsed: 00:00:00.00 SQL> INSERT INTO t_deadlock VALUES (2, ‘b’); 1 ROW created. Elapsed: … Continue reading
Oracle Ace Director
2012年6月23日端午节,图灵的百岁诞辰。今天一早收到了Oracle的邮件,我的Oracle Ace Director的申请批准了。 如果你没有Alan Turing那样的天才,那么想要成功只要靠后天的努力。 07年1月被评为Oracle的Ace,至今有5年半了,这次被Oracle评为Ace Director也是对自己付出的一种认可。 一分耕耘一分收获,不是付出了就一定有回报,但是没有付出就一定没有回报。这些道理每个人都懂,但是能真正做到的并不多。很多人可能在坚持了一段时间后没有看到结果就放弃了,而能够坚持到底的人绝大部分都成功了。 不敢说自己已经成功了,但是希望自己能作为一个例子,给一些刚进入Oracle数据库这个行业的人指一条道路——每天比别人更努力一点就可以了。