这个方法在开发数据库期间可能没什么用,但是在产品环境中你可能尝试查看和跟踪数据库的错误信息。

首先我们创建一个表来存储错误信息,必须确保每个人都有访问这个表的权限

01 CREATE TABLE error_log (
02   server_error VARCHAR2(100),
03   osuser VARCHAR2(30),
04   username VARCHAR2(30),
05   machine VARCHAR2(64),
06   process VARCHAR2(24),
07   program VARCHAR2(48),
08   stmt VARCHAR2(4000),
09   msg VARCHAR2(4000),
10   date_created DATE 
11 )

然后创建如下触发器,触发条件:"AFTER SERVERERROR ON DATABASE":

01 CREATE OR REPLACE
02 TRIGGER error_log_trigger
03     AFTER SERVERERROR ON DATABASE
04 DECLARE
05     username_  error_log.username%TYPE;
06     osuser_    error_log.osuser%TYPE;
07     machine_   error_log.machine%TYPE;
08     process_   error_log.process%TYPE;
09     program_   error_log.program%TYPE;
10   stmt_      VARCHAR2(4000);
11   msg_       VARCHAR2(4000);
12   sql_text_  ora_name_list_t;
13 BEGIN
14   
15   FOR i IN 1..NVL(ora_sql_txt(sql_text_), 0) LOOP 
16     stmt_ := SUBSTR(stmt_ || sql_text_(i) ,1,4000);
17   END LOOP;
18   
19   FOR i IN 1..ora_server_error_depth LOOP
20     msg_ := SUBSTR(msg_ || ora_server_error_msg(i) ,1,4000);
21   END LOOP;
22   
23   SELECT osuser, username, machine, process, program
24   INTO   osuser_, username_, machine_, process_, program_
25   FROM   sys.v_$session
26   WHERE  audsid = USERENV('SESSIONID');
27   
28   INSERT INTO error_log VALUES (dbms_standard.server_error(1), osuser_, username_, machine_, process_, program_, stmt_, msg_, SYSDATE);
29 END;

等一等,可能表里就有错误信息了:)

转载于:https://www.cnblogs.com/shihao/archive/2012/12/06/2804349.html

监控和审计 Oracle 数据库错误相关推荐

  1. oracle数据库登录审计,oracle数据库审计

    一.何谓数据库审计? 数据库审计,就是对数据库的活动做跟踪记录,主要包括数据库连接,SQL语句执行,数据库对象访问这些方面的跟踪记录. 二.审记记录的存储方式 分为两种:一种是存储在操作系统文件中,一 ...

  2. oracle开源数据库审计,oracle数据库审计

    一.何谓数据库审计? 数据库审计,就是对数据库的活动做跟踪记录,主要包括数据库连接,SQL语句执行,数据库对象访问这些方面的跟踪记录. 二.审记记录的存储方式 分为两种:一种是存储在操作系统文件中,一 ...

  3. oracle数据库审计os,审计Oracle数据库的使用

    Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 仅使用权限.角色.视图.甚至细粒度安全策略建立访问控制系统还不能保证数据 ...

  4. Oracle数据库错误消息

    导出错误消息 l EXP-00000导出终止失败 原因:导出时产生Oracle错误. 操作:检查相应的Oracle错误消息. l EXP-00001数据域被截断 - 列长度=数字,缓冲区大小=数字,实 ...

  5. 数据库oracle审计,Oracle数据库审计策略

    Oracle数据库审计策略 Oracle数据库默认是关闭审计的,一旦开启了会对oracle数据库的性能产生影响. Oracle默认安装后审计策略设置 默认情况下,审计策略是关闭的,而且审计记录存储的模 ...

  6. 资料整理——Oracle数据库错误消息列表(Database Error Messages)

    问题: Oracle数据库中大概有多少条error message? 解答: 根据对Oracle官网资料(https://docs.oracle.com/cd/E11882_01/server.112 ...

  7. oracle10 数据库审计,Oracle数据库审计用法实例

    本节是从ORACLE METALINK的DOC:167293.1翻译整理而来的.通过举例的方式来说明ORACLE审计的用法.ORACLE的审计可以从语句级.对象 本节是从Oracle METALINK ...

  8. 使用oracle数据库审计,Oracle数据库审计功能详解

    一.审计分类: Oracle中审计总体上可分为"标准审计"和"细粒度审计"后者也称为"基于政策的审计",在Oracle10G之后功能得到很大 ...

  9. jmeter无法释放oracle连接,jmeter 连接ORACLE数据库错误及解决方法

    问题一: Response message: java.sql.SQLException: Cannot load JDBC driver class 'oracle.jdbc.driver.Orac ...

最新文章

  1. C++ 笔记(31)— 类继承
  2. php 派生类 数据库连接 单例模式 xhprof实测 高效连接
  3. 如何在防火墙或路由器中禁止访问一些公司不相关网站
  4. django-重写登录认证(可以使用用户名或手机号登录)
  5. 战队服务器人员位置,和平精英:职业战队如何分配成员位置?5大定位划出5种职位...
  6. libaio源码安装_MySQL5.7.17 编译安装及二进制安装详解
  7. 2018 蓝桥杯省赛 B 组模拟赛(五)题 F题
  8. Nginx 集群搭建
  9. Python基础之文件操作
  10. 实用的网页模板(一)
  11. 关于程序员的「年龄歧视」问题,程序员的年龄天花板难道是35岁吗?
  12. jQuery对象,jQuery查找标签,层级选择器,属性选择器,表单筛选器,操作节点标签事件...
  13. Node.js内置模块 events的基本使用
  14. SpringBoot进阶教程(七十三)整合elasticsearch
  15. 基于共享单车轨迹的自行车道规划(读书笔记)
  16. 用马青公式计算圆周率,Python语言
  17. 关于微信小程序在部分PC设备无法打开的问题
  18. 轻博客系统 doudangQb
  19. sws_scale():bad dst image pointers
  20. Android平台使用-谷歌广告联盟AdMob-赚取收益的编程方法

热门文章

  1. Celery基本使用---django-celery实现异步HTTP请求
  2. NamingException
  3. tp5 的查询构造器
  4. javascript:使用canvas绘图2D图形
  5. 驱动开发中的常用操作
  6. 命中注定码农路[一. 重新开始]
  7. JDBC中的Statement和PreparedStatement的区别
  8. Java 中 == 和equals()方法的不同点
  9. Binary Tree Preorder Traversal @leetcode
  10. linux一些杂项整理