Oracle回滚表空间数据文件误删除处理

2016-02-19 20:18 8 1 收藏

每个人都希望每天都是开心的,不要因为一些琐事扰乱了心情还,闲暇的时间怎么打发,关注图老师可以让你学习更多的好东西,下面为大家推荐Oracle回滚表空间数据文件误删除处理,赶紧看过来吧!

【 tulaoshi.com - 编程语言 】

您正在看的ORACLE教程是:Oracle回滚表空间数据文件误删除处理。

一、 引言:

回滚段是数据库的一部分,它记录数据库变更的信息。使用这些信息实现数据库的读一致性及其恢复。若回滚段出现故障,则数据库不能正常启动,导致数据库瘫痪,用户无法读写数据。若能将回滚段的故障排除,则不会影响用户的实际数据。笔者最近在实际工作中遇到一个问题:用户将回滚段表空间(rbs)的数据库文件(rbs01.dbf)错误删除,以致使数据库无法正常运行,下面上笔者排除该方法的处理步骤。

二、 步骤:

1、 首先改参数文件init.ora,使数据库能mount上来。

在system表空间内有一个system回滚段,该回滚段上数据库所必须的,当数据库第一次建立时,它就随之建立,并随数据库的打开而自动在线。我们通常使用的回滚段是公用回滚段,而非system回滚段,若公用回滚段出现故障,我们暂可用system回滚段替代,使数据库能mount上来。


svrmgrl Shutdown abort

$ vi $ORACLE_HOME/dbs/init sid .ora

rollback_segments=(system)

_corrupted_rollback_segments=(r01,r02,r03,r04)

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

svrmgrl Startup mount2、 对数据库实施恢复,再将它打开

从数据库的控制文件中将回滚段表空间rbs的数据文件rbs01.dbf离线并去掉。


svrmgrl alter database datafile

‘##/##/rbs01.dbf’ offline drop;对数据库进行恢复。


svrmgrl recover database using backup controlfile;此时屏幕上可能会出现:


ORA_00280 Change #### for thread# is in sequence#

specify log:[ RET for suggested|AUTO|from

logsource|cancel]您可以根据sequence#号找到您需要的在线日志文件,并将日志文件输入(包括全路径),查找在线日志文件时可以使用svrmgrl select * from v$log; 此时完成数据库恢复。 再将数据库打开。


svrmgrl alter database open resetlogs;3、 重建新的回滚段

将旧回滚段及回滚表空间删除。


svrmgrl alter rollback_segment r01 offline drop;

svrmgrl alter rollback_segment r02 offline drop;

svrmgrl alter rollback_segment r03 offline drop;

svrmgrl alter rollback_segment r04 offline drop;

svrmgrl drop tablespace rbs including contents;重建新的回滚表空间及回滚段。


svrmgrl connect internal

svrmgrl create rollback segment ro tablespace system;

svrmgrl alter rollback segment ro online;

svrmgrl create tablespace rbs datafile

‘##/##/rbs01.dbf’ size ##k;

svrmgrl create rollback segment r01 tablespace rbs;

svrmgrl create rollback segment r02 tablespace rbs;

svrmgrl create rollback segment r03 tablespace rbs;

svrmgrl create rollback segment r04 tablespace rbs;

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

svrmgrl alter rollback segment r01 online;

svrmgrl alter rollback segment r02 online;

svrmgrl alter rollback segment r03 online;

svrmgrl alter rollback segment r04 online;4、 使用新建的回滚段启动数据库


svrmgrl Shutdown abort

$ vi $ORACLE_HOME/dbs/init sid .ora

rollback_segments=(r01,r02,r03,r04)

将参数_corrupted_rollback_segment去掉

svrmgrl Startup normal三、 结束语:

此故障的排除是数据库在归档方式上执行的,笔者已在HP-UX 10.20及Solaris2.5两种系统平台上成功通过。

来源:http://www.tulaoshi.com/n/20160219/1623312.html

延伸阅读
金山快盘恢复误删除文件的方法   金山快盘是一款免费的网络存储空间,很多用户都会讲重要的文件自动别分到金山快盘中,不过一些用户在误删除了网盘中的重要文件时怎么办呢?在金山快盘客户端中没有删除文件恢复的功能,故此用户想要恢复网盘中的数据就需要通过金山快盘的官方网站:www.kuaipan.cn 进行恢复,下面我们看下详细的恢复方...
回滚段管理一直是ORACLE数据库管理的一个难题,本文通过实例介绍ORACLE回滚段的概念,用法和规划及问题的解决。 回滚段概述 回滚段用于存放数据修改之前的值(包括数据修改之前的位置和值)。回滚段的头部包含正在使用的该回滚段事务的信息。一个事务只能使用一个回滚段来存放它的回滚信息,而一个回滚段可以存放多个事务的回滚...
创建回滚段 语法: CREATE [PUBLIC] ROLLBACK SEGMENT rollback_segment [TABLESPACE tablespace] [STORAGE ([INITIAL integer[K|M]] [NEXT integer[K|M]] [MINEXTENTS integer] [MAXTENTS {integer|UNLIMITED}] [OPTIMAL {integer[K|M]...
在Oracle数据库管理系统中,创建库表(table)时要分配一个表空间(tablespace),如果未指定表空间,则使用系统用户确省的表空间。 在Oracle实际应用中,我们可能会遇到这样的问题。处于性能或者其他方面的考虑,需要改变某个表或者是某个用户的所有表的表空间。通常的做法就是首先将表删除,然后重新建表,在新建表时将表空间指定到...
标签: 电脑入门
    不知你是否遇到这样的经历:在公共计算机中如果有过自己不小心误操作或者是别人不注意,将保存有重要资料的文件夹删除了,如果回收站没有被清空,还有挽回的余地,但是如果回收站被清空了,此时后悔晚矣。 如果文件夹保存在NTFS分区,那么利用权限设置就可以轻松保护重要文件夹不被误删除,不允许他人删除,但是允许自由读...

经验教程

686

收藏

11
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部