Oracle11g RAC数据库alert日志告警+短信推送方案实现【企业实战应用】
Oracle数据库的alert日志文件,记录了数据库的运行状态,包括数据库的报错信息,如ORA-600等数据库核心事件,数据库资源不足等关键信息,所以平时对该日志文件的关注,是保证数据库稳定运行的重要因素,也是DBA对数据库巡检的重点检查方面!然而alert日志是存在于磁盘目录里,平时检查比较麻烦,而且也不够实时,为了确保对alert日志的及时监控,下面方案通过对数据库alert日志文件映射到数据库表当中,然后通过存储过程的设计+作业调用的形式,定期将报错的alert日志信息推送到短信表当中,从而让维护人
预览截图
应用介绍
前言:
Oracle数据库的alert日志文件,记录了数据库的运行状态,包括数据库的报错信息,如ORA-600等数据库核心事件,数据库资源不足等关键信息,所以平时对该日志文件的关注,是保证数据库稳定运行的重要因素,也是DBA对数据库巡检的重点检查方面!然而alert日志是存在于磁盘目录里,平时检查比较麻烦,而且也不够实时,为了确保对alert日志的及时监控,下面方案通过对数据库alert日志文件映射到数据库表当中,然后通过存储过程的设计+作业调用的形式,定期将报错的alert日志信息推送到短信表当中,从而让维护人员或DBA及时掌握数据库的动态,及时作出响应处理,保证了数据库的安全稳定!
方案部分内容展示:
- 创建alert日志外部表
首先登录RAC源端的各节点分别执行下列PL/SQL块,创建各节点的ALERT日志外部表,以下以orcl1为例,在ORCL1命令窗口执行:
declare
path_bdump varchar2(4000);
name_alert varchar2(4000);
ins_name varchar2(200);
begin
select value
into path_bdump
from sys.v_$parameter
where name = 'background_dump_dest';
select 'alert_' || value || '.log'
into name_alert
from sys.v_$parameter
where name = 'instance_name';
select value
into ins_name
from sys.v_$parameter
where name = 'instance_number';
if ins_name = '0' then
ins_name := '';
end if;
execute immediate 'create or replace directory bdump'||ins_name||' as ''' || path_bdump || '''';
execute immediate 'create table ALERT_LOG_VIEW' || ins_name ||
' (MSG_line varchar2(4000) ) ' ||
' organization external ' || ' (type oracle_loader ' ||
' default directory bdump' || ins_name ||
' access parameters ( ' ||
' records delimited by newline ' || ' nobadfile ' ||
' nologfile ' || ' nodiscardfile ' || ' skip 0 ' ||
' READSIZE 10485760 ' || ' FIELDS LDRTRIM ' ||
' REJECT ROWS WITH ALL NULL FIELDS ' ||
' (MSG_LINE (1:1000) CHAR(1000)) ' || ' ) ' ||
' location (''' || name_alert || ''') )' ||
' reject limit unlimited ' ||
' noparallel nomonitoring ';
end;
/
- 创建日志推送存储过程
在orcl1创建推送日志存储过程,该过程是负责把该节点的alert错误信息推送到ods库的日志表(目前创建在dba_ftc下): - 详情方案请下载源文档方案!
请用户登录后购买!支付后会自动弹出百度网盘下载链接和密码,如遇到下载链接失效或技术疑问,可点击右侧QQ在线客服咨询,或添加工具栏微信咨询!
转载请注明出处: 天凯科技 » Oracle11g RAC数据库alert日志告警+短信推送方案实现【企业实战应用】
发表评论 取消回复