动网论坛,站长建站首选,国内使用量最多的论坛软件 动网论坛官方技术讨论区 站长工具 申请属于您自己的免费论坛
首页 | 新闻资讯 | 网站运营 | 网络编程 | 数据库 | 服务器 | 网页设计 | 图像媒体 | 网络应用 | 搜索优化 | 资源下载 | 动网主机 | DVBOX
    本站内  互联网 ASP论坛  ASP.Net论坛  PHP论坛
   数据库 → 阅读文章
  

 ORACLE表空间恢复方案

作者来源:double鱼  
阅读 1792 人次 , 2006-3-18 11:51:00 

一、 用户表空间

错误: 在启动数据库时出现ORA-01157,ORA-01110或操作系统级错误例如ORA-07360,

在关闭数据库(使用shutdown normal或shutdown immediate) 时将导致错误ORA -01116,ORA-01110以及操作系统级错误ORA-07368

解决,以下有两种解决方案:

1.用户的表空间可以被轻易地重建

即最近导出的对象是可用的或表空间中的对象可以被轻易地重建等.在这种情况下,最简单的方法是offline并删除该数据文件,删除表空间并重建表空间以及所有的对象.

svrmgrl> startup mount

svrmgrl> alter database datafile filename offline drop;

svrmgrl> alter database open;

svrmgrl> drop tablespace tablespace_name including contents;

重建表空间及所有对象.

2.用户的表空间不能够被轻易地重建

在大多数情况下,重建表空间是不可能及太辛苦的工作.方法是倒备份及做介质恢复.如果您的系统运行在NOARCHIVELOG模式下,则只有丢失的数据。在online redo log中方可被恢复,步骤如下:

1)Restore the lost datafile from a backup

2)svrmgrl> startup mount

3)svrmgrl> select v1.group#,member,sequence#,first_change#

> from v$log v1,v$logfile v2

> where v1.group#=v2.group#;

4)如果数据库运行在NOARCHIVELOG模式下则:

svrmgrl> select file#,change# from v$recover_file;

如果 CHANGE# 大于最小的FIRST_CHANGE#则数据文件可以被恢复。

如果 CHANGE# 小于最小的FIRST_CHANGE#则数据文件不可恢复。 恢复最近一

次的全备份或采用方案一.

5)svrmgrl> recover datafile filename;

6)确认恢复成功

7)svrmgrl> alter database open resetlogs;

3.只读表空间无需做介质恢复,只要将备份恢复即可.唯一的例外是:

表空间在最后一次备份后被改为read-write 模式

表空间在最后一次备份后被改为read-only 模式

在这种情况下,均需进行介质恢复

二、 临时表空间

临时表空间并不包含真正的数据,恢复的方法是删除临时表空间并重建即可.

三、 系统表空间

如果备份不可用,则只能采用重建数据库的方法

四、 回滚表空间

有两种情况:

1、数据库已经完全关闭(使用shutdown immediate或shutdown命令)

1) 确认数据库完全关闭

2) 修改init.ora文件,注释"rollback-segment"

3) svrmgrl> startup restrict mount

4) svrmgrl> alter database datafile filename offline drop;

5) svrmgrl> alter database open;

基于出现的结果:

"statement processed" 转(7)

"ORA-00604,ORA-00376,ORA-01110"转(6)

6) svrmgrl> shutdown immediate

修改init.ora文件,增加如下一行:

_corrupted_rollback_segments = (,...)

svrmgrl> startup restrict

7) svrmgrl> drop tablespace tablespace_name including contents;

重建表空间及回滚段

9) svrmgrl> alter system disable restricted session;

10) 修改init.ora文件

2、数据库未完全关闭(数据库崩溃或使用shutdown abort命令关闭数据库)

1) 恢复备份

2) svrmgrl> startup mount

3) svrmgrl> select file#,name,status from v$datafile;

svrmgrl> alter database datafile filename online;

4) svrmgrl> select v1.group#,member,sequence#,first_change#

> from v$log v1,v$logfile v2

> where v1.group#=v2.group#;

5) svrmgrl> select file#,change# from v$recover_file;

见一方案2-4

6) svrmgrl> recover datafile filename;

7) svrmgrl> alter database open;

3、数据库处于打开状态

1) 删除回滚段和表空间

2) 重建表空间和回滚段

五 控制文件恢复

1.所有的控制文件均被破坏,将备份的控制文件拷贝至原目录下。对于RAW DEVICE,则:

dd if='con.bak' of='/dev/rdrd/drd1' seek=128

2.并非所有的控制文件均被破坏:用其他的控制文件启动数据库。



 本文Tagsoracle  恢复  
 收藏本文  打印本文  论坛讨论  关闭窗口
· 上一篇:Oracle 恢复管理器 (RMAN) 的功能
· 下一篇:ORACLE 数据库备份技术(1)
· MySQL的DBI/DBD简明安装手册
· Win2K下安装IIS 配置asp+cgi+php+mysql
· MySQL V5.0.13 RC下载列表
· SQL Server 2005 中的 Multiple Active Result Set (MARS)(1)
· 如何解决SQL Server 2000中的连接问题


关于本站 | 联系我们 | 业务合作 | 客户案例 | 诚聘英才 | 广告合作 | 收藏本站
海口动网先锋网络科技有限公司版权所有
Copyright © 2000 - 2006 Cndw.Com
中华人民共和国电信与信息服务业务经营许可证编号 琼 ICP 020077