Oracle9i新特性之数据库监控系列详解
2007-05-12 12:25:07 来源:WEB开发网核心提示: 3、监控数据库关闭/启动的触发器create or replace trigger TR_DB_SHUTDOWNbefore shutdown ON DATABASEDECLAREmsMsg VARCHAR2(500);BEGINmsMsg :='user '||ora_l
3、监控数据库关闭/启动的触发器
create or replace trigger TR_DB_SHUTDOWN
before shutdown ON DATABASE
DECLARE
msMsg VARCHAR2(500);
BEGIN
msMsg :='user '||ora_login_user||' in '
||ora_client_ip_address||' ready shutdown database '
||ora_database_name|| ' now';
sp_send_mail('urmail@mail.com',msMsg);
EXCEPTION
WHEN OTHERS THEN
sp_send_mail(' urmail@mail.com ',ora_database_name||' shutdown error');
END;
说明:当数据库关闭之前,发送Mail到指定邮箱.不要在关闭/启动数据库的触发器中调用utl_file包写文件,可能会导致BUG,引起数据库不能启动,如果实在有必要,则关闭数据库与启动数据库不要使用同一个会话。
4、监控登录用户的触发器
先需要建立一张表,用于存放登陆信息。
create table LOG$INFORMATION
(
ID NUMBER(10),
USERNAME VARCHAR2(30),
LOGINTIME DATE,
TERMINAL VARCHAR2(50),
IPADRESS VARCHAR2(20),
OSUSER VARCHAR2(30),
MACHINE VARCHAR2(64),
PROGRAM VARCHAR2(64),
SID NUMBER,
SERIAL# NUMBER,
AUSID NUMBER
)
然后需要创建一个序列,才产生连续的序列号,根据序列的信息,可以更好的得到登录的信息。 create sequence SQ_LOGIN
minvalue 1
maxvalue 999999999
start with 1
increment by 1
cache 20;
更多精彩
赞助商链接