他奶奶个腿的数据库升级
他奶奶个腿不会让数据库升级,但是我会,今天就捣鼓了一天。以前在9i上的升级很简单,解压缩补丁包后运行runinstaller就OK了,毕竟我有在linux上从9204升到9206和在solaris上从9201升到9208的经验,今天在10.1.0.2往10.2.0.4升时却发现没有那么简单。当时我直接运行了10.2.0.4的补丁包,虽然运行成功了,但库没有升上去,后来觉得应该是我装了10.2.0.1的客户端,所以没报错。同时如果坚持readme中的观点,我早就顿悟了。如果8,9,10算是大版本,1,2那就算是中版本了。大版本和中版本的升级是需要装新版本的软件的,奶奶个腿,在这个问题
冰冰语录
遇见你或许是一种磨砺,但现在绝对是个错误。我忍不住想对你竖起最经典的那个指头。[@more@]
ORA-12012: error on auto execute of job 8913
这个问题我以前遇见过,不过没有仔细研究,今天多亏棉花帮助,要不然我还是无处下手。[@more@]alert:Mon Aug 11 22:00:37 2008Errors in file /oracle/app/oracle/admin/1/bdump/1_j000_3285088.trc:ORA-12012: error on auto execute of job 8913ORA-03211: The segment does not exist or is not in a valid statetrace:Dump file /oracle/app/oracle/admin/1/bdump/1_j000_3285088.trcOracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit ProductionWith the Partitioning, Real Application Clusters and Data Mini
消除 enq: DX - contention 等待事件
很遗憾操作过程没有抓下来,语言描述一下吧。DXDistributed transaction entry是一个分布式事务锁,根据v$lock查询得到一个会话sid:806,type:DX,block:1并且有type和id1相等且request>0的会话,说明806堵塞了其他会话,因为它长期持有一个DX锁,导致其他会话无法获得,所以导致了等待事件 enq: DX - contention。将806会话杀掉后,等待事件消除。[@more@]
cbo心得(选择率,基数,直方图)(五)
cbo心得(选择率,基数,直方图)(五) [@more@]延伸1, 直方图的分类直方图可以分为两类:FREQUENCY(频率)和HEIGHT BALANCED(高度平衡)在弄明白这两类直方图,首先得知道什么直方图。用上面的例子来说明下:SQL> select ENDPOINT_NUMBER,2 ENDPOINT_VALUE3 from user_tab_histograms4 where table_name ='SUNWG'5 and column_name = 'ID'6 order by ENDPOINT_NUMBER;ENDPOINT_NUMBER ENDPOINT_VALUE--------------- --------------6 17 2018 8019 140110 2001上面就是列ID上的直方图信息,左边一列是截止点的编号,右边一列是截止点值。
cbo心得(选择率,基数,直方图)(四)
cbo心得(选择率,基数,直方图)(四)[@more@]存在表和索引上的统计信息,存在直方图为了更明显的说明直方图的作用,我修改一下上面的创建的表,进一步的增加列ID的倾斜性。SQL> drop table sunwg purge;表已删除。SQL> create table sunwg (id number);表已创建。SQL> create index ind_sunwg on sunwg(id);索引已创建。SQL> insert into sunwg select 1 from dba_objects where rownum < 4000;已创建3999行。SQL> insert into sunwg select rownum from dba_objects where rownum < 2002;已创建4001行。SQL> commit
cbo心得(选择率,基数,直方图)(二)
cbo心得(选择率,基数,直方图)(二)[@more@]三,正文1, 没有任何统计信息(包括表,索引,直方图等)在ORACLE 10g中,RBO已经彻底的被抛弃了,取而代之的是CBO。我们知道CBO的基础就是统计信息,那么在10g中如果没有收集统计信息,CBO是怎么工作的呢?我们看下面的这个例子。Create table sunwg (Id number);Create index ind_sunwg on sunwg(id);BeginFor I in 1..100 loopFor j in 1..i loopInsert into sunwg values (i);End loop;End loop;Commit;End;这样我们就创建了一张有5050条记录的测试表。例1, 不存在统计信息SQL> select *
cbo心得(选择率,基数,直方图)(三)
cbo心得(选择率,基数,直方图)(三)[@more@]存在表和索引上的统计信息,没有直方图这是最一般的情况,定期对表和索引进行分析,但是并不分析直方图信息。大部分时候,这种统计信息收集策略都会很好的工作。我们这的大部分指得是,列上数据分布很平均的情况下。为了更好的演示,我需要创建一个存在倾斜列的表SQL> drop table sunwg purge;表已删除。SQL> create table sunwg (id number);表已创建。SQL> create index ind_sunwg on sunwg(id);索引已创建。SQL> insert into sunwg select 1 from dba_objects where rownum<200
cbo心得(选择率,基数,直方图)(一)
转冰冻奶茶的文章http://sunwgneuqsoft.itpub.net/post/34741/456500[@more@]一,概述关于CBO优化器你上网可以搜到一大堆的介绍。用一句话来解释CBO:CBO是一种根据执行代价来选择执行计划的机制。对于CBO来说,最重要的就是各种不同的执行计划的代价的计算。和RBO比较起来,CBO确实要聪明很多。CBO会根据对象上的统计信息来进行执行计划的代价评估,选择出较为高效的。而不是象RBO那样根据一些既有的规则来选择执行计划,愣头青一样的。既然是根据对象上的统计信息来计算代价,那么统计信息对于CBO的重要性就不用多说了。所以在CBO的数据
LOCK的整理资料
LOCK的整理资料[@more@]--------------------------------------------------------------------------查看谁锁住的select t2.username,t2.sid,t2.serial#,t2.logon_time from v$locked_object t1,v$session t2 where t1.session_id=t2.sidorder by t2.logon_time; 解锁 alter system kill session 'sid,serial#'; =======================================================================================================v$lock视图的各个列及其说明ADDR RAW(4) 在内存中锁定的对象的地址 KADDR RAW(4) 在内存中
困
前天晚上睡了3个小时,昨晚却睡不着,oracle没怎么跟三少学,失眠倒是学上了。昨晚觉得特别困,可过了半天才睡着,现在还得来加班,困ing。。。[@more@]
奥运与我无关
我是迫不得已写下这个题目,今天奥运圣火离我只有几百米我都没有时间去顶礼膜拜,因为我实在太忙了。我注定要错过这届最有意义的奥运会,在离北京奥运会还是十几天的时候我离开了北京,将要搬住的房子里也没有电视。这个夏天我要将精力放在oracle上面了,我想我不会为错过奥运而后悔,因为eygle说过的那句话一直记在我心里:一个人在一生中一定要在某件事上投入全部的精力,要不然就太失败了。今天给客户解决问题,客户懂的居然都比我多,讽刺的定义一下子就出来了。还有前几天说到的那个只学了7个月oracle的女生,对我的刺激也挺大,因为
使用flashback实验1
简单使用基于SCN的flashback,10.2.0.1 for windows实验如下:SQL> select * from tt;NAME STATUS-------------------------------------------------- -------E:ORACLEPRODUCT10.2.0ORADATATESTSYSTEM01.DBF SYSTEME:ORACLEPRODUCT10.2.0ORADATATESTUNDOTBS01.DB ONLINEE:ORACLEPRODUCT10.2.0ORADATATESTSYSAUX01.DBF ONLINEE:ORACLEPRODUCT10.2.0ORADATATESTUSERS01.DBF ONLINESQL> select dbms_flashback.get_system_change_number from dual;GET_SYSTEM_CHANGE_NUMBER------------------------1168329SQL> delete from tt whe
我的口头禅
1.美特斯 XX,不走寻常路2.玩死你,没道理哩~~3.奶奶个腿儿4.OK[@more@]
回忆
关键词:音乐,大学,第一份工作梁静茹的《可惜不是你》,让我回忆起我居然丢掉了音乐。母校论坛的毕业相片,让我的眼睛湿润了。原公司论坛上火炬接力的照片,让我看到了曾经熟悉的身影,想起了那段激情燃烧的岁月。世界是在变化,我也在变化,但存在我心底的那段记忆永远不会变。[@more@]
只有冷备和归档,能否恢复?
看到pub上的一个帖子http://www.itpub.net/viewthread.php?tid=1027951&extra=&page=1我认为只有冷备份和全部归档,就是说当前的数据文件,控制文件,重做日志文件都丢失了,由于丢失了当前重做日志文件,所以不能做完全恢复,只能做不完全恢复了。restore databaserecover database using backup controlfile until cancel;1.using backup controlfile使用在丢失当前controlfile,用冷备份中的controlife恢复的时候。用来告诉oracle,不要以controlfile中的scn作为恢复的终点~2.until cancel使用在丢失current/active redo的时候
ORACLE执行计划的一些基本概念
一.相关的概念Rowid的概念:rowid是一个伪列,既然是伪列,那么这个列就不是用户定义,而是系统自己给加上的。对每个表都有一个rowid的伪列,但是表中并不物理存储ROWID列的值。不过你可以像使用其它列那样使用它,但是不能删除改列,也不能对该列的值进行修改、插入。一旦一行数据插入数据库,则rowid在该行的生命周期内是唯一的,即即使该行产生行迁移,行的rowid也不会改变。Recursive SQL概念:有时为了执行用户发出的一个sql语句,Oracle必须执行一些额外的语句,我们将这些额外的语句称之为'recursive calls'或'recursive SQL stat
SQL的执行
白老师就是那么牛,再转。最近有网友问我SQL的执行有哪些步骤。实际上SQL执行是一个十分复杂的事情。这里仅介绍SQL提交到SQL引擎后的几个重要的阶段。一个SQL的执行分为分析(PARSE),执行(EXECUTE)和FETCH三个大的阶段。SQL执行的第一步是对语法进行分析,首先根据SQL语句,计算出SQL的HASHVALUE,然后根据HASHVALUE查找LIBRARY CACHE,是否存在这个SQL,如果存在,那么说明语法是经过检查的,不需要进行语法检查。如果不存在,那么要在LIBRARY CACHE中分配内存,这时候会涉及到SHARED POOL,LIBRARY CACHE闩锁。第二步是进行语意的检
一个存储过程编译HANG住的分析
转白老师的文章。客户的一个库编译某个存储过程HANG住。查看了一下,也没锁方面没有什么问题。查看v$session_wait,发现在等待Library cache pin。建议他做一个3级的hanganalyze。结果如下:==============HANG ANALYSIS:==============Open chains found:Chain 1 : : <48/29750/0x3ed60060/7856/PX Deq: Join ACK> -- <141/31823/0x3ed5d680/2291/library cache pin> --被HANG住的SESSIONChain 2 : : <76/16377/0x3ed554b0/6507/No Wait>Chain 3 : : <98/8617/0x3ed65c80/4550/No Wait>Chain 4 : :
怀念HITFM
今天是周末,手上终于没有很急的问题了,略感轻松。突然想起HITFM,恍然间我已不在北京,离HITFM似乎是那么远,还有什刹海。突然感到北京似乎是我的家。忙碌真的会让人忘掉这个世界。昨晚还受了一点小刺激,接触oracle才7个月,一个学经济的女生水平都比我高,我真搞不清楚是世界发展太快还是我放慢了前进的脚步。真想拿块豆腐,撞撞脑袋。下周搬到租住的房子里了,没有电视,我想好,我需要买个台灯了。[@more@]