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

推荐订阅源

Recent Announcements
Recent Announcements
博客园 - Franky
博客园 - 三生石上(FineUI控件)
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Apple Machine Learning Research
Apple Machine Learning Research
云风的 BLOG
云风的 BLOG
人人都是产品经理
人人都是产品经理
博客园 - 【当耐特】
L
LangChain Blog
Stack Overflow Blog
Stack Overflow Blog
H
Help Net Security
爱范儿
爱范儿
罗磊的独立博客
博客园_首页
美团技术团队
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
月光博客
月光博客
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
量子位
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 叶小钗
V
Visual Studio Blog
T
Tailwind CSS Blog

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant
Oracle ORA-00472 Error: Causes and Solutions Complete Guide
umzzil nng · 2026-06-12 · via DEV Community

umzzil nng

ORA-00472: PMON Process Terminated with Error

ORA-00472 is a critical Oracle database error that occurs when the PMON (Process Monitor) background process terminates abnormally. PMON is responsible for cleaning up failed user processes, releasing locks, rolling back uncommitted transactions, and freeing system resources — making it indispensable to Oracle's normal operation. When PMON goes down, the entire database instance typically crashes, requiring immediate attention.


Top 3 Causes

1. Operating System Resource Exhaustion

When the OS runs out of memory, file descriptors, or semaphores, PMON cannot allocate the resources it needs and terminates. Misconfigured kernel parameters are a very common root cause on Linux/Unix systems.

-- Check current process and session usage vs. limits
SELECT
    (SELECT COUNT(*) FROM v$process) AS current_processes,
    (SELECT value FROM v$parameter WHERE name = 'processes') AS max_processes,
    (SELECT COUNT(*) FROM v$session) AS current_sessions,
    (SELECT value FROM v$parameter WHERE name = 'sessions') AS max_sessions
FROM dual;

-- Review key memory parameters
SELECT name, value
FROM v$parameter
WHERE name IN ('sga_target','sga_max_size','pga_aggregate_target','memory_target')
ORDER BY name;

2. SGA Corruption or Memory Errors

Hardware faults or external processes writing into Oracle's shared memory can corrupt the SGA. When PMON reads a corrupted memory structure, it immediately crashes. This usually appears alongside ORA-00600 or ORA-07445 in the alert log.

-- Check alert log for related errors (Oracle 11g+)
SELECT originating_timestamp, message_text
FROM v$diag_alert_ext
WHERE message_text LIKE '%PMON%'
   OR message_text LIKE '%ORA-006%'
   OR message_text LIKE '%ORA-07445%'
ORDER BY originating_timestamp DESC
FETCH FIRST 30 ROWS ONLY;

-- Inspect SGA component health
SELECT name, bytes, resizeable
FROM v$sgainfo
ORDER BY bytes DESC;

3. Oracle Software Bug / Missing Patch

Certain Oracle releases contain known bugs that cause PMON to crash under specific conditions. Running without the latest PSU or Release Update exposes your instance to these defects.

-- Check Oracle version and applied patches
SELECT * FROM v$version;

-- List applied patches (Oracle 12c and above)
SELECT patch_id, version, action, status, description
FROM dba_registry_sqlpatch
ORDER BY action_time DESC;

-- Verify component registry status after patching
SELECT comp_name, version, status
FROM dba_registry
ORDER BY comp_name;


Quick Fix Solutions

Step 1 — Check the alert log and trace files first.

-- Find the diagnostic trace directory
SELECT value FROM v$diag_info WHERE name = 'Diag Trace';

Review alert_<SID>.log for the exact sequence of errors leading up to ORA-00472.

Step 2 — Restart the database (if it has not restarted automatically) and verify all background processes are running.

-- Confirm critical background processes are alive
SELECT pname, spid, background
FROM v$process
WHERE pname IN ('PMON','SMON','DBWR','LGWR','CKPT','RECO')
ORDER BY pname;

Step 3 — Validate OS kernel parameters against Oracle's installation guide (kernel.shmmax, kernel.sem, fs.file-max, ulimit settings for the oracle OS user).

Step 4 — Apply the latest Oracle Release Update (RU) if a known bug is identified via Oracle MOS (My Oracle Support). Open an SR if ORA-00600 or ORA-07445 appears alongside ORA-00472.


Prevention Tips

1. Continuous Background Process Monitoring

Schedule the following query via a cron job or Oracle Scheduler to detect anomalies early and trigger alerts before a full crash occurs.

-- Scheduled health check for critical background processes
SELECT
    p.pname,
    p.spid AS os_pid,
    NVL(s.status, 'NO SESSION') AS session_status,
    s.last_call_et AS idle_seconds
FROM v$process p
LEFT JOIN v$session s ON p.addr = s.paddr
WHERE p.background = 1
  AND p.pname IN ('PMON','SMON','DBWR','LGWR','CKPT','RECO')
ORDER BY p.pname;

2. Patch Regularly and Right-Size OS Parameters

Establish a quarterly patching cadence using Oracle's recommended PSU/RU releases. Always validate OS kernel parameters (shmmax, shmall, sem, file-max) against Oracle's platform-specific installation guide before go-live and after any infrastructure changes. Keeping both the OS and Oracle software in a supported, up-to-date state is the single most effective way to prevent ORA-00472 recurrence.


Related Errors

Error Code Description
ORA-00470 LGWR process terminated with error
ORA-00471 DBWR process terminated with error
ORA-00474 SMON process terminated with error
ORA-00600 Internal Oracle error — often the root cause behind PMON crash
ORA-07445 OS signal exception — memory violation that can kill PMON

📖 Want a more detailed guide?
Check out the full in-depth version (Korean) on oraerror.com — includes detailed analysis, additional SQL examples, and prevention tips.