Oracle 数据库日志收集方法

在 Oracle 数据库的运维工作中,日志信息就像是数据库的 “健康报告”,能为我们揭示它的运行状态和潜在问题。无论是单实例数据库,还是复杂的 RAC 集群,亦或是 CRS(Cluster Ready Services)相关日志,掌握它们的收集方法都是运维人员必备的技能。今天,就让我们一起走进  Oracle 11g数据库日志的世界,了解如何高效收集这些关键信息。


单实例日志收集

日志存放位置

单实例数据库的日志信息存放位置相对固定且容易查找。通常,日志文件位于以下路径:

$ORACLE_BASE/diag/rdbms/dbname/instancename/trace/alter_instername.log

查询日志位置

我们也可以通过查询数据库来确认 alter 以及 trace 日志位置。打开 sqlplus,以 sysdba 身份登录:

sqlplus / as sysdba

然后执行以下查询:


select * 
from v$diag_info;

或者:


show parameter background_dump_dest;

此外,还可以在数据库中查询得到 trace 文件路径:


select 
value 
from v$diag_info 
where 
name=
'Default Trace File';

通过这些方法,我们就能精准定位单实例数据库的日志文件,为后续的故障排查和性能分析提供依据。


RAC 集群 alter、trace 日志信息收集

日志存放规律

在 Oracle RAC 集群环境下,每个节点的 Alert.log 和数据库进程的 trace 日志都存放在相同目录下。对于 alter 日志,其存放路径为:

$ORACLE_BASE/diag/rdbms/database_name/instance_name/trace/alter_instancename.log

进程日志信息

以节点的 LMS 进程为例,其 trace 日志文件命名规则如下:

$ORACLE_BASE/diag/rdbms/database_name/instance_name/trace/LMS_*.trc

类似的,还有其他进程的日志文件,如:

$ORACLE_BASE/diag/rdbms/database_name/instance_name/trace/LCK_*.trc

$ORACLE_BASE/diag/rdbms/database_name/instance_name/trace/LMON_*.trc

$ORACLE_BASE/diag/rdbms/database_name/instance_name/trace/LMD_*.trc

这些日志文件记录了各个数据库进程的详细信息,对于分析集群中的进程交互和问题定位非常有帮助。


CRS 日志收集

环境准备

集群由 grid 用户管理,所以在进行 CRS 日志查找时,需要确保以下环境变量已正确设置:

  • 确保 CRS_HOME 已经设置
  • 确保 ORACLE_BASE 已经设置
  • 确保 HOSTNAME正确设置

收集方法

  • 对于 11gR2 :执行 GRID_HOME 下面的 diagcollectin.sh:

    /bin/diagcollection.sh
    

在不同版本的 Oracle 数据库中,执行上述脚本后,会生成不同的日志文件压缩包,如 crsData_.tar.gz、ocrData_.tar.gz、oraData_.tar.gz、coreData_.tar.gz 等,这些文件包含了丰富的 CRS 日志信息,有助于我们深入了解集群的运行状况。

其他日志获取

如果 CRS 有安装,还可以在以下位置获取 Oprocd 相关内容:

/var/opt/oracle/ hostname

此外,如果 CRS 没有安装,可以通过以下步骤获取日志信息:

  1. 运行 cluvfy 脚本(需要以 oracle 软件所有者身份运行):

    cd $ORACLE_HOME/bin
    
    script /tmp/cluvfy.log
    cluvfy stage -post crsinst -n all -verbose
    exit
  2. 如果 CRS 没有安装,可以从 10gR2 DVD 或从 OTN 下载 cluvfy,然后设置环境变量 CV_HOME、CV_JDKHOME 和可选的 CV_DESTLOC,执行以下命令:

    cd $CV_HOME
    
    script cluvfy.log
    cluvfy stage -pre crsinst -n   ## Replace node1,node2 with actual node names
    exit

这些日志信息对于分析 CRS 的安装、配置和运行过程中的问题至关重要。

收集 Oracle 数据库的 Trace、Alert 信息以及 CRS 日志是数据库运维工作中的重要环节。无论是单实例数据库,还是 RAC 集群,掌握这些日志的收集方法,能够帮助我们更好地了解数据库的运行状态,及时发现和解决问题。在实际操作中,要根据不同的数据库架构和版本,选择合适的日志收集方式,为数据库的稳定运行保驾护航。希望这篇文章能为初学者在 Oracle 数据库运维的学习之路上提供一些有价值的帮助。


请使用浏览器的分享功能分享到微信等