Recommended Approach to Programmatically Backing Up/Restoring Oracle DB Supposing I have an ever-growing Oracle DB on one server, and I want to duplicate this schema and the data on another server - what would be the best approach to achieving this as part of a bespoke .net app?

What I've Tried/Researched:


RMAN - seems to be the most appropriate technology available for writing batch files to do a backup but I don't feel as though I'd have as much control over it as if it were developed from scratch in C#.
PL/SQL - I could use stored procs to export data to csv and combine it with C#?
DataReaders and official Oracle API's - Seems to me like the most favourable approach as it is what I'm most familiar with - but am I reinventing the wheel given the fact that the above two technologies have the power to create these backups?
'OOTB' oracle executables - https://stackoverflow.com/questions/12524284/taking-oracle-database-dump-via-c-sharp-net http://rockingtechnology.blogspot.co.uk/2011/06/oracle-backup-and-restore-code-in-cnet.html
If you want to clone prod. db into dev. env. regulary I would recommend you to use RMAN for whole database. Or exp/imp (expdp/impdp) for single schema.
RMAN is not easy to use for developers who have no Oracle experience, but finally you will find this approach fastest and safest.

If you're about to clone your prod db into some reporting server maybe you should look at "Active Data Guard".

In Oracle you will find the "right" technology for every purpose. The final decision will depend on your real need(goal).