[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.