oracle block corrupted,ORA-01578: ORACLE data block corrupted
错误告警:
ERROR at line 1:
ORA-01578: ORACLE data block corrupted (file # 10, block # 131)
ORA-01110: data file 10:
'/u01/app/oracle/oradata/orcl/pdborcl/pdborcl_users01.dbf'
最要中是处理思路:
如果有备份有归档
rman target /
blockrecover datafile 10 block 131
好恢复
如果没有备份没归档
处理思路
1:放弃坏块的数据,抢救其他块的数据
2:将坏块打上标记,让业务skipped
一:收集信息
1、文件号
SELECT tablespace_name ,file_name,relative_fno,FILe_id FROM DBA_data_files
SELECT tablespace_name ,file_name,relative_fno,FILe_id FROM DBA_temp_files
2、段信息
select owner,segment_name,segment_type,tablespace_name from dba_extents
WHERE file_id = 10 AND 131 BETWEEN block_id AND block_id+blocks-1
分区表(partition_name)
select owner,segment_name,segment_type,tablespace_name,partition_name from dba_extents
WHERE file_id = 10 AND 131 BETWEEN block_id AND block_id+blocks-1
如果是表,同时要考虑表上的索引,主键约束,还有外键约束
select owner,table_name,constraint_name ,r_constraint_name pk_other_table
from user_constraints a where a.constraint_type = 'R'
-- P 代表主键, R 代表外键
如果是分区表,先将有问题的区exchange为一个普通表,按照普通表处理
如果是索引,删掉,重建,如果rebuild需要alter index ...rebulid online如果不带online则会依赖原本的坏块重建索引
如果是主键索引,考虑是否有外键指向该索引
3、dbv确实file中有无其他损坏的块
-bash-3.2$ dbv file=/u01/app/oracle/oradata/orcl/pdborcl/pdborcl_users01.dbf userid=system/5963187
二:处理让应用跳过坏块
sys用户 使用SKIP_CORRUPT_BLOCKS来告知Oracle哪些坏块需要被跳过
BEGIN
DBMS_REPAIR.SKIP_CORRUPT_BLOCKS (
SCHEMA_NAME => 'DSW',
OBJECT_NAME => 'BB',
OBJECT_TYPE => dbms_repair.table_object,
FLAGS => dbms_repair.skip_flag);
END;
/
三:扩展
如果是坏块 报ORA-0600,处理思路是,先将块标记成坏块(多了这一步),然后配置跳过坏块。
如果报ORA 01578s说明已经将坏块标记出了。
oracle block corrupted,ORA-01578: ORACLE data block corrupted相关推荐
- [原]Oracle数据文件损坏的模拟和修复(一) |ORA-01578 data block corrupted|
造成数据块损坏的原因通常是由于开启了异步I/O或者增加了写进程,还有可能是硬件引起的,今天模拟一下该问题的发生及修复方法.由于水平有限,那面疏漏,欢迎大家指正. 创建测试环境 建立测试表空间: cre ...
- oracle block corrupted,ORA-01578: ORACLE data block corrupted (file # 9, block # 45729)
今天在实验的机子的oracle上的一张表中批量插入5000000条记录,在插入过程中途发生了表空间不够的情况,导致插入终止,在表空间上添加一个数据文件,对表中的数据进行查询,发生如下的错误: SQL& ...
- zblock 结构_偷窥Data block 的物理结构
作者:grassbell 1.Data Block物理结构图: 2.一次对block的dump过程: SQL> create table t9 (a varchar(10)); Table cr ...
- Oracle 错误代码(ORA)对照表
ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常. ORA-00017: 请求会话以设置跟踪事件 ORA-00018: 超出最大会话数 OR ...
- 【BBED】使用bbed 修改data block Block Misplaced
使用bbed 修改数据块物理校验出错的问题. SQL> select * from yangtab; select * from yangtab * ERROR at ...
- ORA-00607 Internal error occurred while making a change to a data block处理
这个问题是我模拟的故障,具体怎么出现的请参考链接 https://blog.csdn.net/m15217321304/article/details/105223487 --//查看数据库日志 Re ...
- Oracle Segments可以跨多个data files吗?
首先,你需要明白的一点是:数据库的物理结构是由数据库的操作系统文件所决定,每一个Oracle数据库是由三种类型的文件组成:数据文件.日志文件和控制文件.数据库的文件为数据库信息提供真正的物理存储. 每 ...
- data block address
这里讨论的不是数据库管理员DBA,而是数据块地址DBA:Data Block Address! A Data Block Address (DBA) is the address of an Orac ...
- Oracle 12C 利用Rman Duplicate搭建 Data Guard
环境(备库只需要安装数据库软件): 主库:192.168.1.100 OS: CentOS 7.3 X64 DB: ORACLE12.2.0.1 SID ...
- Oracle的tnsnames.ora配置(PLSQL Developer)
首先打开tnsnames.ora的存放目录,一般为D:\app\Administrator\product\11.2.0\client_1\network\admin,就看安装具体位置了. 步骤阅读 ...
最新文章
- VR视觉健康标准在穗发布 专家:VR使用不要超过45分钟
- List去重复——多个复杂字段判断去重
- Linux下用netstat查看网络状态、端口状态
- sql server 2008学习13 触发器
- sql中where和on的区别
- Java并发控制基础篇 Thread继承类和Runnable实现类
- windows+caffe下对CIFAR训练
- [转载] public static void main(String[] args) 隐含了什么?
- spl_autoload_register函数
- APICloud开发者进阶之路 |纯手工编写日程表功能
- The type XXX is not API (restriction on required library 'D:\jdk-64\jre\lib\rt.jar')
- labview技巧——获取网络时间
- 判断多边形是凹多边形还是凸多边形,以及求凹点
- 基于raspbian+motion的家庭监控网络
- Python操作word插入对象
- 前端 | 表格(table)的合并
- 关于nodejs gm的各种各样的问题解决方法集合(中文乱码,non-conforming drawing,��Ч���� )
- Error : connect Time out
- 快应用信息流列表组件
- 如果有天我们变陌生了,那么我就重新认识你(晚安心语)