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.
Top comments (0)