A bad chunk of what is a database
First of all, let's take a look at the format and structure of the database blocks--the data blocks of the database have a fixed format and structure, three-layer cache layer,transaction Layer,data layer. When we read a data block, the database checks the data blocks that are read and written, including the type of data block, the address information of the block, the SCN number of the data block, and the head and tail of the block. If an inconsistent information is found, the database will mark the block as a bad block. The bad block of the database is divided into two kinds, logical bad block and physical bad block.
The impact of two bad blocks on the database
If there are bad blocks in the database, there are some error messages in the alarm log file of the database Ora-1578 and Ora-600 and trace file in Bdump directory where the first parameter value of Ora-600 error is [2000]- [8000], different values represent the problems of different layers of the data block, as shown in the following table:
Range block Layer
Cache Layer 2000–4000
Transaction Layer 4000–6000
Data Layer 6000-8000
The objects that are affected by the bad blocks may be data dictionary tables, rollback segment tables, temporary segments, user data tables, and indexes. Different objects produce bad blocks after the processing methods are different.
The reason why the three bad blocks are produced
Oracle invokes standard C's system functions to read and write data blocks, so bad blocks are likely to occur for several reasons:
Hardware I/O error
Operating system I/O error or buffering problem
Memory or paging problem
Disk Repair Tool
Part of a data file is being overwritten
Oracle attempted to access a system block that was not formatted failed
Data file partially overflowed
Oracle or OS Bugs