[20140114]從禁用觸發器看goldengate.txt

lfree發表於2014-01-14

 

昨天看了兩篇blog
http://www.pythian.com/blog/disabling-triggers-in-oracle-11-2-0-4/
http://www.pythian.com/blog/disabling-triggers-per-session/

我現在的測試環境是11.2.0.3,無法測試第1篇帖子的內容,不過第2篇的內容倒是可以測試.

重複blog的測試看看:

1.建立測試環境:
SCOTT@test> @ver

BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production

create table trigger_test as select * from dual;
create or replace trigger trigger_test_aiu
after insert or update on trigger_test
begin
    dbms_output.put_line('Trigger body');
end;
/

2.測試:

SCOTT@test> set serveroutput on
SCOTT@test> insert into trigger_test select * from dual;
Trigger body

1 row created.
--可以發現觸發器有效.

--如果執行如下呢?
SCOTT@test> exec sys.dbms_xstream_gg.set_foo_trigger_session_contxt(fire=>true);
PL/SQL procedure successfully completed.

SCOTT@test> insert into trigger_test select * from dual;
1 row created.

--可以發現沒有輸出Trigger body,使用這個功能可以在會話端禁用觸發器,也許在一些維護工作中有用.

3.看goldengate:
--如果仔細看這些就是goldengate的東西.

SCOTT@test> select owner,view_name from dba_views where view_name like '%GOLDENGATE%';
OWNER  VIEW_NAME
------ ------------------------------
SYS    GV_$GOLDENGATE_CAPTURE
SYS    GV_$GOLDENGATE_MESSAGETRACKING
SYS    GV_$GOLDENGATE_TABLE_STATS
SYS    GV_$GOLDENGATE_TRANSACTION
SYS    V_$GOLDENGATE_CAPTURE
SYS    V_$GOLDENGATE_MESSAGE_TRACKING
SYS    V_$GOLDENGATE_TABLE_STATS
SYS    V_$GOLDENGATE_TRANSACTION
SYS    DBA_GOLDENGATE_PRIVILEGES
SYS    USER_GOLDENGATE_PRIVILEGES
SYS    ALL_GOLDENGATE_PRIVILEGES

11 rows selected.

--在11.2.0.3的檢視裡面已經含有這些有關goldengate的檢視,說明oracle對goldengate的重視程度.
--也許oracle 把流會放在次要的位置,而提升goldengate的戰略地位.當然goldengate也不便宜.
--看來自己要開始學習一些goldengate的知識.

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-1070435/,如需轉載,請註明出處,否則將追究法律責任。

相關文章