一. dba_errors 表
官网对这个表的说明如下:
ALL_ERRORS:describes the current errors on the stored objects accessible to the current user.
DBA_ERRORS:describes the current errors on all stored objects in the database.
USER_ERRORS: describes the current errors on the stored objects owned by the current user. This view does not display the OWNER column.
示例:
SQL> select owner,name,type,text,attribute from dba_errors;
OWNER NAME TYPE TEXT ATTRIBUTE
---------- ------------------------- ------------ -------------------------------------------------- ---------
SYS PROC_ALARM_KC_SCB PROCEDURE PL/SQL: ORA-00942: table or view does not exist ERROR
SYS PROC_ALARM_KC_SCB PROCEDURE PL/SQL: SQL Statement ignored ERROR
SYS PROC_ALARM_KC_SCB PROCEDURE PLS-00201: identifier 'JOBLOG.WRITELOG' must be de ERROR
SYS PROC_ALARM_KC_SCB PROCEDURE PL/SQL: Statement ignored ERROR
SYS PROC_ALARM_KC_SCB PROCEDURE PLS-00201: identifier 'RUNLOG.ERRORLOG' must be de ERROR
SYS PROC_ALARM_KC_SCB PROCEDURE PL/SQL: Statement ignored ERROR
从这个表里面,我们可以看到数据库当前存在的错误,这些错误信息包含对象名称,类型,所有者,错误类型和错误原因。
如果该表里有这些错误,就可以调用Oracle 的发送邮件的存储过程,将这些信息发送到相关邮箱或者移动的139邮箱,该邮箱可以直接将邮件发送到手机。 这样就可以起到一个及时通知的作用。
发送邮件的存储过程参考Blog:
Oracle 发送邮件 存储过程
http://blog.csdn.net/tianlesoftware/archive/2010/08/27/5842754.aspx
二. 存储过程
/* Formatted on 2011/5/19 20:48:30 (QP5 v5.163.1008.3004) */
CREATE OR REPLACE PROCEDURE getsenterrlog
AS
email_title VARCHAR2 (100); --email 标题
email_content VARCHAR2 (1000); --email 内容
email_server VARCHAR2 (20); -- email 服务器
email_sender VARCHAR2 (20); --email 发送邮箱
email_user VARCHAR2 (20); --email 用户
email_pwd VARCHAR2 (20); --emai 密码
email_receiver1 VARCHAR2 (100); --email 接收人
email_receiver2 VARCHAR2 (100); --email 接收人
email_receiver3 VARCHAR2 (100); --email 接收人
CURSOR c1
IS
SELECT * FROM dba_errors;
BEGIN
/**
过程内容: 查询dba_errors 表,如果有错误,就发送到139邮箱
作者: Dave
时间:2011-5-19
*/
email_server := '192.168.1.100';
email_sender := 'dvd.dba@gmail.com';
email_user := 'tianlesoftware';
email_pwd := 'pwd';
email_receiver1 :=
'13888888888@139.com;dvd.dba@gmail.com';
email_receiver2 :=
'13888888888@139.com;dvd.dba@gmail.com';
email_receiver3 :=
'13888888888@139.com;dvd.dba@gmail.com';
FOR x IN c1
LOOP
IF x.owner = 'SYS'
THEN
email_title := x.owner|| ',s '|| x.TYPE|| ': '|| x.name|| ' report ' || x.attribute || '!';
email_content := x.text;
-- DBMS_OUTPUT.put_line (email_title);
--DBMS_OUTPUT.put_line (email_content);
procsendemail (email_content,email_title, email_sender,email_receiver1, email_server,25,1,email_user,email_pwd, '', 'bit 7');
ELSIF x.owner = 'SYSTEM'
THEN
email_title := x.owner|| ',s '|| x.TYPE|| ': '|| x.name|| ' report ' || x.attribute || '!';
email_content := x.text;
-- DBMS_OUTPUT.put_line (email_title);
--DBMS_OUTPUT.put_line (email_content);
--调用发送邮件过程
procsendemail (email_content,email_title, email_sender,email_receiver2, email_server,25,1,email_user,email_pwd, '', 'bit 7');
ELSE
email_title := x.owner|| ',s '|| x.TYPE|| ': '|| x.name|| ' report ' || x.attribute || '!';
email_content := x.text;
-- DBMS_OUTPUT.put_line (email_title);
--DBMS_OUTPUT.put_line (email_content);
procsendemail (email_content,email_title, email_sender,email_receiver3, email_server,25,1,email_user,email_pwd, '', 'bit 7');
END IF;
END LOOP;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
RETURN;
WHEN OTHERS
THEN
RETURN;
END;
不同用户的错误,发送到相关的责任人,当然DBA 肯定都要收到。
三. 使用Scheduler Job 部署
Oracle 10g Scheduler 特性
http://blog.csdn.net/tianlesoftware/archive/2009/10/22/4715218.aspx
3.1 创建Job:
BEGIN
DBMS_SCHEDULER.CREATE_JOB (
job_name => 'Jobgetsenterrlog',
job_type => 'STORED_PROCEDURE',
job_action => 'GETSENTERRLOG', --调用的过程名称
start_date => sysdate,
repeat_interval => 'FREQ=MINUTELY;INTERVAL=1'); -- 每个一分钟执行一次
END;
/
关于这些参数的说明,参考上面的链接。
注意:
JOB 虽然成功创建了,但却并未执行.因为ENABLED 参数当不显式指定时,该参数的默认值为false。
3.2 启用Job
exec dbms_scheduler.enable('Jobgetsenterrlog');
3.3 停止Job
exec dbms_scheduler.disable(' Jobgetsenterrlog');
-------------------------------------------------------------------------------------------------------
Blog: http://blog.csdn.net/tianlesoftware
Email: dvd.dba@gmail.com
DBA1 群:62697716(满); DBA2 群:62697977(满) DBA3 群:62697850(满)
DBA 超级群:63306533(满); DBA4 群: 83829929 DBA5群: 142216823
DBA6 群:158654907 聊天 群:40132017 聊天2群:69087192
--加群需要在备注说明Oracle表空间和数据文件的关系,否则拒绝申请
分享到:
相关推荐
cfg_errors.gocfg_errors.gocfg_errors.gocfg_errors.gocfg_errors.gocfg_errors.gocfg_errors.gocfg_errors.gocfg_errors.gocfg_errors.go
oracle8i_errors.chm
max_connect_errors是一个MySQL中与安全有关的计数器值,它负责阻止过多尝试失败的客户端以防止暴力破解密码的情况。max_connect_errors的值与性能并无太大关系。 默认情况下,my.cnf文件中可能没有此行,如果需要...
python库。 资源全名:pretty_errors-1.0.7-py3-none-any.whl
"pretty_errors-1.0.3.tar.gz"是这个库的一个版本压缩包,文件名表明这是"pretty_errors"库的1.0.3版本,以tar.gz格式打包。这种压缩格式在Linux和Unix系统中常见,它结合了tar(用于打包多个文件)和gzip(用于压缩...
rx_errors: 0 tx_errors: 0 tx_dropped: 0 multicast: 0 collisions: 0 rx_length_errors: 0 rx_over_errors: 0 rx_crc_errors: 0 rx_frame_errors: 0 rx_no_buffer_count: 0 rx_missed_...
这些视图对于数据库管理员(DBA)来说至关重要,因为它们可以帮助监控和管理数据库,解决性能问题,以及执行日常维护任务。下面将详细介绍部分重要的Oracle系统视图及其功能: 1. **DBA_2PC_NEIGHBORS**: 这个视图...
11-6_cal_errors.py
11. **数据库链接**:`dba_db_links`管理数据库之间的连接,如`create database link [link_name] connect to [username] identified by [password] using '[connection_string]'`创建数据库链。 12. **触发器**:`...
标题“SPAWC2017_CS_robust_sync_errors-master_northbit_mimo_”表明这是一份关于SPAWC(Space-Time Processing for Wireless Communications)2017年会议中的一个研究项目,重点关注在MIMO(Multiple-Input ...
"Oracle_Errors描述"文件显然是一个关于Oracle数据库错误信息的参考指南,它包含了Oracle数据库在运行时可能出现的各种错误代码及其解释。 Oracle错误通常以“ORA-”开头,后跟四位或五位数字,例如"ORA-00001",...
6. 社区支持:一个成熟的库通常会有活跃的社区,开发者可以在论坛、邮件列表或GitHub上寻求帮助,共享解决方案,或者报告和跟踪问题。 总的来说,“ggtk_module_orup_errors”库致力于解决GTK+编程中的错误处理问题...
对于DBA(数据库管理员)来说,熟悉并掌握这些系统表是管理和维护数据库的基础。 #### 1. 用户管理:`dba_users` `dba_users`表提供了所有用户的详细信息,如用户名、账户状态等。通过查询此表,可以获取整个...
本文件包包含了关于"Oracle_Errors(oracle错误信息)解释"的相关资源,旨在帮助用户理解和解决在使用Oracle数据库时遇到的问题。 `Oracle_Errors(oracle错误信息).chm` 是一个Microsoft帮助文件,它可能包含了Oracle...
Best_Errors和 :终于在一起了! 是否厌倦了为每个Rails 项目在 Gemfile 中同时要求better_errors和binding_of_caller而使您的手指陷入僵局? 那么这颗宝石是给你的!安装把它放在你的 Gemfile 中并打包: gem 'best...
### ADS_Errors_and_Warnings:深入解析MTK嵌入式开发中的常见问题 #### 引言 《ADS_Errors_and_Warnings》文档是针对ARM Developer Suite (ADS) 1.2版本及其RealView Compilation Tools (RVCT) 1.2版本的错误与...
Oracle数据库是全球广泛使用的大型关系型数据库管理系统,其在企业级应用中占据着重要的地位。在使用Oracle过程中,我们不可避免地会遇到各种错误,这些错误可能是由于语法错误、权限问题、资源冲突、配置不当或是...
- 存储过程和函数的信息可以通过`dba_objects`查找,其文本在`user_source`中,错误信息在`user_errors`中。 13. **约束**: - 约束与表紧密相关,可以在创建或修改表时定义,包括主键、外键、唯一性、非空等约束...