【Oracle】坏块处理一例

前言:今天程序后台告警如下,初步判断就是数据所在的硬盘有坏块,下面简单记录下处理流程。

一、程序告警

1.png

二、dev检测

从程序上告警可以看到文件号4,块号2858634所在的数据库损坏,我们查看文件号4所在的文件名。

SQL> select file_id,file_name from dba_data_files where file_id=4;

   FILE_ID FILE_NAME
---------- ----------------------------------------
     4 /u01/oracle/oradata/wxdb/users01.dbf

使用dev检测

[oracle@weixindb ~]$ dbv file='/u01/oracle/oradata/wxdb/users01.dbf'

DBVERIFY: Release 11.2.0.3.0 - Production on Mon Apr 9 09:40:44 2018

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

DBVERIFY - Verification starting : FILE = /u01/oracle/oradata/wxdb/users01.dbf

DBV-00200: Block, DBA 19635850, already marked corrupt
csc(0x0000.1de576e3) higher than block scn(0x0000.00000000)
Page 2858634 failed with check code 6054


DBVERIFY - Verification complete

Total Pages Examined         : 4193600
Total Pages Processed (Data) : 1223652
Total Pages Failing   (Data) : 0
Total Pages Processed (Index): 2890057
Total Pages Failing   (Index): 1
Total Pages Processed (Other): 57814
Total Pages Processed (Seg)  : 0
Total Pages Failing   (Seg)  : 0
Total Pages Empty            : 22077
Total Pages Marked Corrupt   : 1
Total Pages Influx           : 0
Total Pages Encrypted        : 0
Highest block SCN            : 2094114815 (0.2094114815)

从上面可以看到确实存在一个坏块

三、查看坏块所在的对象

SQL> SELECT tablespace_name, segment_type, owner,segment_name, partition_name FROM dba_extents WHERE file_id=6 and 2858634 between block_id AND block_id+blocks-1;

TABLESPACE_NAME            SEGMENT_TYPE   OWNER              SEGMENT_NAME                                      PARTITION_NAME
------------------------------ ------------------ ------------------------------ --------------------------------------------------------------------------------- ------------------------------
USERS                  INDEX          WEIXIN             RECORD_ID

因为我这里坏块问题已经解决了,所以另外指定了一个file_id,可以看到坏块所在的对象是一个索引,那么这个问题就比较好解决了,通过重建索引即可解决。

四、在线重建索引

查看索引所在的表

SQL> select table_name,index_name from dba_indexes where index_name = 'RECORD_ID';

TABLE_NAME             INDEX_NAME
------------------------------ ------------------------------
ZJOL_WINNING_RECORD        RECORD_ID

重建索引

alter index idx_xxx rebuild online;
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 137,184评论 19赞 139
  • feisky云计算、虚拟化与Linux技术笔记posts - 1014, comments - 298, trac...
    不排版阅读 4,469评论 0赞 5
  • Ubuntu的发音 Ubuntu,源于非洲祖鲁人和科萨人的语言,发作 oo-boon-too 的音。了解发音是有意...
    萤火虫de梦阅读 101,098评论 9赞 468
  • 今天的执念与自以为的部分又跑出来肆意了 在接下来的时间里看到一些留意点 自己性格中失控的部分恰好得以看到和知道 以...
    TS小西阅读 205评论 1赞 0
  • 身在起点,心在远方。 2016,意义非凡,一年来,看过不同的风景,读过不同的书,望过不同的天空,去过不同的远...
    SHUHE阅读 284评论 2赞 2

友情链接更多精彩内容