机器A: select instance_name from v$instance; select name from v$database; select name from v$datafile; 查询日志模式: archive log list; shutdown immediate; startup mount; 把日志改为归档模式: alter database archivelog; alter database open; alter system archive log current; select name from v$archived_log; 打开控制文件跟踪: alter database backup controlfile to trace; 查看跟踪文件位置: 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; 传送以下文件到机器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
机器B: 创建要恢复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 把收到的文件夹orcl放到e:\oracle\product\10.2.0\admin 拷贝 e:\oracle\product\10.2.0\admin\orcl\pfile中的参数文件到自己真实数据库db_1\database文件夹中,并改名为initorcl.ora 打开initorcl.ora 把里面的路径改为真实oracle数据库的位置 d:\替换为e:\ cmd1: set oracle_sid=orcl oracle orcl 等到提示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; 找到跟踪文件: 重做控制文件:把里面的路径改为正确路径: d:\改为 e:\ shutdown immediate; startup nomount; 执行生成控制文件的语句;执行钱必须先删除.ctl的文件 alter database open resetlogs; select name from v$database; select member from v$logfile;