I would like to create a test database from our production database.
What is the purpose for this 'test' database?
I wish to create a clone of PRODCDB/PRODPDB as TESTCDB/TESTPDB
What is stopping you from doing that? Have you run into some issue or problem?
Can you please advise on my options.
Sounds like a BAD IDEA to me for at least FIVE reasons
1. Production data should generally NOT be duplicated in other, less secure environments.
First, there is no need at all for production data in a development environment.
2. Your org should already have a test environment since that is what would have been used BEFORE things were moved to production.
So far I don't see any need at all to even do this.
3. As to your 'options' - all of your questions suggest that you are not familiar with standard backup and recovery procedures or processes or RMAN - the recovery manager.
They also suggest you haven't read/reviewed the Oracle docs related to backup, recovery and cloning because those docs not only 'advise' on the options but they tell and show you how to use each of those options.
4. Your org should already have a backup of the production system - that backup can be used to EASILY restore or clone the database to another environment.
5. Your org should be keeping ALL of its DDL, master scripts and system documentation in a version control system. That should make it EASY to just check out the relevant scripts and recreate a clone of the DB in another environment.
Please explain why you can't use the standard processes described in the Oracle docs to do what you ask.
I think you should create another CDB via scripts at first.
Example is here 37.4.2 Creating a CDB with the CREATE DATABASE Statement:
Next clone PDB using links (clone remote PDB)
In 18c there is a new feature in this regard:
As others mentioned if you want to simulate an upgrade then take backup of this PDB to a different container (CDB) not within the CDB.