Oracle恢复实验一:使用添加数据文件之前的控制文件

上一篇 / 下一篇  2006-08-12 00:00:00 / 个人分类:Oracle

-------------------------------------------------------------
实验平台:windows + Oracle 10.1.0.2.0
-------------------------------------------------------------

在备份控制文件之后,在数据库中又添加了数据文件,然后当前控制文件损坏,需要使用之前的备份控制文件来做恢复。


1.备份控制文件
SQL> alter database backup controlfile to 'e:control.ctl';

数据库已更改。

2.使用create tablespace或者alter tablespace add datafile给数据库添加数据文件
SQL> create tablespace test
2 datafile 'E:ORACLEORADATANINGTEST01.DBF' size 10M,
3 'E:ORACLEORADATANINGTEST02.DBF' size 10M;

表空间已创建。

3.shutdown后将现在的控制文件删除
c:>del E:ORACLEORADATANINGcontrol01.ctl
c:>del E:ORACLEORADATANINGcontrol02.ctl
c:>del E:ORACLEORADATANINGcontrol03.ctl

4.startup数据库
报错:ORA-00205: error in identifying controlfile, check alert log for more info

5.将备份的控制文件restore
c:>copy e:control.ctl e:ORACLEORADATANINGcontrol01.ctl
c:>copy e:control.ctl e:ORACLEORADATANINGcontrol02.ctl
c:>copy e:control.ctl e:ORACLEORADATANINGcontrol03.ctl

6.使用备份控制文件做恢复
SQL> recover database using backup controlfile;

ORA-00283: 恢复会话因错误而取消
ORA-01244: 未命名的数据文件由介质恢复添加至控制文件
ORA-01110: 数据文件 5: 'E:ORACLEORADATANINGTEST01.DBF'
ORA-01110: 数据文件 6: 'E:ORACLEORADATANINGTEST02.DBF'

此时,查看v$datafile可以看到有两个unname文件
SQL> select name from v$datafile;
NAME
------------------------------------------
E:ORACLEORADATANINGSYSTEM01.DBF
E:ORACLEORADATANINGUNDOTBS01.DBF
E:ORACLEORADATANINGSYSAUX01.DBF
E:ORACLEORADATANINGUSERS01.DBF
C:WINDOWSSYSTEM32UNNAMED00005
C:WINDOWSSYSTEM32UNNAMED00006

查看alert_sid.log,可以看到如下内容
File #5 added to control file as 'UNNAMED00005'. Originally created as:
'E:ORACLEORADATANINGTEST01.DBF'
File #6 added to control file as 'UNNAMED00006'. Originally created as:
'E:ORACLEORADATANINGTEST02.DBF'

可知UNNAMED00005对应'E:ORACLEORADATANINGTEST01.DBF'
UNNAMED00006对应'E:ORACLEORADATANINGTEST02.DBF'

7.重命名数据文件
SQL> alter database rename file 'C:WINDOWSSYSTEM32UNNAMED00005' to
2 'E:ORACLEORADATANINGTEST01.DBF';

数据库已更改。

SQL> alter database rename file 'C:WINDOWSSYSTEM32UNNAMED00006' to
2 'E:ORACLEORADATANINGTEST02.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 occur 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:ORACLEORADATANINGTEMP01.DBF';

表空间已更改。


TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2008-10-08  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 5822
  • 日志数: 377
  • 建立时间: 2007-11-29
  • 更新时间: 2008-02-24

RSS订阅

Open Toolbar