I need help in setting up test, development & testing oracle database environments for my clients? Currently they only have a production database and PL/SQL code on it. I want to create separate test/dev/pre-prod environments. I need help to set these environments up. what are the environment set-up strategies used by release management? I want to sync the code and data from production into these new environments automatically. Are there any automation tools I can use to make this easier? Note - the client doesn't currently have any SVN system.
There are a number of options here. But before going into them a but of background, it is bad to put production data into a test or dev environment. Typically based on the nature of test and dev environments there are looser restrictions on who can access them. Therefore the security of your production environment becomes meaningless when you have the same data in a dev / test environment without the same level of security.
To best achieve this you can follow the same setup / migration steps that you perform on the production system. Essentially this will give you a system with the same schema as your production database. From there you can add your own test data.
Some companies e.g. Oracle offer Data Masking technologies. This allows you to replicate your production system while masking the true values in the production database. The best Data Masking solutions will preserve the integrity of the data, for example a phone number will still look like a phone number.
This is the last in my list based on the security issues I outlined earlier. But this is essentially following your Disaster Recovery plan to restore the latest copy of your database (including data) into a development / test environment.