ORA-00470: LGWR Process Terminated with Error — Causes, Fixes & Prevention
ORA-00470 is a critical Oracle database error that occurs when the Log Writer (LGWR) background process terminates abnormally. LGWR is responsible for writing redo entries from the SGA's Redo Log Buffer to the online redo log files, and its failure causes an immediate database crash. This error is always accompanied by additional diagnostic messages in the alert.log and LGWR trace files that must be analyzed to determine the root cause.
Top 3 Causes
1. Redo Log File I/O Failure or Inaccessibility
The most common cause is the inability of LGWR to write to the online redo log files due to disk failure, filesystem issues, or permission errors. Without redo log multiplexing, a single disk failure becomes a single point of failure for the entire database.
-- Check redo log file status immediately after the error
SELECT a.group#, a.status, a.members, b.member, b.status AS file_status
FROM v$log a
JOIN v$logfile b ON a.group# = b.group#
ORDER BY a.group#;
-- Check for invalid or stale log members
SELECT group#, member, status
FROM v$logfile
WHERE status IN ('INVALID', 'STALE');
2. OS-Level Resource Exhaustion
Insufficient OS file descriptors, out-of-memory conditions, or misconfigured kernel parameters can prevent LGWR from performing normal file I/O. On Linux systems, the OOM Killer may forcibly terminate the LGWR process when system memory is critically low.
-- Check current Oracle initialization parameters related to LGWR
SELECT name, value, description
FROM v$parameter
WHERE name IN ('log_buffer', 'db_block_size', 'log_archive_dest_state_1');
-- Review archive log space usage
SELECT dest_name, status, target, archiver, schedule,
destination, fail_count, error
FROM v$archive_dest
WHERE status != 'INACTIVE';
3. Oracle Internal Bug or Memory Corruption
Known Oracle bugs or SGA memory corruption can trigger unexpected LGWR termination. In these cases, ORA-00470 often appears alongside ORA-00600 (internal error) in the alert.log.
-- Identify recent incidents in the ADR (11g and above)
SELECT incident_id, create_time, problem_key, incident_status
FROM v$diag_incident
ORDER BY create_time DESC
FETCH FIRST 5 ROWS ONLY;
-- Locate the LGWR trace file path
SELECT value
FROM v$diag_info
WHERE name = 'Diag Trace';
Quick Fix Solutions
Step 1 — Check alert.log and identify the root error:
Always look at the errors recorded before ORA-00470 in the alert.log. The actual root cause (e.g., ORA-27063, ORA-00345) will be listed there.
Step 2 — Add redo log multiplexing if missing:
-- Add a second member to each redo log group (different disk)
ALTER DATABASE ADD LOGFILE MEMBER '/u02/redo/redo01b.log' TO GROUP 1;
ALTER DATABASE ADD LOGFILE MEMBER '/u02/redo/redo02b.log' TO GROUP 2;
ALTER DATABASE ADD LOGFILE MEMBER '/u02/redo/redo03b.log' TO GROUP 3;
Step 3 — Restart the database after resolving the underlying issue:
SHUTDOWN ABORT;
-- Resolve disk/OS issue at OS level first
STARTUP MOUNT;
-- Verify redo log files are accessible
SELECT group#, status, archived FROM v$log;
ALTER DATABASE OPEN;
Prevention Tips
1. Always multiplex redo log files across separate physical disks. A minimum of two members per group on different storage paths is mandatory in any production environment.
-- Audit redo log groups with only one member (run regularly)
SELECT group#, COUNT(*) AS member_count
FROM v$logfile
GROUP BY group#
HAVING COUNT(*) < 2;
2. Implement proactive monitoring with Oracle Enterprise Manager or custom scripts. Monitor redo log status, archive destination space, and OS metrics (disk I/O, memory) continuously. Set alerts for INVALID or STALE log file members before they escalate into an ORA-00470 outage.
Related Errors
| Error Code | Description |
|---|---|
| ORA-00313 | Failure to open redo log — often precedes ORA-00470 |
| ORA-00345 | Redo log write error during LGWR I/O |
| ORA-00321 | Error updating log file header |
| ORA-00600 | Internal error — may appear with ORA-00470 if a bug is involved |
| ORA-27063/27072 | OS-level I/O errors recorded alongside LGWR failure |
When ORA-00470 appears with ORA-00600, open an Oracle Support Service Request (SR) immediately and provide the full alert.log excerpt and the LGWR trace file.
📖 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)