Oracle教程:用户管理的完全恢复(二)

2014-11-24 18:23:53 · 作者: · 浏览: 1
,执行上面命令后,数据库会自动指定表空间对应的数据文件路径到其他地方,这个在执行下面的命令时会有提示。
recover database using backup controlfile;
这时我们要把控制文件中自动指定的路径改成我们数据文件的真实路径
alter database rename file 'xxxx' to 'd:\oracle\oradata\orcl\xxwz_data1.dbf' //xxx是数据库指定的路径,后面的真实数据文件路径在第一次recover报错的时候有提示,也可以从alter_{sid}.log日志文件查到。
改完后执行恢复命令
recover database using backup controlfile until cancel;
然后继续一个一个试试redo文件。成功后输入
alter database open resetlogs;


resetlogs:
resetlogs选项被需要在进行不完全恢复或者用备份控制文件进行恢复时。
resetlogs所做的事情:
1.归档当前的redo日志文件(如果他们可访问),然后清除redo日志文件的内容,重设log sequence number为1.(例如当前的日志文件sequence为1000和1001,重设为1和2)
2.如果redo日志文件不存在则重建他们。
3.重新初始化控制文件中online redo logs和redo thread的metadata。
4.更新所有当前的数据文件和联机重做日志文件和所有后来已归档的重做日志文件with a new resetlogs SCN and time stamp。


只读表空间的恢复:
只读表空间的控制文件trace脚本重构时先不装载该表空间,而是在恢复时通过rename file和alter online要实现。具体可以通过对比只读和普通表空间的控制文件trace脚本。


incarnation:对应物
归档日志命名格式%s为log sequence number,%t为thread number,%r为incarnation。
通过reset incarnation实现跨resetlogs的恢复