Skip to content

Oracle Error Reference - Common ORA- Errors & Solutions

Oracle Error Reference - Common ORA- Errors & Solutions

Section titled “Oracle Error Reference - Common ORA- Errors & Solutions”

This comprehensive reference provides detailed explanations and solutions for common Oracle database errors. Each error entry includes root causes, diagnostic steps, and proven resolution methods tested in production environments.

Error CodeDescriptionBusiness Impact
ORA-00600Internal errorDatabase instability
ORA-07445Exception/core dumpInstance crash risk
ORA-04031Shared pool exhaustedConnection failures
ORA-01652Temp space fullQuery failures
Error CodeDescriptionBusiness Impact
ORA-01555Snapshot too oldReport failures
ORA-00054Resource busyTransaction delays
ORA-12519No service handlerNew connections blocked
ORA-01653Cannot extend tableInsert/update failures
Error CodeDescriptionBusiness Impact
ORA-01000Max cursors exceededApplication errors
ORA-00060Deadlock detectedTransaction rollback
ORA-00001Unique constraintData integrity
ORA-00942Object not foundQuery failures
-- Recent errors from alert log
SELECT originating_timestamp, message_text
FROM x$dbgalertext
WHERE message_text LIKE 'ORA-%'
AND originating_timestamp > SYSTIMESTAMP - INTERVAL '1' DAY
ORDER BY originating_timestamp DESC;
-- Session errors
SELECT sid, serial#, username, sql_id,
event, seconds_in_wait, state
FROM v$session
WHERE status = 'ACTIVE'
AND wait_class != 'Idle';
-- Error frequency analysis
SELECT SUBSTR(message_text, 1, 9) as error_code,
COUNT(*) as occurrences,
MAX(originating_timestamp) as last_occurred
FROM x$dbgalertext
WHERE message_text LIKE 'ORA-%'
AND originating_timestamp > SYSTIMESTAMP - INTERVAL '7' DAY
GROUP BY SUBSTR(message_text, 1, 9)
ORDER BY occurrences DESC;
-- Create error tracking table
CREATE TABLE dba_error_log (
error_timestamp TIMESTAMP DEFAULT SYSTIMESTAMP,
error_code VARCHAR2(10),
error_message VARCHAR2(4000),
username VARCHAR2(30),
program VARCHAR2(100),
sql_id VARCHAR2(13),
alert_sent CHAR(1) DEFAULT 'N'
);
-- Error capture trigger (example)
CREATE OR REPLACE TRIGGER capture_errors
AFTER SERVERERROR ON DATABASE
BEGIN
IF ora_is_servererror(1555) OR
ora_is_servererror(4031) OR
ora_is_servererror(600) THEN
INSERT INTO dba_error_log (
error_code, error_message, username, program
) VALUES (
'ORA-' || ora_server_error(1),
ora_server_error_msg(1),
ora_login_user,
ora_client_ip_address
);
COMMIT;
END IF;
END;
/
  1. Analyze memory usage

    SELECT * FROM v$sgastat WHERE pool = 'shared pool' ORDER BY bytes DESC;
    SELECT * FROM v$process_memory ORDER BY allocated DESC;
  2. Adjust memory parameters

    ALTER SYSTEM SET shared_pool_size = 2G SCOPE=BOTH;
    ALTER SYSTEM SET pga_aggregate_target = 4G SCOPE=BOTH;
  1. Check tablespace usage

    SELECT tablespace_name,
    ROUND(used_space * 8192 / 1024 / 1024, 2) AS used_mb,
    ROUND(tablespace_size * 8192 / 1024 / 1024, 2) AS total_mb,
    ROUND(used_percent, 2) AS used_percent
    FROM dba_tablespace_usage_metrics
    ORDER BY used_percent DESC;
  2. Add space or reorganize

    ALTER TABLESPACE users ADD DATAFILE '/u01/oradata/users02.dbf' SIZE 10G;
    ALTER TABLE large_table MOVE COMPRESS;
  1. Verify listener status

    Terminal window
    lsnrctl status
    lsnrctl services
  2. Check connection limits

    SELECT resource_name, current_utilization, max_utilization, limit_value
    FROM v$resource_limit
    WHERE resource_name IN ('processes', 'sessions');
-- Space monitoring
CREATE OR REPLACE PROCEDURE check_tablespace_usage AS
BEGIN
FOR ts IN (
SELECT tablespace_name, used_percent
FROM dba_tablespace_usage_metrics
WHERE used_percent > 85
) LOOP
DBMS_OUTPUT.PUT_LINE('WARNING: ' || ts.tablespace_name ||
' is ' || ts.used_percent || '% full');
END LOOP;
END;
/
-- Memory monitoring
CREATE OR REPLACE PROCEDURE check_memory_usage AS
v_shared_pool_free NUMBER;
BEGIN
SELECT bytes INTO v_shared_pool_free
FROM v$sgastat
WHERE pool = 'shared pool' AND name = 'free memory';
IF v_shared_pool_free < 100*1024*1024 THEN -- Less than 100MB
DBMS_OUTPUT.PUT_LINE('CRITICAL: Shared pool free memory below 100MB');
END IF;
END;
/
  1. Regular Maintenance

    • Monitor space usage daily
    • Review alert logs hourly
    • Analyze AWR reports weekly
    • Update statistics regularly
  2. Capacity Planning

    • Set up space alerts at 80% full
    • Monitor connection pool usage
    • Track memory consumption trends
    • Plan for growth
  3. Configuration Standards

    • Set appropriate initialization parameters
    • Configure automatic memory management
    • Enable resumable space allocation
    • Implement resource manager
  • My Oracle Support - Official knowledge base and patches
  • Oracle Documentation - Error message reference
  • Oracle Community - Peer support and discussions
  • ADRCI - Automatic Diagnostic Repository analysis
  • AWR Reports - Performance analysis around errors
  • Alert Log - Chronological error history
  • Trace Files - Detailed error diagnostics
  • Oracle Support - For ORA-00600 and ORA-07445 errors
  • DBA Team - Internal escalation procedures
  • Management - Business impact assessment

Each error page includes:

  • Error explanation - What the error means
  • Common causes - Why it occurs
  • Diagnostic queries - How to investigate
  • Resolution steps - How to fix it
  • Prevention tips - How to avoid recurrence
  • Related errors - Similar issues to check

Navigate to specific error pages for detailed resolution guides tailored to each error scenario.