监控和审计 Oracle 数据库错误
这个方法在开发数据库期间可能没什么用,但是在产品环境中你可能尝试查看和跟踪数据库的错误信息。
首先我们创建一个表来存储错误信息,必须确保每个人都有访问这个表的权限
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 数据库错误相关推荐
- oracle数据库登录审计,oracle数据库审计
一.何谓数据库审计? 数据库审计,就是对数据库的活动做跟踪记录,主要包括数据库连接,SQL语句执行,数据库对象访问这些方面的跟踪记录. 二.审记记录的存储方式 分为两种:一种是存储在操作系统文件中,一 ...
- oracle开源数据库审计,oracle数据库审计
一.何谓数据库审计? 数据库审计,就是对数据库的活动做跟踪记录,主要包括数据库连接,SQL语句执行,数据库对象访问这些方面的跟踪记录. 二.审记记录的存储方式 分为两种:一种是存储在操作系统文件中,一 ...
- oracle数据库审计os,审计Oracle数据库的使用
Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 仅使用权限.角色.视图.甚至细粒度安全策略建立访问控制系统还不能保证数据 ...
- Oracle数据库错误消息
导出错误消息 l EXP-00000导出终止失败 原因:导出时产生Oracle错误. 操作:检查相应的Oracle错误消息. l EXP-00001数据域被截断 - 列长度=数字,缓冲区大小=数字,实 ...
- 数据库oracle审计,Oracle数据库审计策略
Oracle数据库审计策略 Oracle数据库默认是关闭审计的,一旦开启了会对oracle数据库的性能产生影响. Oracle默认安装后审计策略设置 默认情况下,审计策略是关闭的,而且审计记录存储的模 ...
- 资料整理——Oracle数据库错误消息列表(Database Error Messages)
问题: Oracle数据库中大概有多少条error message? 解答: 根据对Oracle官网资料(https://docs.oracle.com/cd/E11882_01/server.112 ...
- oracle10 数据库审计,Oracle数据库审计用法实例
本节是从ORACLE METALINK的DOC:167293.1翻译整理而来的.通过举例的方式来说明ORACLE审计的用法.ORACLE的审计可以从语句级.对象 本节是从Oracle METALINK ...
- 使用oracle数据库审计,Oracle数据库审计功能详解
一.审计分类: Oracle中审计总体上可分为"标准审计"和"细粒度审计"后者也称为"基于政策的审计",在Oracle10G之后功能得到很大 ...
- jmeter无法释放oracle连接,jmeter 连接ORACLE数据库错误及解决方法
问题一: Response message: java.sql.SQLException: Cannot load JDBC driver class 'oracle.jdbc.driver.Orac ...
最新文章
- C++ 笔记(31)— 类继承
- php 派生类 数据库连接 单例模式 xhprof实测 高效连接
- 如何在防火墙或路由器中禁止访问一些公司不相关网站
- django-重写登录认证(可以使用用户名或手机号登录)
- 战队服务器人员位置,和平精英:职业战队如何分配成员位置?5大定位划出5种职位...
- libaio源码安装_MySQL5.7.17 编译安装及二进制安装详解
- 2018 蓝桥杯省赛 B 组模拟赛(五)题 F题
- Nginx 集群搭建
- Python基础之文件操作
- 实用的网页模板(一)
- 关于程序员的「年龄歧视」问题,程序员的年龄天花板难道是35岁吗?
- jQuery对象,jQuery查找标签,层级选择器,属性选择器,表单筛选器,操作节点标签事件...
- Node.js内置模块 events的基本使用
- SpringBoot进阶教程(七十三)整合elasticsearch
- 基于共享单车轨迹的自行车道规划(读书笔记)
- 用马青公式计算圆周率,Python语言
- 关于微信小程序在部分PC设备无法打开的问题
- 轻博客系统 doudangQb
- sws_scale():bad dst image pointers
- Android平台使用-谷歌广告联盟AdMob-赚取收益的编程方法