undotbs1表空间损坏如何解决


在生产应用中遇到如下问题。

  环境:OS redflag Server 5

  DB Oracle Database 10g Enterprise Edition Release 10.2.0.1.0  RAC

  在两台数据库日志中提示为

  Errors in file /opt/app/oracle/admin/postdb/bdump/postdb2_smon_7618.trc:

  ORA-01578: ORACLE 数据块损坏 (文件号 2, 块号 104420)

  ORA-01110: 数据文件 2: '+DATA1/postdb/datafile/undotbs1.260.666122861'

  Sun Jul 26 09:19:23 2009

  Errors in file /opt/app/oracle/admin/postdb/bdump/postdb2_smon_7618.trc:

  ORA-01578: ORACLE 数据块损坏 (文件号 2, 块号 104420)

  ORA-01110: 数据文件 2: '+DATA1/postdb/datafile/undotbs1.260.666122861'

  Sun Jul 26 09:19:24 2009

  Errors in file /opt/app/oracle/admin/postdb/bdump/postdb2_smon_7618.trc:

  ORA-01578: ORACLE 数据块损坏 (文件号 2, 块号 104420)

  ORA-01110: 数据文件 2: '+DATA1/postdb/datafile/undotbs1.260.666122861'

  Sun Jul 26 09:19:25 2009

  Errors in file /opt/app/oracle/admin/postdb/bdump/postdb2_smon_7618.trc:

  ORA-01578: ORACLE 数据块损坏 (文件号 2, 块号 104420)

  ORA-01110: 数据文件 2: '+DATA1/postdb/datafile/undotbs1.260.666122861'

  Sun Jul 26 09:19:25 2009

  Errors in file /opt/app/oracle/admin/postdb/bdump/postdb2_smon_7618.trc:

  ORA-01578: ORACLE 数据块损坏 (文件号 2, 块号 104420)

  ORA-01110: 数据文件 2: '+DATA1/postdb/datafile/undotbs1.260.666122861'

  Sun Jul 26 09:19:30 2009

  Errors in file /opt/app/oracle/admin/postdb/bdump/postdb2_smon_7618.trc:

  登陆检查,用如下语句查看标空间的使用情况。

  SQL> select f.tablespace_name tablespace_name,round((d.sumbytes/1024/1024/1024),2) total_g,

  2  round(f.sumbytes/1024/1024/1024,2) free_g,

  round((d.sumbytes-f.sumbytes)/1024/1024/1024,2) used_g,

  3    4  round((d.sumbytes-f.sumbytes)*100/d.sumbytes,2) used_percent

  5  from (select tablespace_name,sum(bytes) sumbytes from dba_free_space group by tablespace_name) f,

  (select tablespace_name,sum(bytes) sumbytes from dba_data_files group by tablesp  6  ace_name) d

  7  where f.tablespace_name= d.tablespace_name

  8  order by d.tablespace_name;

  TABLESPACE_NAME                   TOTAL_G     FREE_G     USED_G USED_PERCENT

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

  INDEX_DATA                           7.81       7.81          0            0

  MONTH_SPACE01                        7.81       7.78        .03           .4

  MONTH_SPACE02                        7.81       7.78        .03          .38

  MONTH_SPACE03                        7.81       7.81          0          .05

  MONTH_SPACE04                        7.81       7.81          0          .05

  PCC_LS_YWXX_SPACE01                  7.81       7.76        .05          .69

  PCC_LS_YWXX_SPACE02                  7.81       7.76        .05          .65

  PCC_LS_YWXX_SPACE03                  7.81       7.81        .01          .09

  PCC_LS_YWXX_SPACE04                  7.81       7.79        .02          .26

  POST_KF                             31.25      27.66       3.59         11.5

  SYSAUX                               2.27       1.17        1.1        48.42

  TABLESPACE_NAME                   TOTAL_G     FREE_G     USED_G USED_PERCENT

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

  SYSTEM                                  1        .51        .49        48.99

  TS_PCC_LS_YWXX                      15.63      15.62          0            0

  TS_PCC_REC_AUDIO                    15.63      15.62          0            0

  UNDOTBS1                                4        .01       3.99        99.79

  UNDOTBS2                                4       3.99        .01          .33

  USERS                                 .49        .49          0          .19

  VADIO_DATA                           7.81       7.81          0            0

  18 rows selected.

  发现是UNDOTBS1表空间空间用尽,不能扩展。

  显然曾经有大事务占用了大量的UNDO表空间。Oracle的AUM(Auto Undo Management)从出生以来就经常出现只扩展,不收缩(shrink)的情况(通常我们可以设置足够的UNDO表空间大小,然后取消其自动扩展属性).

  现在我们可以采用如下步骤回收UNDO空间:

  (1) 确认文件

  SQL> select file_name,bytes/1024/1024 from dba_data_files  where tablespace_name like 'UNDOTBS1';

  FILE_NAME

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

  BYTES/1024/1024

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

  +DATA1/postdb/datafile/undotbs1.260.666122861

  4096

  (2)检查UNDO Segment状态

  SQL> select usn,xacts,rssize/1024/1024/1024,hwmsize/1024/1024/1024,shrinks from v$rollstat order by rssize;

  USN      XACTS RSSIZE/1024/1024/1024 HWMSIZE/1024/1024/1024    SHRINKS

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

  15          0            .000297546             .002128601         10

  0          0            .000358582             .000358582          0

  19          0            .001091003             .013786316          4

  12          1            .001091003             .003044128          1

  13          0            .001091003             .004997253          3

  14          0            .001091003             .002067566          1

  16          0            .001091003             .002067566          3

  11          0            .001091003             .003044128          4

  18          0            .001091003             .002067566          1

  17          0            .002067566             .006950378          1

  20          0            .002067566             .002067566          3

  11 rows selected.

  (3)创建新的UNDO表空间

  SQL> create undo tablespace undotbs2 datafile '+DATA1' size 4000M;;

  Tablespace created.

  (4)切换UNDO表空间为新的UNDO表空间

  SQL> alter system set undo_tablespace=undotbs2 scope=both;

  System altered.

  (5)等待原UNDO表空间所有UNDO SEGMENT OFFLINE

  SQL> select usn,xacts,status,rssize/1024/1024/1024,hwmsize/1024/1024/1024,shrinks from v$rollstat order by rssize;

  USN      XACTS STATUS          RSSIZE/1024/1024/1024 HWMSIZE/1024/1024/1024    SHRINKS

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

  15          0 ONLINE                     .000297546             .002128601         10

  0          0 ONLINE                     .000358582             .000358582          0

  19          0 ONLINE                     .001091003             .013786316          4

  12          1 ONLINE                     .001091003             .003044128          1

  13          0 ONLINE                     .001091003             .004997253          3

  14          0 ONLINE                     .001091003             .002067566          1

  16          0 ONLINE                     .001091003             .002067566          3

  11          0 ONLINE                     .001091003             .003044128          4

  18          0 ONLINE                     .001091003             .002067566          1

  17          0 ONLINE                     .002067566             .006950378          1

  20          0 ONLINE                     .002067566             .002067566          3

  USN      XACTS STATUS          RSSIZE/1024/1024/1024 HWMSIZE/1024/1024/1024    SHRINKS

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

  6          0 PENDING OFFLINE             2.9671936              2.9671936          0

  12 rows selected.

  再看:

  SQL> select usn,xacts,status,rssize/1024/1024/1024,hwmsize/1024/1024/1024,shrinks from v$rollstat order by rssize;

  USN      XACTS STATUS          RSSIZE/1024/1024/1024 HWMSIZE/1024/1024/1024    SHRINKS

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

  15          0 ONLINE                     .000297546             .002128601         10

  0          0 ONLINE                     .000358582             .000358582          0

  19          0 ONLINE                     .001091003             .013786316          4

  12          1 ONLINE                     .001091003             .003044128          1

  13          0 ONLINE                     .001091003             .004997253          3

  14          0 ONLINE                     .001091003             .002067566          1

  16          0 ONLINE                     .001091003             .002067566          3

  11          0 ONLINE                     .001091003             .003044128          4

  18          0 ONLINE                     .001091003             .002067566          1

  17          0 ONLINE                     .002067566             .006950378          1

  20          0 ONLINE                     .002067566             .002067566          3

  11 rows selected.

  (6)删除原UNDO表空间

  SQL> drop tablespace undotbs1 including contents;

  Tablespace dropped.

  Elapsed: 00:00:03.13

  (7)检查空间情况

  由于我使用的ASM管理,可以使用10gR2提供的信工具asmcmd来察看空间占用情况.

  [oracle@danaly ~]$ export ORACLE_SID=+ASM

  [oracle@danaly ~]$ asmcmd

  ASMCMD> du

  Used_MB      Mirror_used_MB

  21625               21625

  ASMCMD> exit

  空间已经释放



相关阅读:
解决 JScript 中使用日期类型数据时出现类型错误的问题
JavaScript DOM 添加事件
IE/Firefox中全局正则表达式的兼容
关于event.cancelBubble和event.stopPropagation()的区别介绍
Jquery 扩展方法
网页制作实例:图片真正居中的方法
checkbox 复选框不能为空
关于ASP.NET在IIS一些问题经验总结
asp.net(c#)ref,out ,params的区别
双系统计算机怎样卸载其中一个?
Oracle10g新特性——正则表达式
ASP在线创建Word与Excel文档
JavaScript判断窗口是否最小化的代码(跨浏览器)
mssql 两种数据插入方式
快速导航
PHP MySQL HTML CSS JavaScript MSSQL AJAX .NET JSP Linux Mac ASP 服务器 SQL jQuery C# C++ java Android IOS oracle MongoDB SQLite wamp 交通频道 作文范文 《遨游汉字王国》教学设计 樵夫 十五年的思考与承诺 学生会竞选的演讲稿 体育教师实习报告范文 女生只要看完后都哭了,一个真正爱你的男人原来是这样的 细雨听古韵,锦书画初春 夏日炎炎——李文静作文200字 毕业生入职培训总结 怀一份思念, 在你的温柔上走 校园美景450字 2015英语经典句子大全 小学家长代表发言稿 和妈妈买菜 我最敬佩的人——爸爸350字 假如你要结婚,请给我一张请柬 边境风云经典台词语录 浅议绿色贸易壁垒对我国绿色食品出口的影响 《风筝》教学案2 此去尘路千万里,梦绕魂牵在楼兰 我最喜欢语文课作文 新学期打算作文500字精选 秋天畅思(作者:云朵儿GAO) 英豪大陆{2}【热血英豪作文1300字 鲛人 祝福自己生日的话 【今夜,与你宛在水中央】 我的家乡200字 冰的前生是泪水 谁来买走我的恨作文1400字 小学语文教师述职报告优秀范文 《笑猫日记寻找黑骑士》读后感 初中初一作文600字:假如我是一只火炬 教师假期学习心得体会 我的寿桃——谢欣雨 没有到不了的明天 小学五年级作文650字:可爱的小弟弟 民政局冰冻雨雪天气救灾应急预案 镜子里的房间 牛根生经典励志语录50句 感悟人生哲理经典语录 倾听四季——一 学会宽容议论文600字 艺演长安风 “老油条”这家伙 读《365天寓言》有感 胭脂竹林 以前的后来 第二十二章-忒修斯和庇里托俄斯 小学四年级作文400字:精 彩 的 开 幕 式

Copyright © 2016 phpStudy |