dbms_alert支援非同步捕獲資料庫事件.
現測試其捕捉表的各種改變,測試表為emp.
由於是非同步的,我們這裡需要開2個sqlplus視窗(兩個session)
第乙個session裡寫儲存過程如下:
(注意要先給scott使用者許可權哦,
grant execute on dbms_alert to scott)
declare
v_n varchar2(30);
v_m varchar2(100);
v_i integer;
begin
dbms_alert.removeall;
dbms_alert.register('emp_table_alert');
dbms_alert.waitany(v_n,v_m,v_i);
if l_i=0 then
dbms_output.put_line('[name:]'||l_n);
dbms_output.put_line('[msg:]'||l_m);
end if;
dbms_alert.removeall;
end;
/
執行此儲存過程後,此session會處於等待狀態。。。
我們重新開乙個sqlplus,建立觸發器如下:
create or replace trigger emtring
after insert or update or delete on emp
begin
dbms_alert.signal('emp_table_alert',to_char(sysdate,'yyyymmdd')||':table emp is changed');
end;
其中dbms_alert.signal用來傳送警報,在此session下,進行一些改變,如insert
insert into emp(empno,ename) values(1234,'w001');
commit;
注意一定要commit;因為dbms_alert是基於事務處理的.
一旦commit,第乙個sqlplus裡的session的等待狀態會結束,輸出結果如下:
10:18:18 scott@orcl> /
[name:]emp_table_alert
[msg:]20121212:table emp is changed
DM系統包學習之四 DBMS ALERT包
一 相關方法 1.dbms alert.register 為當前會話註冊乙個預警事件,本操作會提交當前事務。語法 dbms alert.register name in varchar 30 說明 name 輸入引數,預警事件名。2.dbms alert.remove 刪除當前會話的乙個預警事件,如...
sysdig linux sysdig系統監控神器
sysdig介紹 當需要追蹤某個程序產生和接收的系統呼叫時,你可能會想到strace。你會使用什麼樣的命令列工具來監控原始網路通訊呢?如果你想到了tcpdump。而如果你碰到必須追蹤開啟的檔案的需求,可能你會使用lsof。strace tcpdump和lsof確實是必備的工具,而這也正是你為什麼應該...
如何在Ubuntu上使用Glances監控系統
glances 的功能 cpu 平均負載 不同狀態 如活動 休眠 程序的數量 所有記憶體資訊,如物理記憶體 交換空間 空閒記憶體 cpu 資訊 網路連線的上行 下行速度 磁碟 i o 讀 寫速度詳細資訊 當前掛載裝置的磁碟使用情況 消耗資源最多的程序和他們的 cpu 記憶體使用情況 安裝 glanc...