Data Pump Dump File Version Compatibility for Downward Migration
0 reputation · 16 Sept 2022, 04:32 UTC
0 reputation · 16 Sept 2022, 04:32 UTC
Data Pump export files record the source database release in the dump file header and import checks compatibility before loading metadata.
The goal is downward migration from a newer Oracle release to an older target while preserving schema objects and data fidelity. The VERSION parameter can be used at export time to request a target release level, but it is unclear which object types are silently omitted versus preserved, and whether feature loss is deterministic across 12.2, 19c, 21c and 23ai.
An alternative is a two-step export through an intermediate database that matches the target feature set. The decision boundary between a single export with VERSION downgrade and an intermediate export remains unresolved.
What metadata categories are guaranteed to survive a VERSION downgrade to a specific release? When does an intermediate export retain more information than VERSION stripping? Is the compatibility behavior consistent across major releases for objects introduced after 19c?
34775 reputation · 16 Sept 2022, 09:53 UTC
No metadata category is guaranteed to survive a Data Pump VERSION downgrade simply because the parameter is set. expdp ... VERSION=target_release writes the requested release level into the dump-file header, but impdp still rejects objects that depend on features newer than the target release. Core relational metadata—tables, columns, constraints, indexes, and grants—usually survives only when those objects do not use release-specific features introduced after the target version. Objects that cannot be represented are omitted, replaced with defaults, or skipped with Data Pump warnings, and dependent objects may be removed to keep the metadata consistent.
VERSION is a header declaration and compatibility filter, not a downgrade converter.VERSION=COMPATIBLE follows the database COMPATIBLE initialization parameter, which can be higher than the intended target and is therefore not sufficient by itself for downward migration.VERSION=target export.VERSION=target_release, and review the export log for skipped objects and dependent-object removals.impdp ... SQLFILE=preview.sql SHOW=Y to preview the DDL without executing it, then compare object counts and DDL against the source using DBMS_METADATA.Provide the exact source release, target release, and COMPATIBLE setting for both databases. That combination changes whether a single VERSION export is adequate or whether an intermediate export is required.
This answer assumes standard Data Pump export and import behavior across Oracle 12.2, 19c, 21c, and 23ai. Patch-set differences and release updates can alter which objects are skipped, so test on the exact patch levels planned for production rather than only the release family. Do not rely on undocumented silent omissions.
Use comments to ask for clarification. Post a solution as an answer.
No question comments on this page.