Oracle恢复实验一:使用添加数据文件之前的控制文件
发表于:2007-07-02来源:作者:点击数:
标签:
--------------------------------------------- 实验平台: windows + Oracle 10.1.0.2.0 Author:NinGoo 2005-03-26 -------------------------------------------- 在备份控制文件之后,在数据库中又添加了数据文件,然后当前控制文件损坏,需要使用之前
---------------------------------------------
实验平台:
windows + Oracle 10.1.0.2.0
Author:NinGoo 2005-03-26
--------------------------------------------
在备份控制文件之后,在数据库中又添加了数据文件,然后当前控制文件损坏,需要使用之前的备份控制文件来做恢复。
1.备份控制文件
SQL> alter database backup controlfile to @#e:\control.ctl@#;
数据库已更改。
2.使用create tablespace或者alter tablespace add datafile给数据库添加数据文件
SQL> create tablespace test
2 datafile @#E:\ORACLE\ORADATA\NING\TEST01.DBF@# size 10M,
3 @#E:\ORACLE\ORADATA\NING\TEST02.DBF@# size 10M;
表空间已创建。
3.shu
tdown后将现在的控制文件删除
4.startup数据库
报错:ORA-00205: error in identifying controlfile, check alert log for more info
5.将备份的控制文件restore
6.使用备份控制文件做恢复
SQL> recover database using backup controlfile;
ORA-00283: 恢复会话因错误而取消
ORA-01244: 未命名的数据文件由介质恢复添加至控制文件
ORA-01110: 数据文件 5: @#E:\ORACLE\ORADATA\NING\TEST01.DBF@#
ORA-01110: 数据文件 6: @#E:\ORACLE\ORADATA\NING\TEST02.DBF@#
此时,查看v$datafile可以看到有两个unname文件
SQL> select name from v$datafile;
NAME
-------------------------------------------
E:\ORACLE\ORADATA\NING YSTEM01.DBF
E:\ORACLE\ORADATA\NING\UNDOTBS01.DBF
E:\ORACLE\ORADATA\NING YSAUX01.DBF
E:\ORACLE\ORADATA\NING\USERS01.DBF
C:\WINDOWS YSTEM32\UNNAMED00005
C:\WINDOWS YSTEM32\UNNAMED00006
查看alert_sid.log,可以看到如下内容
File #5 added to control file as @#UNNAMED00005@#. Originally created as:
@#E:\ORACLE\ORADATA\NING\TEST01.DBF@#
File #6 added to control file as @#UNNAMED00006@#. Originally created as:
@#E:\ORACLE\ORADATA\NING\TEST02.DBF@#
可知UNNAMED00005对应@#E:\ORACLE\ORADATA\NING\TEST01.DBF@#
UNNAMED00006对应@#E:\ORACLE\ORADATA\NING\TEST02.DBF@#
7.重命名数据文件
SQL> alter database rename file @#C:\WINDOWS YSTEM32\UNNAMED00005@# to
2 @#E:\ORACLE\ORADATA\NING\TEST01.DBF@#;
数据库已更改。
SQL> alter database rename file @#C:\WINDOWS YSTEM32\UNNAMED00006@# to
2 @#E:\ORACLE\ORADATA\NING\TEST02.DBF@#;
数据库已更改。
8.再使用备份控制文件恢复
SQL> recover database using backup controlfile;
完成介质恢复。
9.使用resetlogs选项打开数据库
SQL> alter database open;
alter database open
*
第 1 行出现错误:
ORA-01589: 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项
SQL> alter database open noresetlogs;
alter database open noresetlogs
*
第 1 行出现错误:
ORA-01588: 要打开数据库则必须使用 RESETLOGS 选项
SQL> alter database open resetlogs;
数据库已更改。
10.添加temp文件
此时查看alert_sid.log,可以看到以下警告
***************************************************************
WARNING: The following temporary tablespaces contain no files.
This condition can o
clearcase/" target="_blank" >ccur when a backup controlfile has
been restored. It may be necessary to add files to these
tablespaces. That can be done using the SQL statement:
ALTER TABLESPACE <tablespace_name> ADD TEMPFILE
Alternatively, if these temporary tablespaces are no longer
needed, then they can be dropped.
Empty temporary tablespace: TEMP
***************************************************************
使用备份控制文件恢复后,Temp表空间被置空
SQL> select name from v$tempfile;
未选定行
SQL>alter tablespace temp add tempfile
2 @#E:\ORACLE\ORADATA\NING\TEMP01.DBF@#;
表空间已更改。
原文转自:http://www.ltesting.net