Oracle 数据库采用外部表监控查看分析 alert 告警

Oracle 数据库采用外部表监控查看分析 alert 告警

一、外部表相关参数说明
1、organization external    
关键字,表明定义的表为外部表。

2、type     
外部表的类型
 oracle_loader   
 定义外部表的缺省方式,只能只读方式实现文本数据的装载。
 oracle_datapump 
 支持对数据的装载与卸载,数据文件必须为二进制dump文件。可以从外部表提取数据装载到内部表,也可以从内部表卸载数据作为二进制文件填充到外部表。
 
3、default directory   
缺省的目录指明了外部文件所在的路径

4、location  
定义了外部表的位置

5、access parameters
描述如何对外部表进行访问
 records
 关键字后定义如何识别数据行 
 delimited by 'xxx'
 换行符,常用newline定义换行,并指明字符集。对于特殊的字符则需要单独定义,如特殊符号,可以使用ox'十六位值',例如tab(/t)的十六位是9,则delimitedby0x'09';cr(/r)的十六位是d,那么就是delimitedby0x'0d'。
 skip x        
 跳过x行数据,有些文件中第一行是列名,需要跳过第一行,则使用skip 1。
 fields        
 关键字后定义如何识别字段,常用的如下:
 fields:terminated by 'x' 
 字段分割符。
 enclosed by 'x' 
 字段引用符,包含在此符号内的数据都当成一个字段。例如一行数据格式如:"abc","a""b,""c,"。使用参数terminated by ',' enclosed by '"'后,系统会读到两个字段,第一个字段的值是abc,第二个字段值是a"b,"c,。
 lrtrim    
 删除首尾空白字符。
 missing field values are null
 某些字段空缺值都设为null。对于字段长度和分割符不确定且准备用作外部表文件,可以使用ultraedit、editplus等来进行分析测试,如果文件较大,则需要考虑将文件分割成小文件并从中提取数据进行测试。

6、fields terminated by "," 
描述字段的终止符 

7、reject limit unlimited 
描述允许的错误数,此处为无限制

二、采用外部表监控查看分析 alert 告警日志
我们在自己的windows电脑下做的测试(数据库版本是19.3),测试外部表访问警告日志文件,首先需要创建一个Oracle目录(路径为告警alert日志所在位置)
create or replace directory alert_dir as 'C:\app\db_base\diag\rdbms\orcl\orcl\trace';

查看创建的目录
col directory_path for a50
select * from dba_directories;

给目录授权
grant read,write on directory alert_dir to public;

然后创建一个外部表
create table alert_log(text varchar2(4000))
organization external
(
  type oracle_loader
  default directory alert_dir
  access parameters
  (
    records delimited by newline
    nobadfile
    nodiscardfile
    nologfile
  )
  location('alert_orcl.log')
)
reject limit unlimited;

之后我们就可以通过外部表来查询警告日志的内容
select * from alert_log;
需要查看数据库中曾经出现过的ORA-错误,那么可以执行如下查询:
select * from alert_log where text like 'ORA-%';
SELECT * FROM alert_log where text LIKE 'Errors%';

上一篇:Java中CAS算法的集中体现:Atomic原子类库,你了解吗?


下一篇:JVM运行时内存:堆