ORACLE RAC--如何定位追踪产生的core文件

简介:

在RAC环境里,经常会有core文件产生,产生的原因:程序崩溃,内核有可能把该程序当前内存映射到core文件里,方便程序员找到程序出现问题的地方。那么如何定位及追踪core呢?以下操作即是:

 

1.查找到系统程序崩溃时产生的core文件:

[root@rac1 ~]# find /u01 -name core.* -exec ls -lthr {} \; 
-rw------- 1 root root 480M Sep 27 12:01 /u01/oracle/product/crs/log/rac1/crsd/core.3907

core文件大小为480M,文件还挺大的。所以,平时,如果遇到磁盘空间不足的时候,没准就是core文件在做怪呢!

2.定位出是由于哪个文件产生的core文件:

[root@rac1 ~]# find /u01 -name core.* -exec ls -lthr {} \;|awk '{print $9}'|xargs file 
/u01/oracle/product/crs/log/rac1/crsd/core.3907: ELF 32-bit LSB core file Intel 80386, version 1 (SYSV), SVR4-style, from 'crsd.bin'

由以下命令,可以看出core.3907的产生,是由于'crsd.bin'文件引起的。

3.使用gdb对core进行追踪:


[root@rac1 ~]# gdb /u01/oracle/product/crs/bin/crsd.bin /u01/oracle/product/crs/log/rac1/crsd/core.3907 
GNU gdb Fedora (6.8-37.el5) 
Copyright (C) 2008 Free Software Foundation, Inc. 
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html
This is free software: you are free to change and redistribute it. 
There is NO WARRANTY, to the extent permitted by law. Type "show copying" 
and "show warranty" for details. 
This GDB was configured as "i386-redhat-linux-gnu"...

warning: Can't read pathname for load map: Input/output error.

warning: .dynamic section for "/lib/libdl.so.2" is not at the expected address

warning: difference appears to be caused by prelink, adjusting expectations 
Reading symbols from /lib/libm.so.6...done. 
Loaded symbols for /lib/libm.so.6 
Reading symbols from /lib/libpthread.so.0...done. 
Loaded symbols for /lib/libpthread.so.0 
Reading symbols from /u01/oracle/product/crs/lib/libocr10.so...done. 
Loaded symbols for /u01/oracle/product/crs/lib/libocr10.so 
Reading symbols from /u01/oracle/product/crs/lib/libocrb10.so...done. 
Loaded symbols for /u01/oracle/product/crs/lib/libocrb10.so 
Reading symbols from /u01/oracle/product/crs/lib/libocrutl10.so...done. 
Loaded symbols for /u01/oracle/product/crs/lib/libocrutl10.so 
Reading symbols from /u01/oracle/product/crs/lib/libhasgen10.so...done. 
Loaded symbols for /u01/oracle/product/crs/lib/libhasgen10.so 
Reading symbols from /u01/oracle/product/crs/lib/libclntsh.so.10.1...done. 
Loaded symbols for /u01/oracle/product/crs/lib/libclntsh.so.10.1 
Reading symbols from /u01/oracle/product/crs/lib/libskgxn2.so...done. 
Loaded symbols for /u01/oracle/product/crs/lib/libskgxn2.so 
Reading symbols from /lib/libdl.so.2...done. 
Loaded symbols for /lib/libdl.so.2 
Reading symbols from /lib/libnsl.so.1...done. 
Loaded symbols for /lib/libnsl.so.1 
Reading symbols from /usr/lib/libstdc++.so.5...done. 
Loaded symbols for /usr/lib/libstdc++.so.5 
Reading symbols from /lib/libc.so.6...done. 
Loaded symbols for /lib/libc.so.6 
Reading symbols from /lib/ld-linux.so.2...done. 
Loaded symbols for /lib/ld-linux.so.2 
Reading symbols from /u01/oracle/product/crs/lib/libnnz10.so...done. 
Loaded symbols for /u01/oracle/product/crs/lib/libnnz10.so 
Reading symbols from /lib/libgcc_s.so.1...done. 
Loaded symbols for /lib/libgcc_s.so.1 
Reading symbols from /lib/libnss_files.so.2...done. 
Loaded symbols for /lib/libnss_files.so.2 
Core was generated by `/u01/oracle/product/crs/bin/crsd.bin reboot'. 
Program terminated with signal 6, Aborted.
 
[New process 4787] 
[New process 4789] 
[New process 4786] 
[New process 4785] 
[New process 4784] 
[New process 4783] 
[New process 4782] 
[New process 4781] 
[New process 4780] 
[New process 4779] 
[New process 4778] 
[New process 4721] 
[New process 4701] 
[New process 4700] 
[New process 4665] 
[New process 4664] 
[New process 4663] 
[New process 4662] 
[New process 4661] 
[New process 4660] 
[New process 4659] 
[New process 4658] 
[New process 4657] 
[New process 4656] 
[New process 4655] 
[New process 4654] 
[New process 4653] 
[New process 4652] 
[New process 4651] 
[New process 4650] 
[New process 4649] 
[New process 4648] 
[New process 4647] 
[New process 4641] 
[New process 4640] 
[New process 4639] 
[New process 4638] 
[New process 4637] 
[New process 4636] 
[New process 4635] 
[New process 4634] 
[New process 4514] 
[New process 3907] 
#0 0x00389402 in __kernel_vsyscall () 
(gdb) where 
#0 0x00389402 in __kernel_vsyscall () 
#1 0x009a1df0 in raise () from /lib/libc.so.6 
#2 0x009a3701 in abort () from /lib/libc.so.6 
#3 0x0099b26b in __assert_fail () from /lib/libc.so.6 

#4 0x08363c8e in destr_detour5 () at clsThreadMain.cpp:70 
#5 0x00af45ab in start_thread () from /lib/libpthread.so.0 
#6 0x00a4acfe in clone () from /lib/libc.so.6 
(gdb) 
 

注意:上面的两行红色部分:

Core was generated by `/u01/oracle/product/crs/bin/crsd.bin reboot'. 
Program terminated with signal 6, Aborted.

 

恰恰说明,由于系统发生reboot重启操作,而产生了core文件。

 

     本文转自vcdog 51CTO博客,原文链接:http://blog.51cto.com/255361/837514,如需转载请自行联系原作者


相关实践学习
阿里云图数据库GDB入门与应用
图数据库(Graph Database,简称GDB)是一种支持Property Graph图模型、用于处理高度连接数据查询与存储的实时、可靠的在线数据库服务。它支持Apache TinkerPop Gremlin查询语言,可以帮您快速构建基于高度连接的数据集的应用程序。GDB非常适合社交网络、欺诈检测、推荐引擎、实时图谱、网络/IT运营这类高度互连数据集的场景。 GDB由阿里云自主研发,具备如下优势: 标准图查询语言:支持属性图,高度兼容Gremlin图查询语言。 高度优化的自研引擎:高度优化的自研图计算层和存储层,云盘多副本保障数据超高可靠,支持ACID事务。 服务高可用:支持高可用实例,节点故障迅速转移,保障业务连续性。 易运维:提供备份恢复、自动升级、监控告警、故障切换等丰富的运维功能,大幅降低运维成本。 产品主页:https://www.aliyun.com/product/gdb
相关文章
|
5月前
|
SQL Oracle 关系型数据库
【赵渝强老师】Oracle的控制文件与归档日志文件
本文介绍了Oracle数据库中的控制文件和归档日志文件。控制文件记录了数据库的物理结构信息,如数据库名、数据文件和联机日志文件的位置等。为了保护数据库,通常会进行控制文件的多路复用。归档日志文件是联机重做日志文件的副本,用于记录数据库的变更历史。文章还提供了相关SQL语句,帮助查看和设置数据库的日志模式。
154 1
【赵渝强老师】Oracle的控制文件与归档日志文件
|
5月前
|
SQL Oracle 关系型数据库
Oracle 从 DMP 文件中恢复指定表的步骤
Oracle 从 DMP 文件中恢复指定表的步骤
376 7
|
5月前
|
Oracle 关系型数据库 数据库
Oracle数据恢复—Oracle数据库文件有坏快损坏的数据恢复案例
一台Oracle数据库打开报错,报错信息: “system01.dbf需要更多的恢复来保持一致性,数据库无法打开”。管理员联系我们数据恢复中心寻求帮助,并提供了Oracle_Home目录的所有文件。用户方要求恢复zxfg用户下的数据。 由于数据库没有备份,无法通过备份去恢复数据库。
|
5月前
|
Oracle 关系型数据库 数据库
【赵渝强老师】Oracle的参数文件与告警日志文件
本文介绍了Oracle数据库的参数文件和告警日志文件。参数文件分为初始化参数文件(PFile)和服务器端参数文件(SPFile),在数据库启动时读取并分配资源。告警日志文件记录了数据库的重要活动、错误和警告信息,帮助诊断问题。文中还提供了相关视频讲解和示例代码。
136 1
|
7月前
|
Oracle 关系型数据库 数据库
数据库数据恢复—Oracle数据库文件出现坏块的数据恢复案例
打开oracle数据库报错“system01.dbf需要更多的恢复来保持一致性,数据库无法打开”。 数据库没有备份,无法通过备份去恢复数据库。用户方联系北亚企安数据恢复中心并提供Oracle_Home目录中的所有文件,急需恢复zxfg用户下的数据。 出现“system01.dbf需要更多的恢复来保持一致性”这个报错的原因可能是控制文件损坏、数据文件损坏,数据文件与控制文件的SCN不一致等。数据库恢复工程师对数据库文件进一步检测、分析后,发现sysaux01.dbf文件损坏,有坏块。 修复并启动数据库后仍然有许多查询报错,export和data pump工具使用报错。从数据库层面无法修复数据库。
数据库数据恢复—Oracle数据库文件出现坏块的数据恢复案例
|
5月前
|
SQL Oracle 关系型数据库
【赵渝强老师】Oracle的数据文件
在Oracle数据库中,数据库由多个表空间组成,每个表空间包含多个数据文件。数据文件存储实际的数据库数据。查询时,如果内存中没有所需数据,Oracle会从数据文件中读取并加载到内存。可通过SQL语句查看和管理数据文件。附有视频讲解及示例。
|
6月前
|
Oracle 关系型数据库 数据库
oracle数据恢复—Oracle数据库文件损坏导致数据库打不开的数据恢复案例
打开oracle数据库时报错,报错信息:“system01.dbf需要更多的恢复来保持一致性,数据库无法打开”。急需恢复zxfg用户下的数据。 出现上述报错的原因有:控制文件损坏、数据文件损坏、数据文件与控制文件的SCN不一致等。数据恢复工程师对数据库文件做进一步检测分析后发现sysaux01.dbf文件有坏块。修复sysaux01.dbf文件,启动数据库依然有许多查询报错。export和data pump工具无法使用,查询告警日志并分析报错,确认发生上述错误的原因就是sysaux01.dbf文件损坏。由于该文件损坏,从数据库层面无法修复数据库。由于system和用户表空间的数据文件是正常的,
|
8月前
|
运维 Oracle 前端开发
Oracle 11g RAC集群日常运维命令总结
Oracle 11g RAC集群日常运维命令总结
175 2
|
9月前
|
存储 负载均衡 Oracle
|
8月前
|
Oracle 关系型数据库
分布式锁设计问题之Oracle RAC保证多个节点写入内存Page的一致性如何解决
分布式锁设计问题之Oracle RAC保证多个节点写入内存Page的一致性如何解决
115 0

推荐镜像

更多