ITPUB??ì3
订阅ITPUB精粹播报,社区精彩内容不错过
ITPUB论坛 » Oracle数据库管理 » 误删除了UNDO对应的文件,数据库起不来了怎么办


您有 1 条公共消息
  • 来自: 公共消息 标题: ITPUB国庆假期数 ... 内容: 全新编排的Oracle数据库课程,第一线数据库工程师传授亲身经验,完全摆 ...

    标题: 误删除了UNDO对应的文件,数据库起不来了怎么办
    离线 wupenglove2005
    初级会员



    精华贴数 0
    个人空间 0
    技术积分 8 (138672)
    社区积分 0 (950950)
    注册日期 2006-5-14
    论坛徽章:0
          
          

    发表于 2009-10-23 10:43 


    QUOTE:
    原帖由 wupenglove2005 于 2009-10-23 10:07 发表
    SQL> select segment_name,status,tablespace_name from dba_rollback_segs;


    SEGMENT_NAME STATUS TABLESPACE_NAME

    ------------------------------ ---------------- ---------------

    SYSTEM ONLINE SYSTEM

    _SYSSMU2$ ONLINE UNDOTBS1

    _SYSSMU3$ ONLINE UNDOTBS1

    _SYSSMU4$ ONLINE UNDOTBS1

    _SYSSMU5$ ONLINE UNDOTBS1

    _SYSSMU6$ ONLINE UNDOTBS1

    _SYSSMU7$ ONLINE UNDOTBS1

    _SYSSMU8$ ONLINE UNDOTBS1

    _SYSSMU9$ ONLINE UNDOTBS1

    _SYSSMU10$ ONLINE UNDOTBS1

    _SYSSMU21$ ONLINE UNDOTBS1

    用上面的语句查出UNDO中的段。

    然后在pfile 中加入
    undo_management = manual
    rollback_segments = (SYSTEM,_SYSSMU2$ ,...........)

    最后
    SQL> alter database datafile '/oracle/oradata/undotbs01.dbf' offline drop;

    SQL> alter database open;

    SQL> CREATE UNDO TABLESPACE UNDOTBS2 DATAFILE
      '/oracle/oradata/undotbs02.dbf' SIZE 110M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED
    ONLINE
    RETENTION NOGUARANTEE
    BLOCKSIZE 8K
    FLASHBACK ON;

    SQL> alter system set undo_tablespace=UNDOTBS2;

    SQL> drop tablespace UNDOTBS1 including contents AND DATAFILES;

    纠正一个错误
    rollback_segments = (SYSTEM,_SYSSMU2$ ,...........)
    这个参数后面的SYSTEM要去掉,要不然会报一个ORA-01596错误
    即改成rollback_segments = (‘_SYSSMU2$’ ,‘_SYSSMU3$’,‘_SYSSMU4$’,................)


    只看该作者    顶部
    离线 opsc
    低调行事


    精华贴数 0
    个人空间 0
    技术积分 476 (5261)
    社区积分 0 (2095718)
    注册日期 2009-3-11
    论坛徽章:1
    BLOG每日发帖之星     
          

    发表于 2009-10-25 14:19 
    回复 #21 wupenglove2005 的帖子

    dba_rollback_segs在mount状态下你可以去查吗?

    楼上几位都讲的不全面包括偶自己。

    对于10g以上以及statistic_level<>BASIC的库,数据库open之前会根据undo的awr表(sys.wrh$_undostat)去查concurrency或者length, 具体哪种算法是由一个隐藏参数决定。这种情况下无法open, 会有600。mmon这个进程起不来导致库无法起来。

    或者是小于10g,或者是statistic_level设成basic, 或者用我之前改成manual方式打开都可以。


    只看该作者    顶部
    在线/呼叫 viadeazhu
    小V


    精华贴数 5
    个人空间 2793
    技术积分 7887 (223)
    社区积分 2065 (798)
    注册日期 2008-8-22
    论坛徽章:53
    现任管理团队成员ITPUB伯乐ITPUB知识分享者世界杯纪念徽章NBA常规赛纪念章季节之章:秋
    2010世博会纪念徽章数据库板块每日发贴之星数据库板块每日发贴之星数据库板块每日发贴之星数据库板块每日发贴之星数据库板块每日发贴之星

    发表于 2009-10-25 19:06 


    QUOTE:
    原帖由 opsc 于 2009-10-25 14:19 发表
    dba_rollback_segs在mount状态下你可以去查吗?

    楼上几位都讲的不全面包括偶自己。

    对于10g以上以及statistic_levelBASIC的库,数据库open之前会根据undo的awr表(sys.wrh$_undostat)去查concurrency或者length, 具体哪种算法是由一个隐藏参数决定。这种情况下无法open, 会有600。mmon这个进程起不来导致库无法起来。

    或者是小于10g,或者是statistic_level设成basic, 或者用我之前改成manual方式打开都可以。

    nice~
    如果我们真的遇到这种灾难,我觉得第一步就是把AWR关了,然后undo设成手动管理。


    __________________
    想了解Oracle 11G么?从这里看起:《ITPUB知识索引贴--Oracle 11G》
    ViadeaZhu和Oracle的故事(新域名:http://www.viadea.net
    ***11G专题研究:11g.viadea.net***
    只看该作者    顶部
    相关内容


    CopyRight 1999-2006 itpub.net All Right Reserved.
    北京皓辰网域网络信息技术有限公司. 版权所有
    网站律师 隐私政策 知识产权声明
    广播电视节目制作经营许可证:编号(京)字第1149号
    京ICP证:060528号 联系我们

    北京市公安局海淀分局网监中心备案编号:1101082001