Machine A: select instance_name from v$instance; select name from v$database; select name from v$datafile; Query log mode: archive log list; shutdown immediate; startup mount; Change logs to archive mode: alter database archivelog; alter database open; alter system archive log current; select name from v$archived_log; Open control file trace: alter database backup controlfile to trace; View trace file location: show parameter user_dump_dest cmd: set oracle_sid=orcl rman target sys/abc host “md c:\back”; run { backup database; format ‘c:\back\%d_%s_%T_full.bak’; } select file#,name from v$datafile; Transfer the following files to machine B: c:\back d:\oracle\product\10.2.0\admin\orcl CREATE CONTROLFILE SET DATABASE “ORCL” RESETLOGS ARCHIVELOG MAXLOGFILES 16 MAXLOGMEMBERS 3 MAXDATAFILES 100 MAXINSTANCES 8 MAXLOGHISTORY 292 LOGFILE GROUP 1 ‘E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO01.LOG’ SIZE 50M, GROUP 2 ‘E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO02.LOG’ SIZE 50M, GROUP 3 ‘E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO03.LOG’ SIZE 50M — STANDBY LOGFILE DATAFILE ‘E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF’, ‘E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF’, ‘E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF’, ‘E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF’, ‘E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\XM’ CHARACTER SET ZHS16GBK
Machine B: Create the directory to restore oracle e:\oracle\product\10.2.0\oradata\orcl e:\oracle\product\10.2.0\admin e:\oracle\product\10.2.0\falsh_recovery_area Place the received folder orcl to e:\oracle\product\10.2.0\admin copy e:\oracle\ 10.2.0\admin\orcl\ database into your real database db_1\database folder and rename it initorcl.ora Open the initorcl ora Change the path inside to the location of the real oracle database d:\ Replace e:\ cmd1: set oracle_sid=orcl oracle orcl Wait until prompted ctrl+c cmd2: set oracle_sid=orcl sqlplus / as sysdba startup nomount; cmd3: set oracle_sid=orcl rman target sys/abc restore controlfile from ‘C:\back\ORCL_2_20090414_FULL.BAK’; cmd2: alter database mount; cmd3: run{ set newname for datafile 1 to ‘E:\oracle\product\10.2.0\oradata\orcl\SYSTEM01.DBF’; set newname for datafile 2 to ‘E:\oracle\product\10.2.0\oradata\orcl\UNDOTBS01.DBF’; set newname for datafile 3 to ‘E:\oracle\product\10.2.0\oradata\orcl\SYSAUX01.DBF’; set newname for datafile 4 to ‘E:\oracle\product\10.2.0\oradata\orcl\USERS01.DBF’; set newname for datafile 5 to ‘E:\oracle\product\10.2.0\oradata\orcl\XM’; restore database; switch datafile all; } cmd2: select name from v$database; shutdown immediate; startup mount; alter database backup controlfile to trace; Find the trace file: Redo control file: Change path inside to correct path: d: \ e instead: \ shutdown immediate; startup nomount; Execute the statement that generates the control file; To execute the money, the.ctl file must be deleted first alter database open resetlogs; select name from v$database; select member from v$logfile;