通行证│用户名: 密码: 验证码: 验证码,看不清楚?请点击刷新验证码 电信网通铁通移动   在线
文章搜索:
热门搜索:红客 黑鹰 红客技术 安全动画 红客培训
首页 文章 软件 动画 资源 励志 论坛 邮箱 会员 军事 科技 博客 爱心红客 最近更新 800g资源
 业内新闻 漏洞公告 病毒公告 电脑知识 网络知识 菜鸟入门 攻防教程 黑客攻防 安全编程 工具使用 综合安全 个人安全 安全相关 Q Q安全 原创精华 红客人物 站内事件
您现在的位置: 爱国者安全网 >> 文章类 >> 技术文章 >> 网络知识 >> 文章正文
Oracle 回滚段表空间文件丢失的处理
责任编辑:酷酷の鱼   更新日期:2008-3-29
 

来源:赛迪网

如果你检测到丢失或损坏了回滚段表空间的数据文件,并且数据库是运行着的,不要把它 down 掉。在很多情况下,数据库是启着的比关闭着解决问题更容易些。

    这种情况的两种可能的解决方法:

    (A) 使丢失的那个数据文件 offline, 并从备份中恢复它,这种情况适用于数据库是处于归档方式的。

    (B)另一个方法是 offline 掉所有的那个文件所属表空间的回滚段, drop 那个表空间 , 然后得建它们。你可能不得不杀掉那些使用着回滚段的进程,以便使它 offline.

    方法A: 从备份恢复那个数据文件

    这个方法只有你的库是在归档方式下才能使用。

    1 、脱机 (offline) 那个丢失的数据文件。 ALTER DATABASE DATAFILE OFFLINE;

    提示:其于目前数据库的事务量,你可能需要建一个临时的回滚表空间和一些临时的回滚段以备正常业务运行。

    2 、从备份中恢复 (restore) 那个数据文件。

    3 、执行如下命令 SELECT V1.GROUP#, MEMBER, SEQUENCE#

    FROM V$LOG V1, V$LOGFILE V2

    WHERE V1.GROUP# = V2.GROUP# ;

    这将列出所有的联机的重做日志和他们的序号及首次改变号 (first change numbers).

    4 、得用联机日志及归档日志恢复那个文件 RECOVER DATAFILE
 
    5 、确认所有的日志都被恢复,只到你收到 "Media recovery complete" 信息。

    6 、使这个数据文件 online ALTER DATABASE DATAFILE ONLINE;

    方法B: 重建回滚表空间

    这种方法不必考虑数据库是否是归档模式的。

    步骤如下:

    1 、试图脱机所有的丢失或损坏数据文件所在回滚表空间中所包含的回滚段。 ALTER ROLLBACK SEGMENT OFFLINE;

    重复执行这个命令直到所包含的回滚段都脱机 .

    2 、检查回滚段的状态。

    在 drop 掉它们之前它们必需是 offline 状态的。 SELECT SEGMENT_NAME, STATUS FROM DBA_ROLLBACK_SEGS

    WHERE TABLESPACE_NAME = ;

    3 、删除掉所有脱机的 c 。 DROP ROLLBACK SEGMENT ;

    4 、处理那些保持 online 状态的回滚段

    重复执行 2 一下的命令,如果回滚段在执行 1 中命令仍保扭亏为盈 "ONLINE" 状态,意味着它之中有活动的事务,你可以用如下的查询来确认一下: SELECT SEGMENT_NAME, XACTS ACTIVE_TX, V.STATUS

    FROM V$ROLLSTAT V, DBA_ROLLBACK_SEGS

    WHERE TABLESPACE_NAME = AND SEGMENT_ID = USN;

    如果这个查询没有结果返回,意味着没有事务在这些回滚段中了。哪果有结果返回,那些不能offline 的回滚段的状态应为 "PENDING OFFLINE" 。可以用 5 中的方法把这些事务杀掉。

    5 、强制使有活动事务的回滚段脱机

    执行如下查询,看这些 "PENDING OFFLINE" 的回滚段包含哪些事务。 SELECT S.SID, S.SERIAL#, S.USERNAME, R.NAME "ROLLBACK"

    FROM V$SESSION S, V$TRANSACTION T, V$ROLLNAME R

    WHERE R.NAME IN (, ... , )

    AND S.TADDR = T.ADDR AND T.XIDUSN = R.USN;

    用 ALTER SYSTEM KILL SESSION , ; 语句杀掉这些事务,重复执行上面的查询,直到没有事务存在,这时运行一下 2 中的查询,确认这些回滚段己经处于 offline 状态 , 并用 3 中的语句把它们 drop 掉。

    6 、删除这个回滚表空间。 DROP TABLESPACE INCLUDING CONTENTS;

    如果语句执行失败,请与 oracle 技术支持联系,否则转向 7

    7 、重建回滚段表空间。

    8 、重建回滚段,并使它们联机 (online) 。

    译者按:回滚段表空间的数据文件丢失或损坏在实际中是比较棘手和常见的,产生这种问题 的原回很多的,比如介质的损坏、人为的误操作、机器的突然的断电等等。

    建议没实践过这种操作的 oracle 的爱好者可以模拟一下这种故障,实际实测一下,注意一定要在测试库,我模拟的方法如下:

    1 、单独建了一个 rbs 表空间,并在这个表空间建了一个回滚段 rbs_test 。

    2 、指定一个 transaction 用这个回滚段 sql>set transaction use rollback segment rbs_test;

    sql>insert into test values (2);

    sql>insert into test values(3);

    3 、另开一个 telnet 窗口 telnet 至主机,执行如下命令 : sqlplus /nolog

    sql>conn / as sysdba

    sql>shutdown abort

    4 、把新加的那个回滚段表空间的数据文件更个名。

  • 上一篇文章:
  • 下一篇文章:
  • 最近更新
    固顶文章 Delphi编程培训班开课了
    普通文章 瑞星公司03月29日发布 每日计算机病毒及木马播报
    普通文章 Linux操作系统终端乱码的终极解决方案
    普通文章 Oracle 回滚段表空间文件丢失的处理
    普通文章 提高网上银行安全性必知的5条规则
    普通文章 企业可轻松避免的十大安全地雷
    普通文章 用命令行开启或关闭 IP 安全策略
    普通文章 系统安全至上 剿清删不掉的DLL木马
    普通文章 苹果Safari闹出笑话:不得在非苹果机上安装
    普通文章 索尼称黑客可能攻破PS服务网站 窃取用户信息
    热门文章
    普通文章计算机病毒“木马下载器”新变种出现
    普通文章"磁碟机"病毒来势凶猛 "毒性"令专家惊叹
    普通文章第二轮大规模黑客攻击爆发 影响网页超20万
    普通文章中国黑客否认受雇于政府 称美国媒体造假
    普通文章VB蠕虫新变种ZBM肆虐
    普通文章拉丁美洲网络安全市场研究报告
    普通文章美零售连锁店遭黑客攻击 泄420万信用卡信息
    普通文章江民:我国首例光纤升级病毒出现 利益动机明显
    普通文章linux下寻找web绝对路径的办法
    普通文章服务器安全 守住关口防止脚本木马上传
    精彩专题