以上问题,通过RMAN VALIDATE DATAFILE 15 可以找到具体的块号
RMAN> validate datafile 15;
启动 validate 于 08-3月 -24
使用目标数据库控制文件替代恢复目录
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=23 设备类型=DISK
通道 ORA_DISK_1: 正在开始验证数据文件
通道 ORA_DISK_1: 正在指定数据文件进行验证
输入数据文件: 文件号=00015 名称=D:\APP\ADMINISTRATOR\ORADATA\ORCL\ZL9INDEXHIS.DB
F
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03009: validate 命令 (ORA_DISK_1 通道上, 在 03/08/2024 11:47:17 上) 失败
ORA-19501: 文件 "D:\APP\ADMINISTRATOR\ORADATA\ORCL\ZL9INDEXHIS.DBF", 块编号 6750
72 (块大小=8192) 上出现读取错误
ORA-27070: 异步读取/写入失败
OSD-04016: 异步 I/O 请求排队时出错。
O/S-Error: (OS 23) 数据错误(循环冗余检查)。
RMAN>
然后,通过以下语句:
SQL> select owner,segment_name,segment_type,tablespace_name
2 from dba_extents
3 where file_id=15
4 and 675072 between block_id and block_id+blocks-1;
OWNER
------------------------------
SEGMENT_NAME
----------------------------------------------------------------------------
SEGMENT_TYPE TABLESPACE_NAME
------------------ ------------------------------
ZLHIS
病人挂号记录_IX_病人ID
INDEX ZL9INDEXHIS
看到是一个索引 病人挂号记录_IX_病人ID
删除,并重建到其他表空间即可。
alter index zlhis.病人挂号记录_IX_病人ID tablespace tsp_zl9indhis_new;
之后,应用不报错了。
|