love wife & love life ——Roger

In fact, life is easy

一个SQL Tuning例子

以前同事的问题,非常隐蔽的问题,一直没有发现,跟大家分析! SQL> SET autotrace ON   SQL> SELECT 2 T5.CONFLICT_ID, 3 T5.LAST_UPD, 4 T5.CREATED, 5 T5.LAST_UPD_BY, 6 T5.CREATED_BY, 7 T5.MODIFICATION_NUM, 8 T5.ROW_ID, 9 T33.PROVIDER_FLG, 10 T15.NAME, 11 T33.CURR_PRI_LST_ID, 12 T17.KEY_VALUE, 13 T33.CITIZENSHIP_CD, 14 T33.DEDUP_KEY_UPD_DT, 15 T22.ROW_ID, 16 T31.STATE, 17 T31.ADDR, 18 T33.CON_CD, 19 T31.COUNTRY, 20 T31.CITY, 21 T31.ZIPCODE, 22 T33.CUST_SINCE_DT, 23 T33.PR_REGION_ID, 24 T33.NATIONALITY, 25 [...]

列删除的恢复测试 – 不要模仿

首先重申,这个测试是玩的,大家不要借鉴!测试源于群里一个网友的提问。   SQL> SHOW USER USER IS ROGER   SQL> DROP TABLE t; TABLE dropped.   SQL> CREATE TABLE t(a NUMBER, b varchar2(6)); TABLE created.   SQL> INSERT INTO t VALUES(1, ‘roger’);   1 ROW created.   SQL> /   1 ROW created.   SQL> /   1 ROW created.   SQL> commit;   Commit [...]

见到传说中的Tom大师

昨天ACCOUG与Oracle联合举办的活动,邀请到了数据库大师Thomas Kyte,估计他应该是 所有oracle从业者至少是oracle dba的偶像,他的asktom网站一直是大家经常光顾的地方。 有机会跟大师合影了一把,看上去大师有些疲倦,估计也是上年纪了! 当然左边的是我: 一个朋友也一起合照了:

有趣的测试

本人测试源于itpub的一个帖子,测试版本是10.2.0.5,欢迎大家一起讨论。 SQL> DROP TABLE killdb;   TABLE dropped.   SQL> CREATE TABLE killdb (id NUMBER,name varchar2(10));   TABLE created.   SQL> CREATE INDEX killdb_idx ON killdb(id);   INDEX created.   SQL> INSERT INTO killdb VALUES(1,’killdb.com’);   1 ROW created.   SQL> /   1 ROW created.   SQL> /   1 ROW created.   SQL> [...]

undo丢失且存在未提交事务的恢复

这篇文章其实很早之前就写过了,在旧博客中,今天刚刚有同事提到这个问题,所以就转载到www.killdb.com上。 对于非归档模式,无备份,abort方式关掉数据库且存在活动事务,使用常规方法进行恢复是行不通的, 而且mos文档也说是无法进行恢复的,其实不然,不过本文这种方法oracle并不推荐,仅限于大家研究玩玩! SQL> SELECT dbms_rowid.rowid_relative_fno(rowid) file#, 2 dbms_rowid.rowid_block_number(rowid) blk# 3 FROM undo$;   FILE# BLK# ———- ———- 1 106 1 106 1 106 1 106 1 106 1 106 1 106 1 106 1 106 1 106 1 106 1 106 1 106 1 106 1 106 1 106 1 106 1 106 1 [...]

Apply 11.2.0.2.5 Failed ?

2012/1/18 oracle发布了11.2.0.2的最新psu 11.2.0.2.5,其中Grid Infrastructure 的补丁号为13343447,其实该补丁中已经包含了db的补丁13343438,如下: [ora11g@11gr2test install]$ ls -ltr total 242072 drwxrwxr-x 8 ora11g oinstall 4096 Oct 3 20:51 OPatch drwxr-xr-x 5 ora11g oinstall 4096 Oct 14 22:43 12827731 drwxrwxr-x 4 ora11g oinstall 4096 Oct 30 06:28 12827726 -rw-r–r– 1 ora11g oinstall 21 Jan 15 22:47 README.txt -rw-r–r– 1 ora11g oinstall 422 Jan 15 22:47 [...]

10.2.0.4+版本PSU以及相关bundle patch列表–(2012/1/19 update)

以前总结过一篇,链接如下: 10.2.0.4+版本PSU以及相关bundle patch列表-new 今天查看email,发现又更新了一些psu和cpu,结合以前的总结再综合一下: Oracle 10.2.0.4:   Oracle Database Patch Set Update Unix Comments Includes Cpu 10.2.0.4.1 8576156 Bash 10.2.0.4.0 includes CPU Jul 2009 10.2.0.4.2 8833280 Bash 10.2.0.4.0 includes CPU Oct 2009 10.2.0.4.3 9119284 Bash 10.2.0.4.0 includes CPU Jan 2010 10.2.0.4.4 9352164 Bash 10.2.0.4.0 includes CPU Apr 2010 10.2.0.4.5 9654991 该psu必须基于10.2.0.4.4 includes CPU Jul 2010 [...]

展望2012

转眼之间,2011年已经悄然过去,总的来说,过去的1年还算顺利,简单总结如下: oracle方面: 1. oracle 基础似乎更扎实了一点; 2. oracle internal方面也进步了不少; 3. 今年基本上熟悉了11g(R1,R2),这也是去年的目标之一; 4. 分析问题的方式和方法也在逐步向老白,老熊看起,他们一直是我学习的榜样,在此感谢 熊哥在这一年来给我了不少的帮助! 5. 目前OCA,OCP,OCM仍然没有考,比较杯具! 6. 开通了个人博客站点,www.killdb.com,意为通杀db,有点夸大, 其他数据库而言,目前也就 了解mysql,informix,nosql等,当然仅仅是了解,还谈不上属性甚至深入,见笑了! 7. 主机,中间件方面,今年没有突破,精力有限,看来此生无缘了。 8. 值得恭喜的是年终跳槽成功。 9. 今年务必要看完如下的几本书(目前还没看完): Cost_Based_Oracle_Fundamentals Oracle_Performance_Firefighting Oracle Core Essential Internals for DBAs and Developers Expert.Oracle.Exadata GoldenGate 今年也必须捡起来,去年研究过2个月,由于没有实际项目,故中途放弃了。 去年的总结,请看这里http://hi.baidu.com/xu521huan/blog/item/8a53db4f62f41a24afc3ab2b.html 2012年给自己的目标如下:   1. oracle internal方面还需要进一步深入,拓展,研究完整个dsi,多像老熊等高手学习; 2. 拓展其他方面的知识,oracle内容确实太多了; 3. 坚持每天至少看1篇以上的mos文档! 4. mysql和nosql方面还需要进一步学习,希望今年能达到中级水平。 5. 主机方面需要加强,中间件就算了,不懂java有点催悲! 6. 看2本关于有助于提升管理技能方面的书籍,充实下! 7. [...]

oracle advance queue 简单测试

某客户遇到一个高级队列方面的问题,由于自己本身也不熟悉,所以进行了简单的测试, 虽然目前高级队列用的非常少,但是该特性其实已经跟streams集成到一起了,回头会写 几篇关于streams方面的文章。 ‘###### Create user and grant ######’   SQL> CREATE USER aq IDENTIFIED BY aq;   USER created.   SQL> GRANT CONNECT, resource, aq_administrator_role TO aq;   GRANT succeeded.   SQL> GRANT EXECUTE ON dbms_aqadm TO aq;   GRANT succeeded.   SQL> GRANT EXECUTE ON dbms_aq TO aq;   GRANT succeeded.   SQL> [...]

rman备份与large_pool_size的关系

关于使用rman进行备份时,是否使用large pool,存在一个误区,很多人认为使用rman进行备份时, 一定用的是large pool,包括我的同事也这样认为,其实不然。 SQL> archive log list;   DATABASE log mode Archive Mode Automatic archival Enabled Archive destination /home/ora10g/archivelog Oldest online log SEQUENCE 216 NEXT log SEQUENCE TO archive 218 CURRENT log SEQUENCE 218   SQL> SHOW parameter disk   NAME TYPE VALUE ———————————— ———– —————————— asm_diskgroups string asm_diskstring string disk_asynch_io BOOLEAN TRUE   [...]

RMAN-06023 and ORA-19909 ?

前天晚上通宵帮朋友升级了一套11.2.0.1 rac(asm) to 11.2.0.2;总的来说 还算顺利,其中准备工作花了大量的时间,最开始直接开始升级crs的时候, 发现最后执行rootupagrde.sh报错,必须先安装one-off patch 9413827, 在安装完该patch之后,后面的一切操作都算比较顺利,其中有点小波折的是 在第一升级执行脚本后,我终止后再次安装报错,必须修改inventory.loc。 整个升级过程比较简单,就写详细的过程了,大家可以参考meclan liu的文章。 另外昨天晚上也帮同事恢复了一个10g rac(asm),同事这里其实是利用备份 进行异机恢复,虽然其中有点小波折,但是总算搞定了。 其中困扰同事的2个错误是: 1. RMAN-06026: some targets not found – aborting restore RMAN-06023: no backup or copy of datafile 4 found to restore RMAN-06023: no backup or copy of datafile 3 found to restore RMAN-06023: no backup or copy of datafile 2 [...]

how to fix ora-08103?

关于ora-08103错误,其实在熊哥的博客以及dbsnake的博客都曾经写过一篇。我这里写这篇的目的不是为了 模拟ora-8103错误,而是为了测试在该种情况下的expdp和exp。 SQL> CREATE TABLE t1 2 AS SELECT * 3 FROM dba_objects 4 WHERE rownum analyze TABLE t1 compute statistics;   TABLE analyzed.   SQL> SELECT owner, segment_name, EXTENT_ID, FILE_ID, BLOCK_ID, BLOCKS 2 FROM dba_extents 3 WHERE segment_name=’T1′;   OWNER SEGMENT_NAME EXTENT_ID FILE_ID BLOCK_ID BLOCKS ——————– ————— ———- ———- ———- ———- ROGER T1 1 [...]