ADOP Full Cleanup in EBS R12.2 – What DBAs Must Know Before Running cleanup_mode=full
Oracle E-Business Suite R12.2 introduced Online Patching (ADOP) to support near-zero downtime patching. While most DBAs focus heavily on the apply and cutover phases, the cleanup phase is equally critical and, if misunderstood, can lead to irreversible data structure changes.
This blog explains what happens during ADOP full cleanup, how to preview cleanup actions, and how DBAs can control what gets cleaned up, especially unused columns.
Understanding ADOP Cleanup (cleanup_mode=full)
During an ADOP cycle, when we run:
adop phase=cleanup cleanup_mode=full
Oracle performs an aggressive cleanup of obsolete objects created during online patching. This includes removal of:
Unused database editions
Obsolete objects
Dropped or unused database columns
Redundant metadata from previous patch cycles
⚠️ Important:
Unused columns dropped during full cleanup cannot be recovered easily, and this can impact customizations, reports, or integrations that still reference them.
DBA Responsibility – Awareness & Team Education
As an Oracle Apps DBA, it is your responsibility to:
Fully understand the cleanup behavior
Educate team members on cleanup risks
Avoid blindly running cleanup_mode=full
Validate what will be removed before execution
Proactive Safety Step in EBS 12.2.11 – Cleanup Preview Mode
From EBS 12.2.11 onwards, Oracle provides a proactive way to preview cleanup actions without executing them.
Preview Cleanup Actions (No Execution)
adop phase=cleanup -n
This command:
Displays a list of actions that would be executed
Shows whether unused columns will be dropped
Does not perform any cleanup
✅ This is highly recommended before running a full cleanup in PROD.
How to Prevent Dropping Unused Columns During Cleanup
If your business or technical team wants to retain unused columns, Oracle allows DBAs to control cleanup behavior using a parameter file.
ADOP Cleanup Parameter File Location
The cleanup parameter file is typically located at:
$APPL_TOP/admin/<context_name>/adop_<datetime>/adopcleanup_<datetime>.envtxt
Default Cleanup Parameters (Example)
CLEANUP_UNCOMPRESSED_TABLES=Y
CLEANUP_UNUSED_INDEXES=Y
CLEANUP_UNUSED_TABLES=Y
CLEANUP_UNUSED_SEQUENCES=Y
CLEANUP_UNUSED_SYNONYMS=Y
CLEANUP_UNUSED_MATERIALIZED_VIEWS=Y
CLEANUP_UNUSED_REPLICATION_OBJECTS=Y
By default, Oracle may also clean unused columns during a full cleanup.
Excluding Unused Columns from Cleanup
To prevent unused columns from being dropped, add the following parameter:
CLEANUP_UNUSED_COLUMNS=N
Updated Parameter File Example
CLEANUP_UNCOMPRESSED_TABLES=Y
CLEANUP_UNUSED_INDEXES=Y
CLEANUP_UNUSED_TABLES=Y
CLEANUP_UNUSED_SEQUENCES=Y
CLEANUP_UNUSED_SYNONYMS=Y
CLEANUP_UNUSED_MATERIALIZED_VIEWS=Y
CLEANUP_UNUSED_REPLICATION_OBJECTS=Y
CLEANUP_UNUSED_COLUMNS=N
💡 This ensures that unused columns are skipped during cleanup.
Running ADOP Cleanup with Custom Parameters
Once the parameter file is updated, run cleanup as follows:
adop phase=cleanup cleanup_mode=<mode> hotpatch_id=<hotpatch_id> paramfile=<path_to_param_file>
Example:
adop phase=cleanup cleanup_mode=full paramfile=/u01/appl/admin/PROD/adopcleanup_20251216.envtxt
Fine-Grained Control – What You Can Choose to Clean
Using the parameter file, DBAs can selectively decide whether to clean:
✅ INDEXES
✅ TABLES
✅ SEQUENCES
✅ SYNONYMS
✅ MATERIALIZED VIEWS
✅ REPLICATION OBJECTS
❌ UNUSED COLUMNS (optional)
This flexibility allows you to balance system hygiene with business safety.
No comments:
Post a Comment