basically you have to reproduce in the new server the same layout you have in the original one.
I mean paths for datafiles, redo log files, dump files, parameter and password files and so on.
This is not mandatory, but it greatly simplifies the operations.
So, the first thing you need to do is to retrieve all the information needed to rebuild the environments in the
new server. Let suppose a simply configuration (no ASM, only few paths for datafiles , redo log and control etc..) running on Unix .
select name from v$datafile;
select name from v$controlfile;
– redo logs;
select member from v$logfile;
– dump directories;
show parameter _dump;
show parameter spfile
Once you got these infos, you can reproduce them in the new server. For example, if the original location of datafiles is /data/TEST/AllDatafilesHere, then you’ll create the same path /data/TEST/, assigning the same owner/group and the same permissions to it (chmod and chwon Unix command).
The same thing will be do for control and redo log paths.
Dump, parameter, password file paths, are usually sub-dir into the ORACLE_BASE path, so you can install binaries in the new server using the same Oracle related environment variables (check .profile or .bash_profile).
If you cannot reproduce the same paths for control files or dump or some db_recovery destination, you can create a pfile and edit it to correct the needed information. For example some time ago, I created a copy of an oracle database in the same server where was running the original one. So I couldn’t use the same paths. In this case at first, I recreated a parallel environment using different paths.
Then I created a pfile using the command:
SQL> create pfile=’NEWPATH/inititTEST.ora’ from spfile;
Now, I simply edited the init.ora file modifying the lines related to control files, db_recovery_file_dest, dump_dest and everything needed. In this way you can also correct initialization parameters related to SGA sizing to the new values you need. Of course in this case I had to rename all datafiles.
Well at this point we have a new server with all needed paths where to copy datafiles. redo log, control, parameter…..everything from the backup copy.
Now startup the instance using the modified init.ora file. I suggest to use a start up nomount, in order to check the alert log and verify that no errors are written down. If the instance starts up, then try to move to mount stage. In this stage, oracle check that all control files are identical copies.
If all is working fine you have to recover the db. Simply use the command
SQL> recover automatic database
Always check the alert for any error message.
This phase can be short or long, depending on the transaction activity of your original database.
Anyway at the end of recovery you can simply open the database:
SQL> alter database open;
well. All done.
— Attention: if you are in production environment, please take care that my suggestions are very very general rules, so they could not be corrected for your specific installation/configuration. Use your knowledge and TEST TEST TEST everything before to work in production—–
Hope this help.