1.本地alert log
# ora_err.rb
# usage: ruby ora_err.rb < alert.log > ora_err.txt
require 'parsedate'
delimiter = "\t"
date_mask = '%Y-%m-%d %H:%M:%S'
months = { 'Jan'=>1, 'Feb'=>2, 'Mar'=>3, 'Apr'=>4, 'May'=>5, 'Jun'=>6,
'Jul'=>7, 'Aug'=>8, 'Sep'=>9, 'Oct'=>10, 'Nov'=>11, 'Dec'=>12 }
class OraErr
attr_reader :sqlcode, :begin_time, :sqlerrm
def initialize(sqlcode,begin_time,sqlerrm)
@sqlcode = sqlcode
@begin_time = begin_time
@sqlerrm = sqlerrm
end
end
this_log = nil
last_log = nil
this_time = nil
thisTime = nil
$stdin.each() { |line|
next if $stdin.eof
line.chomp!
if line =~ /^(Sun|Mon|Tue|Wed|Thu|Fri|Sat)/ then
thisTime = Time.local(*ParseDate.parsedate(line))
elsif line =~ /^ORA-([0-9]+)/
sqlcode = $1
sqlerrm = line
this_log = OraErr.new(sqlcode,thisTime,sqlerrm)
if (last_log!=nil)
# print the last log
print \
last_log.begin_time.strftime(date_mask),delimiter,
last_log.sqlerrm,"\n"
end
last_log = this_log
this_log = nil
end
}
2.遠端alert log
#scan_remote.rb
#usage:ruby scan_remote.rb > scan.txt
require 'rubygems'
require 'net/ssh'
require 'parsedate'
delimiter = "\t"
date_mask = '%Y-%m-%d %H:%M:%S'
months = { 'Jan'=>1, 'Feb'=>2, 'Mar'=>3, 'Apr'=>4, 'May'=>5, 'Jun'=>6,
'Jul'=>7, 'Aug'=>8, 'Sep'=>9, 'Oct'=>10, 'Nov'=>11, 'Dec'=>12 }
class OraErr
attr_reader :sqlcode, :begin_time, :sqlerrm
def initialize(sqlcode,begin_time,sqlerrm)
@sqlcode = sqlcode
@begin_time = begin_time
@sqlerrm = sqlerrm
end
end
this_log = nil
last_log = nil
this_time = nil
thisTime = nil
Net::SSH.start('192.168.0.1', 'oracle',
:password=>'oraclepass') do |session|
cmd = 'cat /orasys/admin/sid/bdump/alert_sid.log'
#session.exec(cmd).each()
session.open_channel do |channel|
channel.on_data do |ch, data|
data.each_line do |line|
line.chomp!
if line =~ /^(Sun|Mon|Tue|Wed|Thu|Fri|Sat)/ then
begin
thisTime = Time.local(*ParseDate.parsedate(line))
rescue # 忽略無效日期
next
end
#print \
#ParseDate.parsedate(line) ,line,"\n"
elsif line =~ /^ORA-([0-9]+)/
sqlcode = $1
sqlerrm = line
this_log = OraErr.new(sqlcode,thisTime,sqlerrm)
if (last_log!=nil)
# print the last log
print \
last_log.begin_time.strftime(date_mask),delimiter,
last_log.sqlerrm,"\n"
end
last_log = this_log
this_log = nil
end # line
end # data
end # channel
channel.exec cmd
end # session
session.loop
end #NET
分享到:
相关推荐
10. **故障排查**:提供诊断工具和技巧,如Alert Log、Trace文件的解读,以及如何处理常见的错误和异常。 11. **数据库升级与迁移**:指导如何从旧版本的Oracle数据库升级到12c,以及不同平台之间的数据库迁移。 ...
Oracle提供了一系列诊断工具,如Trace、Alert Log、TKPROF等,帮助DBA定位和解决问题。熟悉这些工具的使用,结合Oracle文档和社区资源,能够迅速解决数据库出现的问题。 总之,Oracle Database 11g DBA手册将全面...
10. **故障诊断与问题解决**:学习如何识别和解决常见的数据库错误,以及如何使用诊断工具如trace文件、alert log和DBA views来定位问题。 通过这个工作坊,你将获得实际操作的经验,增强在生产环境中管理Oracle ...
Oracle 10g 提供了如trace文件、alert log和diag trace等诊断工具,帮助DBA理解错误原因并制定解决方案。 总之,Oracle Database 10g Administration Workshop II中文版是一个全面的学习资源,涵盖了Oracle数据库...
- 使用Alert Log和Trace文件:诊断数据库异常和性能问题。 - 使用ADDM(Automatic Database Diagnostic Monitor)进行自动性能诊断。 Oracle Database 11g Administration Workshop II 教程旨在帮助DBAs掌握这些...
Oracle Database 11g RAC(Real Application Clusters)是一种高级数据库技术,它允许数据库在多台服务器上同时运行,提供了高可用性和可扩展性。RAC通过共享存储和网络资源,使得多个实例可以共同访问单个数据库,...
这可能包括日志分析、跟踪文件解读,以及使用各种诊断工具,如Trace、Alert Log和ADDM(Automatic Diagnostic Monitor)。 最后,Oracle 11g的自动化和脚本化管理也是DBA需要掌握的技能。通过PL/SQL、SQL脚本和...
Oracle提供了一些诊断工具,如trace文件和Alert Log,可以帮助定位问题。 总之,《Oracle Database Administrators Guide 10g Release 2 (10.2)》涵盖了数据库管理员在日常工作中可能遇到的所有关键领域,是学习和...
"故障诊断"是Oracle Database另一个强大的管理特性,ADR结合Alert Log和Trace文件,能快速定位和解决故障。同时,集成的系统监视工具提供实时的健康检查,帮助DBA预防潜在问题。 "Exadata管理和云整合"体现了Oracle...
12. **故障排查**:学习如何识别和解决问题,如通过alert.log日志分析错误,使用trace文件定位性能瓶颈,以及利用DBA工具进行诊断。 13. **维护与更新**:定期更新数据库和操作系统补丁,以保持系统安全和性能。...
11. **故障诊断与问题解决**:提供一系列故障排查工具和技巧,如alert log、trace文件分析,以及如何利用DBA日志和性能监视工具来定位和解决问题。 12. **企业网格计算**:介绍Oracle 10g的网格计算理念,如何构建...
理解如何使用Alert Log和Trace文件进行问题定位。 7. **数据库实例与服务管理**:启动、关闭和管理数据库实例,以及配置Oracle服务以适应不同的操作系统环境。 8. **自动存储管理(ASM)**:Oracle ASM是一种集成...
- 使用Alert Log、Trace文件和Oracle Enterprise Manager诊断问题。 - 学习如何通过DBA视图来监控数据库状态和性能指标。 8. **升级与迁移**: - 计划和执行从旧版本到11g R2的数据库升级。 - 学习数据迁移工具...
- Alert Log和Trace文件:学习如何解读这些日志以定位问题。 - SQL Trace和10046事件:利用这些工具进行性能调优。 7. **高可用性与容错** - Standby数据库:创建和维护物理和逻辑备库,实现灾难恢复。 - RAC...
本实验报告将探讨两个核心的Oracle数据库管理任务:使用Database Configuration Assistant (DBCA) 创建数据库以及利用Alert Log进行监控与故障排查。 首先,我们来详细讲解如何使用DBCA创建数据库。DBCA是一个图形...
10. **故障诊断与排查**:了解V$视图、alert log、trace文件的使用,以及如何利用DBA工具诊断并解决问题。 这个压缩包提供的模拟考试引擎能够模拟真实考试环境,帮助考生熟悉考试格式和时间压力,同时,电子书和...
在故障后,我们收集了system.txt系统日志(通过errpt -a获得)和alert_soa.log以及oracle的跟踪日志trc。通过分析trc日志,我们发现了以下信息: /app/oracle/product/10.2.0/admin/soa/bdump/soa_mmon_307366.trc ...
4. **检查服务器日志**:Oracle的alert.log或其他服务器日志文件可能包含关于错误的额外上下文信息。 在实际工作中,了解和掌握Oracle错误代码可以帮助我们快速定位问题,提高数据库管理的效率。通过分析错误消息和...
1. **日志分析**:Oracle的日志文件(包括redo log files和alert log)提供了大量的错误信息和事件记录,是定位问题的第一步。例如,当数据库发生异常时,通过查看alert.log可以获取到错误发生的时机和详细信息。 2...