My FAQ,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 数据库开发 > 数据库综合
Oracle恢复实验一:使用添加数据文件之前的控制文件
作者:未知 时间:2005-03-26 12:12 出处:Blog 责编:MyFAQ
              摘要:暂无

---------------------------------------------

实验平台:windows Oracle 10.1.0.2.0

AuthorNinGoo  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.shutdown后将现在的控制文件删除

 

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\SYSTEM01.DBF

E:\ORACLE\ORADATA\NING\UNDOTBS01.DBF

E:\ORACLE\ORADATA\NING\SYSAUX01.DBF

E:\ORACLE\ORADATA\NING\USERS01.DBF

C:\WINDOWS\SYSTEM32\UNNAMED00005

C:\WINDOWS\SYSTEM32\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\SYSTEM32\UNNAMED00005' to

  2  'E:\ORACLE\ORADATA\NING\TEST01.DBF';

 

数据库已更改。

 

SQL> alter database rename file 'C:\WINDOWS\SYSTEM32\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 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:\ORACLE\ORADATA\NING\TEMP01.DBF';

 

表空间已更改。

 

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 myfaq.com.cn All rights reserved. www.myfaq.com.cn 版权所有