[bbk5373] 第88集 第11章 数据库诊断 04

What is blokc corruption?

  • Whenver a block is read or written,a consistency check is performed.
    • Block version
    • DBA(data block address) value in cache as compared to the DBA value in the block buffer
    • Blcok-checjsum,if enabled
  • A corrupt block is identified as being one of the following:
    • Media corrupt
    • Logically(or software) corrupt

Block Corruption Symptoms:ORA-01578

The error ORA-01578:"ORACLE data block corrupted(file # %s,block # %s)":

  • Is generated when a corrupted data block is found
  • Always returns the relative file number and block number
  • Is returned to the session that issued the query being performed when the corruption was discovered
  • Appears in the alert.log file

How to Handle Corruption

  • Check the alert log and operating system log file.
  • Use available diagnostic tools to find out the type of corruption
  • Determine whether the error persists by running checks multiple times.
  • Recover data from the corrupted object if necessary.
  • Resolve any hardware issues:
    • Memory boards
    • Disk controllers
    • Disks
  • Recover or resotre data from the corrupt object if necessary.

Setting Parametes to Detect Corruption

对于数据库block的损坏情况检查,需要开启一个参数设置,才可以

SQL> show parameter db_block_checking

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_block_checking                    string      FALSE

对于系统表空间的数据块,不管是否启用db_block_checking参数,都是要检查的;对于非系统表空间的数据块,则是需要开启此参数,才开始检查的.

注意:在Oracle 11g以前,如果要开启block损坏检查,需要设置三个参数db_block_checking、db_block_checksum、db_lost_wite_protect,11g以后,只需要设置一个参数即可:db_ultra_safe.

原文地址:https://www.cnblogs.com/arcer/p/3118940.html