When you migrate or upgrade with refreshable clone PDBs, you sometimes want to decide when the final refresh happens. Perhaps you must finish certain activities in the source database before moving on.
I’ve discussed this in a previous post, but now there’s a better way.
The Final Refresh Dilemma
In AutoUpgrade, the final refresh happens at the time specified by the config file parameter start_time. This is the cut-over time where no further changes to the source database, gets replicated in the target database.

You specify start_time in the config file, and then you start the job. Typically, you start it a long time before start_time to allow the creation of the new PDB.
So, you must specify start_time in the config file and that’s when you believe the final refresh should happen. But things might change in your maintenance window. Perhaps it takes a little longer to shut down your application or there’s a very important batch job that must finish. Or perhaps you can start even earlier.
In that case, a fixed start time is not very flexible.
The Solution
You can use the proceed command in the AutoUpgrade console to adjust the start time, i.e., the final refresh.
-
Get the latest version of AutoUpgrade:
wget https://download.oracle.com/otn-pub/otn_software/autoupgrade.jar -
Start the job in deploy mode as you normally would:
java -jar autoupgrade.jar ... -mode deploy- AutoUpgrade now starts the CLONEPDB stage and begins to copy the database.
-
Wait until the job reaches the REFRESHPDB stage:
+----+-------+----------+---------+-------+----------+-------+--------------------+ |Job#|DB_NAME| STAGE|OPERATION| STATUS|START_TIME|UPDATED| MESSAGE| +----+-------+----------+---------+-------+----------+-------+--------------------+ | 100| CDB19|REFRESHPDB|EXECUTING|RUNNING| 14:10:29| 4s ago|Starts in 54 minutes| +----+-------+----------+---------+-------+----------+-------+--------------------+ Total jobs 1- In this stage, AutoUpgrade is waiting for
start_timeto continue the migration. It refreshes the PDB with redo from the source at the specified refresh interval. - I must start well before the maintenance window, so AutoUpgrade has enough time to copy the database.
- In this stage, AutoUpgrade is waiting for
-
You can now change the start time. If you want to perform the final refresh and continue immediately, use the
proceedcommand:proceed -job 100Or, you can change the start time:
proceed -job 100 -newStartTime 29/03/2025 02:00:00Or, you can change the start time to a relative value, example 1 hour 30 min from now:
proceed -job 100 -newStartTime +1h30m -
After the final refresh, AutoUpgrade disconnects the refreshable clone PDB, turns it into a regular PDB, and moves on with the job.
Wrapping Up
AutoUpgrade offers complete control over the process. You define a start time upfront, but as things change, you can adjust it in flight.
Refreshable clone PDBs are a fantastic method for non-CDB to PDB migrations and for upgrades of individual PDBs.
There are a few quirks to be aware of, and if you are using Data Guard bear in mind that you can only plug in with deferred recovery. Other than that – it’s just to say…
Happy migrating, happy upgrading!
Further Reading
- A Few Details about Using Refreshable Clone PDB for Non-CDB to PDB Migration
- Upgrade Pluggable Database to Oracle Database 23ai
- How to Upgrade to Oracle Database 19c and Migrate to a PDB Using Refreshable Clone PDBs
- Move to Oracle Database 23ai – Everything you need to know about Oracle Multitenant – Part 1
- Hey, Let Me Kill Your Network!