一则父子表下trigger抛出ORA-04091异常的变通处理

   trigger抛出ORA-04091异常,无非是当前trigger下的事务access了一mutating table,比较常见的就是trigger访问了自身上的表.在一个指定on delete cascade模式下的父子表中,trigger中如果有对其相关的父/子表的访问,依然会抛出ORA-04091.这是比较隐性的.

   拿oracle的示例表emp和dept来做这个试验.
   dept的表结构如下:

create table DEPT
    
(DEPTNO NUMBER(2) not null primary key,
    
DNAME  VARCHAR2(14),
    
LOC    VARCHAR2(13));

    emp表结构如下:
【阅读全文】

Blog终于安家了

今天终于搭建好了属于自己的blog.

Wordpress是个好东西,也难怪它现在这么流行.只要有个php+mysql的主机环境,就可以轻松的搭建属于自己的blog平台.

本想买一个付费空间,出于blog刚破土而出,还是选择了使用免费空间作为练手和过渡.当然,使用免费有一定的风险,因为你不晓得它什么时候就无缘无故的关闭了,不过在我们做好充足的备份的前提下,这点小瑕疵对与像我这种Wordpress的新手来说,还是基本上可以忽略不计的.

如果你还不想付费而又急不可待的想拥有一个个人blog,那就高举免费大旗吧.推荐几个我用过de不错de php+mysql免费空间,都是国外的,相比国内来说,国外的服务商诚信度和稳定性都要好很多,而且,对免费用户的支持和问题响应度也还说的过去.
【阅读全文】

Segment Header 占用几个block

      段空间手动管理的LMT下,Segment header被用来记录freelist的使用情况,extent的扩展分配情况以及记录HWM等重要信息。当table/index等object被建立的时候,被分配一个block用来记录segment header信息。随着object的数据量增大,导致 extent大量扩展,初始分配的这一个段头block必然不能维护容纳下当前的信息,Oracle将又继续分配一个/几个block用来存放(这些块,暂且称之为extent map block)。Oracle采用链表的方式,将这些块串联起来,用来维护整个segment。而这个/些block的逻辑存储位置,就是前一个segment header/extent map block块里记录中的最后一个extent 的下一个extent的首个块。做如下一个测试:

 

1.创建一个非ASSM管理的LMT表空间,设置uniform size 40K,使得在空间有限的情况下,extent尽量扩展

SQL>create tablespace test_mu datafile ‘E:\ORACLE\PRODUCT\10.2.0\ORADATA\DEMO\TEST_Mu.DBF’ size 500M segment space management manual uniform size 40K;

 

Tablespace created

2.创建表test_header

【阅读全文】

读一致性测试一例

 首先构造产生读一致性的案例环境,本例采用2个session来构造读一致性案例(当然一个session也可完成该实验)。为力求效果明了,本次排除延时块清除以及itl重用等情况。

Session 1:

SQL> conn mecoyoo/mecoyoo@test

Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.1.0

Connected as mecoyoo

 SQL> create table test_cr (id number, value number) tablespace test;

 Table created

 SQL> insert into test_cr values(1,10′);

 1 row inserted

SQL> insert into test_cr values(2,20′);

 1 row inserted

 SQL> commit;

 Commit complete

 SQL> exec pro_test_cr; –执行pro_test_cr,在此过程中,开启session 2 并执行相应 DML操作,等待session 1 产生结果。

【阅读全文】

Data Guard 之表误操作恢复

    有这样种情况,由于误操作了一个业务表(drop/truncate/delete column,etc..)幸被及时发现.此时,我们可以在短时间内恢复这个表的常规操作有这么几种:

1) Flashback/Logmnr(如果是DML类,可以使用闪回查询或者logmnr挖掘;如果是drop,可以使用flashback table,但若是字段的更改或者truncate等操作,上述就无法起到作用了)
2) Dataguard端恢复(当然,需要standby端设置delay,利用延迟应用日志时间差,来迅速将standby recover到故障时间点之前,然后利用逻辑exp&imp来实现表级恢复)

    Dataguard体系下,方法2不失为一种高效简洁的办法.下面,看如下一个试验:
【阅读全文】

Data Guard 之 MAXIMIZE PROTECTION

  9i以后,Oracle Data Guard 有三种保护模式:

1MAXIMIZE PERFORMANCE(最大性能模式):该模式下日志文件传送采用arch或者lgwr异步传送,可能丢失数据情况,对主库的性能影响最小。

2MAXIMIZE AVAILABILITY(最大可用模式):正常情况下采用lgwr同步数据传输,异常情况切换到MAXIMIZE PERFORMANCE模式,是一种性能和数据保护折中的方案。

3MAXIMIZE PROTECTION(最大保护模式) :该模式提供最大的数据保护,LGWR同步数据传输,对主库的性能影响最大。

  应该说,这三种模式各有优劣点,选用何种模式作为容灾手段,依照系统情况灵活处理。

  相比MAXIMIZE AVAILABILITYMAXIMIZE PERFORMANCEMAXIMIZE PROTECTION下的DG体系,对主库性能的影响相对易见的,尤其是单物理standby库情况,往往备库端的异常情况会导致主库的不可用。

【阅读全文】

When you Believe-年末总结

   [摘录那段凌乱局促的往日,还有曾经的那些幼稚想法,权作对自己的警醒,生活总是一个过程,即便在若有所得中继续着若有所失...... ]
 一直向往上海,只因为有个如此简单的理由–我不可能免俗,而且俗不可耐…

    释怀,十一长假的第3天,日子依旧慵懒,唯一值得庆幸的,是我终究打算给自己一个迟到的决定,许是迫不得已.我决定要离开了,去一个我不曾熟悉别人也不曾熟悉我的城市,去梦想我那个早就悸动已久却未曾有勇气面临的梦想..

   一直以来,我始终迈不出一道坎去,久久横亘在我心中,又像是一种毒素,时不时发作起来刺激着我脆弱的神经。庆幸有了逃离这个名义,我找了一个自我安慰与平衡点.感谢些些突发的变故,让我有了破茧的决心.
  
   我把它看成是一次破茧,对于我,也许是一次重生.又或许是一次牢狱..前途本就是一件未曾可知的东西,我把握不住,至少我不再去畏惧舍弃或是放手..成功与失败的界定,往往就在一瞬间的兑变.曾经我太怕去承担,过于希望有收获的回报,而现实往往背离..
  
   也许我错了,一路奔波,杭州,广州..城市与城市尽管有不尽相同的风情,很多定性的东西未曾改变..当我投向珠海那个过路城市太多个人感情的时候,我发觉自己曾经的理由很牵强。也许我自以为是到无以复加,固执到连去追求都要遵循固定的模式。我为自己设想了过多的轨迹.生活本不经由任何人安排,我所能做的,只是如何打理自己更好的适应生活..
  
    那些子夜下的大排档,那些红绿灯下熙攘的人群,还有那些我未曾感知的温存..
                                                                                                                           
                                                                                                —-2006年国庆于广州

When you Believe–迁徙

     [摘录那段凌乱局促的往日,还有曾经的那些幼稚想法,权作对自己的警醒,生活总是一个过程,即便在若有所得中继续着若有所失...... ]
      生活中有很多心情,让人不自觉地背负着迁徙。每次迁徙,对我来说更像是一场战争,只是,看不见的兵荒马乱..
  
     一个月后,我依然离奇于当初缘何站在这个城市红绿灯下的那份漠然。无视着眼前疾驰的车辆与堂皇的楼房在烈日下交映。四周,呆板,拙劣,一直到让人看到晦涩与黯然,那些远近高低的五光十色,张扬,然而却毫无生气。
  
    走在大街上,川流.

    顾自找寻我的归属感,竟发现这是件何等艰巨的任务..我相信归属感是无需时间去凝固的,于是1个月时间,我做出了感官上尚需三五年的判断。不知何时,我开始接连挑剔起了生活,更可怕的是,我的挑剔与生活的能力严重不成比例,这着实让我看轻自己。我会突然羡慕起那头别人相嘲的布利丹毛驴,至少它有在它眼中可以让自己欣喜选择的两堆茅草.我不无理由的嫉妒起了可爱毛驴的幸福..
  
     一路南下..我只是希望殊途同归罢了,即便无所谓了走失与留守.

                                                                                              —–   2006.8.8 广州