惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
DataBreaches.Net
N
Netflix TechBlog - Medium
P
Proofpoint News Feed
D
Docker
J
Java Code Geeks
L
LangChain Blog
Microsoft Security Blog
Microsoft Security Blog
The GitHub Blog
The GitHub Blog
I
InfoQ
Stack Overflow Blog
Stack Overflow Blog
云风的 BLOG
云风的 BLOG
Engineering at Meta
Engineering at Meta
MongoDB | Blog
MongoDB | Blog
月光博客
月光博客
T
Tailwind CSS Blog
M
MIT News - Artificial intelligence
Blog — PlanetScale
Blog — PlanetScale
Google DeepMind News
Google DeepMind News
腾讯CDC
罗磊的独立博客
U
Unit 42
爱范儿
爱范儿
Vercel News
Vercel News
MyScale Blog
MyScale Blog

博客园 - 石云华

gpnptool手动修改GPnP-Profile信息,解决GI集群因心跳配置异常而无法启动的问题 hugePage配置不当,浪费太多物理内存,内存不足导致集群重启 Exadata存储节点的RPM数据库损坏 duplicate方式搭建DataGuard时,报ORA-19563: header validation failed for file错误 Oracle 19.25 RAC 业务 IP 平滑变更实操 EM13c监控Exadata,提示Agent Unreachable Exadata环境中的CVE-2026-31431漏洞说明 /var/log/message日志中的“megaraid_sas 0000:65:00.0: Application firmware crash dump mode set success”信息 DBCA后,只能启动一个实例,都是rp_filter惹的祸 分析Exadata写入慢的性能故障 Exadata更换Infiniband交换机 数据库集群中的bond1接口出现网络丢包 EM13告警:Metric evaluation error start - oracle.sysman.emSDK.agent.fetchlet.exception.FetchletException: Permission denied(publickey,password) Exadata,更换完思科交换机后,与上联交换机无法通信 Exadata更换计算节点的硬盘 Exalogic虚拟机的网络无法启动,提示Device has different MAC address than expected 单个ASM磁盘free空间为0,导致rebalance时提示“ASM磁盘组空间耗尽(ORA-15041)” Exadata的思科交换机,重启后进入到了rommon模式 SYSAUX表空间中的SYS.EXP_HEAD$表,占用大量空间 PX并行进程产生大量的trace日志,导致文件系统撑爆 回收站存在大量对象,导致Insert into...select语句夯住 用dg broker执行switchover时,报0RA-01017 增量备份恢复的方式修改缺失归档的DataGuard 未设置min_free_kbytes参数,导致操作系统进行页缓存回收时,整个操作系统夯住 Exadata数据库性能异常,备份进程卡住 MySQL 5.7版本,搭建一个两主一从的多源主从复制环境 恢复某个数据文件不适当,导致DataGuard无法open数据库 Exadata计算节点的内存出现故障,导致CPU耗尽 Bug 34885986 - Flashback log file was not reused even if db_flashback_retention_target is passed
terminating the instance due to error 472,故障原因分析
石云华 · 2026-09-02 · via 博客园 - 石云华

1. 故障概述
    数据库实例异常Crash掉,尝试手动启动数据库实例,但在open阶段处于hang状态,数据库无法正常使用。最终,只能重启操作系统,重启完操作系统后,数据库也随之启动,业务恢复正常。
本文主要对故障原因进行分析,并给出相应建议。

2. 故障分析

2.1 查看数据库的alert日志,如下所示。

Sat Feb 28 13:26:18 2026

Thread 1 cannot allocate new log, sequence 75712

Private strand flush not complete

  Current log# 5 seq# 75711 mem# 0: /opt/oracle/oradata/orcl/redo05c.log

  Current log# 5 seq# 75711 mem# 1: /data/oracle/onlineloga/redo05a.log

Thread 1 advanced to log sequence 75712 (LGWR switch)

  Current log# 1 seq# 75712 mem# 0: /opt/oracle/oradata/orcl/redo01c.log

  Current log# 1 seq# 75712 mem# 1: /data/oracle/onlineloga/redo01a.log

Sat Feb 28 13:26:21 2026

LNS: Standby redo logfile selected for thread 1 sequence 75712 for destination LOG_ARCHIVE_DEST_2

Sat Feb 28 13:26:22 2026

Archived Log entry 40442 added for thread 1 sequence 75711 ID 0x64e77adf dest 1:

Sat Feb 28 13:26:46 2026

Hex dump of (file 11, block 1735184) in trace file /opt/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_12766.trc

Corrupt block relative dba: 0x02da7a10 (file 11, block 1735184)

Bad header found during user buffer read

Data in bad block:

 type: 58 format: 0 rdba: 0x003a0037

 last change scn: 0x002e.00340034 seq: 0x33 flg: 0x00

 spare1: 0x31 spare2: 0x0 spare3: 0x2e35

 consistency value in tail: 0xb98f0601

 check value in block header: 0x36

 block checksum disabled

Reading datafile '/data/oracle/users08.dbf' for corruption at rdba: 0x02da7a10 (file 11, block 1735184)

Reread (file 11, block 1735184) found same corrupt data

Starting background process ABMR

Sat Feb 28 13:26:46 2026

ABMR started with pid=100, OS id=101004

Auto BMR service is active.

Requesting Auto BMR for (file# 11, block# 1735184)

Waiting Auto BMR response for (file# 11, block# 1735184)

Sat Feb 28 13:27:47 2026

Auto BMR failed for (file# 11, block# 1735184); error=No response received

Sat Feb 28 14:02:50 2026

ABMR (ospid: 101004): terminating the instance due to error 472

Termination issued to instance processes. Waiting for the processes to exit

Sat Feb 28 14:03:00 2026

Instance termination failed to kill one or more processes

Instance terminated by ABMR, pid = 101004

从数据库的alert日志可以看出:

在28号的13:26:46,数据库实例在访问数据文件users08.dbf时,检测到坏块(file 11, block 1735184),然后自动启动了ABMR(Auto Block Media Recovery)进程尝试修复坏块。在13:27:47,自动的坏块修复工作失败,失败的原因是“没有接收到响应(No response received)”,最终在14:02:50,ABMR进程中止了数据库实例。

ABMR进程在自动修复坏块时,没有接收到响应,这一异常表现通常有两种可能的原因:(1)、操作系统hang死;(2)、存储子系统hang死。

2.2 查看操作系统的message日志,如下所示。

Feb 28 13:01:02 localhost systemd: Removed slice User Slice of root.

Feb 28 13:30:19 localhost kernel: INFO: task oracle:12766 blocked for more than 122 seconds.

Feb 28 13:30:19 localhost kernel:      Tainted: G            E      6.4.3-1.el7.elrepo.x86_64 #1

Feb 28 13:30:19 localhost kernel: "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.

Feb 28 13:30:19 localhost kernel: task:oracle          state:D stack:0     pid:12766 ppid:1      flags:0x00000000

Feb 28 13:30:19 localhost kernel: Call Trace:

Feb 28 13:30:19 localhost kernel: <TASK>

Feb 28 13:30:20 localhost kernel: __schedule+0x2f6/0xa00

Feb 28 13:30:20 localhost kernel: schedule+0x68/0xf0

Feb 28 13:30:20 localhost kernel: schedule_preempt_disabled+0x15/0x30

Feb 28 13:30:20 localhost kernel: rwsem_down_read_slowpath+0x286/0x500

Feb 28 13:30:20 localhost kernel: ? x2apic_send_IPI+0x4d/0x60

Feb 28 13:30:20 localhost kernel: down_read+0x4a/0xc0

Feb 28 13:30:20 localhost kernel: xfs_ilock+0xdd/0x110 [xfs]

Feb 28 13:30:20 localhost kernel: xfs_ilock_iocb.isra.0+0x41/0x50 [xfs]

Feb 28 13:30:20 localhost kernel: xfs_file_buffered_read+0x2d/0xc0 [xfs]

Feb 28 13:30:20 localhost kernel: xfs_file_read_iter+0x74/0xe0 [xfs]

Feb 28 13:30:20 localhost kernel: vfs_read+0x1be/0x300

Feb 28 13:30:20 localhost kernel: ksys_pread64+0x71/0xa0

Feb 28 13:30:20 localhost kernel: __x64_sys_pread64+0x1e/0x30

Feb 28 13:30:20 localhost kernel: do_syscall_64+0x38/0x90

Feb 28 13:30:20 localhost kernel: entry_SYSCALL_64_after_hwframe+0x72/0xdc

Feb 28 13:30:20 localhost kernel: RIP: 0033:0x7f85a580efa3

Feb 28 13:30:20 localhost kernel: RSP: 002b:00007ffda296bd18 EFLAGS: 00000246 ORIG_RAX: 0000000000000011

Feb 28 13:30:20 localhost kernel: RAX: ffffffffffffffda RBX: 00007ffda2970778 RCX: 00007f85a580efa3

Feb 28 13:30:20 localhost kernel: RDX: 0000000000002000 RSI: 00007f85a442f000 RDI: 0000000000000015

Feb 28 13:30:20 localhost kernel: RBP: 00007ffda29706a0 R08: 0000000000002000 R09: 00007f85a442f000

Feb 28 13:30:20 localhost kernel: R10: 000000034f420000 R11: 0000000000000246 R12: 0000000000002000

Feb 28 13:30:20 localhost kernel: R13: 0000000000000000 R14: 00007f85a4a07120 R15: 00000000001a7a0f

从操作系统的message日志可以看出:

数据库的12766号进程已经被阻塞了122秒,进程当前的状态为:D (不可中断睡眠状态),此时相关的Call Trace函数都是xfs文件相关的函数,也即在数据库访问IO时hang住。

2.3  结合操作系统和数据库日志,整理出该故障的时间线如下所示:

(1). 13:26:46,数据库实例访问数据文件时,发现了坏块。接着就自动启动了ABMR进程尝试修复坏块。

(2). 13:27:47,ABMR进程报错,原因是无没收到IO响应(No response received)。

(3). 13:30:19,操作系统提示数据库进程的IO访问已经被阻塞了122秒。

(4). 14:02:50,ABMR进程中止了数据库实例。

该故障的原因有两种可能性:

(1).底层的存储是否有问题?需要进一步检查存储层面的软硬件。

(2).操作系统的资源耗尽,尤其是物理内存几乎耗尽,系统出现大量SWAP动作?需要通过OSW工具进一步验证。

最终,由于缺少OSW日志,无法判断故障时间段的操作系统资源使用情况,该故障的根因无法确定。

3. 建议

3.1 存储层面,进一步排查。
3.2 主机层面,部署OSW监控工具。