You Asked
Hi,
I'm looking for a solution/best approach to set up my lower environments from Production with pared down version, say 90-100% data for UAT, 30% for SIT and 10% for Dev environments.
Can you suggest an approach to achieve this at schema level?
Thanks,
Mangesh
and Connor said...
Firstly...I'm going to suggest a different approach :-)
A small-sized environment often struggles to provide any real benefit
- you can't really do definitive performance tests on them
- for (proper) unit tests, developers are responsible data setup and tear down, so the existing data (beside perhaps reference data) should be minimal consequence.
Or let me put it this way ... if the code works on a 10% dev environment...what gives you the confidence to promote it forward ?
The database isnt licensed on storage...its licensed on server horsepower, so this comes down to storage costs...which nowadays are incredibly small. You dont have to have the same super-high-spec storage on the non-production environment, but full sized environments are an awesome tool for testing.
Or you can consider using snapshot technologies at storage and database level, so you can have "full size" environments without a massive investment in more storage.
Ok...if you still want to do what you want to do :-)
For 100% db copy => go with RMAN duplicate. Simple and easy.
For 100% schema copy => you *might* be able to use transportable tablespaces, otherwise its DataPump
For reduced sized copies => go with DataPump.
Is this answer out of date? If it is, please let us know via a Comment