Before anyone can reasonably discuss the importance of data and database availability, it is necessary to first have a good definition of availability. After all, we should know what we are talking about. Simply stated, availability is the condition wherein a given resource can be accessed by its consumers. So in terms of databases, availability means that if a database is available, the users of its data—that is, applications, customers, and business users—can access it. Any condition that renders the resource inaccessible causes the opposite of availability: unavailability.
Another perspective on defining availability is the percentage of time that a system can be used for productive work. The required availability of an application will vary from organization to organization, within an organization from system to system, and even from user to user.
Database availability and database performance are terms that are often confused with one another, and indeed, there are similarities between the two. The major difference lies in the user’s ability to access the database. It is possible to access a database suffering from poor performance, but it is not possible to access a database that is unavailable. So, when does poor performance turn into unavailability? If performance suffers to such a great degree that the users of the database cannot perform their job, the database has become, for all intents and purposes, unavailable. Nonetheless, keep in mind that availability and performance are different and must be treated by the DBA as separate issues—even though a severe performance problem is a potential availability problem.
Availability comprises four distinct components, which, in combination, assure that systems are running and business can be conducted:
- Manageability—the ability to create and maintain an effective environment that delivers service to users
- Recoverability—the ability to reestablish service in the event of an error or component failure
- Reliability—the ability to deliver service at specified levels for a stated period
- Serviceability—the ability to determine the existence of problems, diagnose their cause(s), and repair the problems.
All four of these “abilities” impact the overall availability of a system, database, or application.