-
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
Category Archives: ORACLE
DBMS_OUTPUT包无法输出空行
正常情况下,DBMS_OUTPUT包无法直接输出一个空行。 以前还真没有注意这个问题,前两天想在输出结果的时候进行一下简单的格式化,发现了这个问题: SQL> SET serverout ON SQL> BEGIN 2 dbms_output.put_line(’a’); 3 dbms_output.put_line(’ ‘); 4 dbms_output.put_line(’b’); 5 dbms_output.new_line; 6 dbms_output.put_line(’c’); 7 END; 8 / a b c PL/SQL PROCEDURE successfully completed.SQL> set serverout on SQL> begin 2 dbms_output.put_line(‘a’); 3 dbms_output.put_line(‘ ‘); … Continue reading
升级不正确导致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
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
ORA-600(kkdlfjou_1)错误
10.2.0.5 RAC环境出现ORA-600[kkdlfjou_1]错误。 错误信息: Thu Jun 02 10:09:38 EAT 2011 Errors IN file /oracle/app/admin/orcl/udump/orcl2_ora_17796.trc: ORA-00600: internal error code, arguments: [kkdlfjou_1], [], [], [], [], [], [], [] Thu Jun 02 10:09:40 EAT 2011 Errors IN file /oracle/app/admin/orcl/udump/orcl2_ora_29452.trc: ORA-00600: 内部错误代码, 参数: [kkdlfjou_1], … Continue reading
ORA-600(krbounotread_noctx)错误
由于RMAN备份导致的BUG。 ORA-600(krboReadBitmap_badbitmap)错误:https://yangtingkun.net/?p=863 这个问题和以前碰到的问题属于同一个BUG,错误信息为: Tue May 8 02:18:42 2012 Backup optimization FOR file +DATA/orcl/datafile/index_ts1.ora stopped due TO errors: Tue May 8 02:18:42 2012 Errors IN file /u01/app/oracle/admin/ORCL/udump/orcl2_ora_3758.trc: ORA-00600: internal error code, arguments: [krboReadBitmap_badbitmap], [272945930], [+DATA/orcl/datafile/index_ts1.ora], [6], [30], [33554432], [1024], [19808273] Tue … Continue reading
Posted in BUG
Tagged backup optimization, krboReadBitmap_badbitmap, krbounotread_noctx, ORA-600
Leave a comment
ORA-7445(kfcbCloseCIC10)错误
10.2.0.3 RAC的ASM实例,出现ORA-7445错误导致实例崩溃。 详细错误信息为: Tue Nov 9 10:47:59 2010 NOTE: reconfiguration OF GROUP 4/0x654fe2a9 (DATA), FULL=1 NOTE: disk validation pending FOR GROUP 4/0x654fe2a9 (DATA) ERROR: GROUP 4/0x654fe2a9 (DATA): could NOT validate disk 25 SUCCESS: validated disks FOR 4/0x654fe2a9 (DATA) NOTE: PST … Continue reading
Posted in BUG
Tagged ASM, crash, kfcbCloseCIC10, ORA-15040, ORA-15042, ORA-15066, ORA-600, RAC
Leave a comment