Oracle―用户管理的完全恢复(三)(三)
QL> select file#,name from v$datafile;
FILE# NAME
---------- -----------------------------------
1 /u01/oradata/wilson/system01.dbf
2 /u01/oradata/wilson/sysaux01.dbf
3 /u01/oradata/wilson/undotbs01.dbf
4 /u01/oradata/wilson/users01.dbf
5 /u01/oradata/wilson/example01.dbf
6 /u01/oradata/wilson/app2_01.dbf
7 /u01/oracle/dbs/UNNAMED00007
8 /u01/oradata/wilson/smallundo1.dbf
12 /u01/oradata/wilson/app1_01.dbf
9 rows selected.
可以看到7号文件名称发生了变化,修改这个文件的名称并加入控制文件中,
SQL> alter database rename file '/u01/oracle/dbs/UNNAMED00007' to '/u01/oradata/wilson/app3_01.dbf';
Database altered.
怎么辨别它正好对应着这个文件,可以去查看警报日志。
(3)再进行恢复,命令如下,
SQL> recover database using backup controlfile;
ORA-00279: change 3106444 generated at 09/01/2013 01:41:19 needed for thread 1
ORA-00289: suggestion : /u01/oradata/wilson/arch/sun_1_0000000014_824777760.arc
ORA-00280: change 3106444 for thread 1 is in sequence #14
Specify log: {=suggested | filename | AUTO | CANCEL}
/u01/oradata/wilson/redo02.log
Log applied.
Media recovery complete.
现在打开数据库,检查一下数据,
SQL> alter database open resetlogs;
Database altered.
SQL> select * from Dave.t4;
ID NAME
---------- -----------------------------------
0 jack
可以看到数据还在,恢复成功。