PRD的数据库重组完成后表DDNTT有坏块,导致不能使用AL01。先备份系统再恢复系统到周五状态,使用brtools导出表DDNTT。恢复系统到重组后,在brtools中将DDNTT删除,并导入之前未受损坏的DDNTT表,在DB13中作CHECK
DB。
PRD的数据库重组完成后在SM21中系统报错
Database error 1578 requires intervention by the database
administrator
Database error 1578 at FET access to table T022D
> ORA-01578: ORACLE data block
corrupted (file # 85, block #
> 1811499)#ORA-01110: data file
85:
> '/oracle/PRD/sapdata9/sr3_1/sr3.data1'#
该错误只在SAP服务启动后第一次打印时出现。
ORA-01578racle data block corrupted(file # num,block #
num)产生原因:当ORACLE访问一个数据块时,由于1、硬件的I/O错误;2、操作系统的I/O错误或缓冲问题;3、内存或paging问题;4、
ORACLE试图访问一个未被格式化的系统块失败;5、数据文件部分溢出等上述几种情况的一种引起了逻辑坏块或者物理坏块,这时就会报ORA-01578
的错误。
SQL> ANALYZE TABLE sapr3.T022D VALIDATE
STRUCTURE;
ANALYZE TABLE sapr3.T022D VALIDATE STRUCTURE
*
ERROR at line 1:
ORA-01578: ORACLE data block corrupted (file #
85, block # 1811499)
ORA-01110: data file 85:
'/oracle/PRD/sapdata9/sr3_1/sr3.data1'
这个表用于打印控制,发生这个问题的用户,用来打印交货单,没有错误和异常。
SQL> select owner,segment_name,segment_type
from dba_extents where file_id=85 and 1811499 between block_id and
block_id+blocks-1;
OWNER
------------------------------
SEGMENT_NAME
--------------------------------------------------------------------------------
SEGMENT_TYPE
------------------
SAPR3
T022D
TABLE
表示坏块出在表上,不是索引上,所以不能通过删掉重建索引解决。
多次执行以下语句,结果相同表示不是与内存,page space和I/O设备有关,为永久性的物理或逻辑坏块。
SQL> ANALYZE TABLE sapr3.T022D validate
structure cascade;
ANALYZE TABLE sapr3.T022D validate structure cascade
*
ERROR at line 1:
ORA-01578: ORACLE data block corrupted (file #
85, block # 1811499)
ORA-01110: data file 85:
'/oracle/PRD/sapdata9/sr3_1/sr3.data1'
为解决表T022D 的坏块问题,停掉SAP服务启动oracle,使用brtools将表T022D
export出来,在SQL语句中使用drop table sapr3.
T022D;删除表T022D再从brtools中重新import表T022D,使用ANALYZE TABLE sapr3.T022D
VALIDATE STRUCTURE;检查表,没有问题。启动SAP后再打印,问题解决。