ITPub博客

首页 > 数据库 > Oracle > System表空间在非归档模式下丢失怎么办

System表空间在非归档模式下丢失怎么办

原创 Oracle 作者:gholay 时间:2014-03-14 16:57:41 0 删除 编辑
System表空间在非归档模式下丢失怎么办?
思路 :
第一步:
全备数据库

第二步:
试着用备份还原,然后忽略一致性打开数据库。

如果不能,则把所有的还原,启动即可。


操作:

shutdown immediate

删除system表空间。
rm -rf ....

startup
此时启动数据库会报错,说system表空间丢失


将损坏之前全备的system表空间复制到system表空间的位置
SQL>ho cp /u02/orcl/system01.dbf /u01/oracle/oradata/orcl/

打开数据库:
SQL>alter database open ;
此时会报错,说介质需要恢复。

解决办法:
SQL>recover database ;
注:如果丢失的切换日志次数比较多是恢复不了的。因为日志文件不足以来还原。

然后打开数据库:
SQL>alter database open ;


如果是丢失的切换日志次数比较多。
SQL>recover database ;
这个命令是恢复不了的。
使用recover database ;
此时会提示输入 ,输入 cancel 来恢复到此为止。

这个时候可以加隐藏参数,不去检验一致性了。
alter system set "_allow_resetlogs_corruption"=true scope=spfile ;

SQL>startup force 
这时候也会提示数据文件system不存在。

使用如下命令来恢复 
SQL>recover database until cancel ;

SQL>alter database open resetlogs ;
--此时会说会话中断 , 重新连接一下就可以了。

最后取消隐藏参数:
alter system set "_allow_resetlogs_corruption"=false  scope=spfile ;
alter system reset "_allow_resetlogs_corruption" scope=spfile sid='*' ;
这种方法会丢失部分数据。





















来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29196873/viewspace-1120695/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2013-12-28

  • 博文量
    82
  • 访问量
    651204