There are many different types of failure that can affect database processing, each of which has to be dealt with in a different manner. Some failures affect main memory only, while others involve non-volatile (secondary) storage. Among the causes of failure are:
• System Crashes
• User Error
• Sabotage (intentional corruption of data)
• Statement Failure
• Application software errors
• Network Failure
• Media Failure
• Natural Physical Disasters
In case of system crash, the systems hang up and need to be rebooted. These failures occur due to hardware malfunction or a bug in the database software or the operating system itself. It causes the loss of the content of volatile storage and brings transaction processing to a halt. The content of nonvolatile storage does not affected with this type of failure. The assumption that hardware errors and bugs bring the system to a halt, but do not corrupt the nonvolatile storage contents is known as the Fail-Stop Assumption.
An example of a user error is a user inadvertently deleting a row or dropping a table. Carelessness is the destruction of data by operators or users because they were not concentrating on the task at hand. Sabotage is the intentional corruption or destruction of data, hardware or software facilities.
A statement failure can be defined as the inability of the database to execute an SQL statement. While running a user program, a transaction might have multiple statements and one of the statements might fail due to various reasons. Typical examples are selecting from a table that does not exist, or trying to do an insert and having the statement fail due to lack of space. Such statement failures normally generate error codes and messages by the application software or the operating system. Recovery from such failures is automatic. Upon detection, the database usually will roll back the statement, returning control to the user or user program. The user can simply re-execute the statement after correcting the problem. Application software errors include logical errors in the program that is accessing the database, which causes one or more transactions to fail.
Network failures can occur while using a client-server configuration or a distributed database system where multiple database servers are connected by communication networks. Network failures such as communication software failures or aborted asynchronous connections will interrupt the normal operations of the database system.
Media failures are the most dangerous failures. Not only there is a potential to lose data if proper backup procedures are not followed, but it usually takes more time to recover than with other kinds of failures. In addition, the DBA’s experience is very important factor in determining the kind of media recovery procedure to use to bring the database up quickly, with little or no data loss. A typical example of a media failure is a disk controller failure or disk head’ crash, which causes all, databases residing on that disk or disks to be lost. Every DBA needs to plan appropriate backup procedures to protect against media failures.
Natural and physical disasters are the damage caused to data, hardware and software due to natural disasters like fires, floods, earthquakes, power failures, etc.