When exporting metadata (without data) using EXPDP, things often proceed smoothly. However, when performing an IMPDP using the sqlfile mode, some Oracle RAC environments may trigger an ORA-00600 internal error. This is recognized by Oracle Support as a bug (no patch may yet exist), so caution is needed before running IMPDP in production.
The Scenario & Symptoms
-
EXPDP command (metadata-only export) completes without issues.
-
IMPDP with
sqlfilemode fails with an internal error: -
The alert logs show that Oracle issues “ALTER SYSTEM SET SERVICE_NAMES” during the import attempt, introducing a generated SYS$SYS service name, e.g.,
SYS$SYS.KUPC$C_.... -
The jobs DM00/ DW00 (Data Pump processes) may attempt operations that lead to the error trace.
-
No lasting impact to the database is typically observed, but the import fails and the
sqlfileis not created.
Sample Log Extract (from alert log)
It’s noted that this may be triggered specifically when running IMPDP in a RAC context, due to internal handling of services and metadata injection.
Possible Root Causes (RCA) & Mechanisms
-
Dynamic Service Registration / Modification
Data Pump (especially in RAC) may issue or adjustSERVICE_NAMESentries to manage worker processes across instances. The generation of internal service names (SYS$SYS.*) might cause inconsistencies or unexpected internal state transitions in the process. -
Bug in Data Pump / RAC Interaction
The presence of[15851]in the ORA-00600 arguments suggests a known issue in the Oracle kernel or Data Pump internals, where a corner-case in metadata import on RAC nodes triggers an undesired internal assertion or state. -
Incomplete Statistics / Missing Fixed Object Stats
As you observed, runningDBMS_STATS.GATHER_FIXED_OBJECTS_STATS()is sometimes proposed as a workaround, but that alone may not fully mask the underlying bug or prevent the failure in all environments.
Workaround & Mitigation Strategies
-
Execute:
This collects statistics on fixed dictionary objects, which might prevent certain internal errors. However, in your tests, this did not reliably mitigate the issue.
-
Use metadata-only EXPDP / IMPDP without
sqlfilemode when feasible. -
Instead of
sqlfile, use DIRECT import of metadata (i.e. let IMPDP apply changes rather than generating script), while monitoring carefully in lower environments first. -
Validate that all RAC instances are stable, with consistent service configurations, before initiating the import.
-
If possible, run the import on a single instance (non-RAC) environment, generate the SQL file there, and then apply it in the RAC environment manually after validation.
-
Contact Oracle Support, referencing the internal error arguments
[15851]and your database version/RAC configuration, to see if they have a patch or workaround for your specific version.
Best Practices & Considerations
-
Always test Data Pump operations in lower environments before running in production, especially on RAC architectures.
-
Maintain up-to-date Oracle patches and PSU bundles, because some internal bugs may be fixed in patch sets.
-
Collect full diagnostics: run
ADRCTLorADRCIto collect the incident dump, trace files, and metadata, and provide them to Oracle Support: -
Monitor your trace directory size limits—errors like
ORA-48913(writing to trace file failed due to size limit) suggest your trace file quotas may have been exceeded. -
Archive trace files and incidents promptly to avoid file system overflow.
-
Validate service name consistency across RAC nodes, and avoid unnecessary dynamic service additions unless absolutely needed.
Summary
-
The ORA-00600 [15851] error during
IMPDP … SQLFILEin a RAC environment is a known internal issue triggered by service modifications in Data Pump. -
While
GATHER_FIXED_OBJECTS_STATSmay sometimes alleviate the issue, it is not a guaranteed fix. -
Use alternative import strategies (direct metadata import, non-RAC staging, careful scripting) when possible, and involve Oracle Support with full diagnostics if needed.
No comments:
Post a Comment