rman实现数据异机恢复
目的:实现恢复到另外一台PC(oracle版本一样)。
准备工作:
1、记录源数据库的dbid。其中DBID获取方式有三:
2、将备份(控制文件和备份文件)拷贝到目标服务器。
- 备份日志中有;
- 备份的控制文件名如“C-1390544452-20141107-00”中的“1390544452”字段即为相应的数据库DBID;
- 每次rman登陆后,会有DBID显示。
牛刀小试:
1、目标服务器创建一个新的实例orcl。
cmd>oradim -new -sid orcl
切记:sid要与源库相同;可能普通用户无法创建新实例,可以以管理员运行命令行窗口。
2、连接到sid,设置dbid
1)、cmd>set oracle_sid=orcl
2)、cmd>rman target /3)、RMAN> set dbid 1390544452;
3、恢复初始化参数文件。(注意,恢复完打开该参数文件,核实一下文件中的路径是否正确存)4)、RMAN> startup nomount;
4、恢复控制文件并进入加载状态5)、RMAN> restore spfile to pfile "C:\app\shao\product\11.2.0\dbhome_1\database\INITORCL.ORA" from "C:\backup\C-1390544452-20141106-09";
6)、RMAN> startup force nomount pfile="C:\app\shao\product\11.2.0\dbhome_1\database\INITORCL.ORA";
哈哈,以上几步现场重现一下:
5、查看源库包含哪些文件,为修复数据库指定路径做准备。7)、RMAN> restore controlfile from "C:\backup\C-1390544452-20141106-09";
8)、RMAN> alter database mount;
现场再现:
6、修复数据库,根据第9步的重新设定路径。若是路径为源数据库路径相同,直接restore database即可。9)、RMAN> list backup;
7、恢复数据库,并通过open resetlogs方式打开数据库。其中恢复数据库报错,不管。错误是提醒我们正在把数据恢复到一个未知的scn号。即一个新的存储地方,属正常,忽略不管。10)、RMAN> run{
set newname for datafile 1 to "C:\app\shao\oradata\orcl\SYSTEM01.DBF";
set newname for datafile 2 to "C:\app\shao\oradata\orcl\SYSAUX01.DBF";
set newname for datafile 3 to "C:\app\shao\oradata\orcl\UNDOTBS01.DBF";
set newname for datafile 4 to "C:\app\shao\oradata\orcl\USERS01.DBF";
set newname for datafile 5 to "C:\app\shao\oradata\orcl\EXAMPLE01.DBF";
restore database;
switch datafile all;
}
8、退出RMAN,连接数据库正常,OK。11)、RMAN> recover database;
12)、RMAN> alter database open resetlogs;
13)、RMAN> exit;
14)、cmd>sqlplus /nolog
15)、SQL> conn system/123456