• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

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

发布: 2007-7-02 11:08 | 作者: admin | 来源: | 查看: 10次 | 进入软件测试论坛讨论

领测软件测试网
---------------------------------------------



实验平台: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.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 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 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@#;




 


表空间已更改。




 

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网