1. Field of the Invention
The field of the invention is data processing, or, more specifically, methods, apparatus, and products for backing up a database.
2. Description of Related Art
The development of the EDVAC computer system of 1948 is often cited as the beginning of the computer era. Since that time, computer systems have evolved into extremely complicated devices. Today's computers are much more sophisticated than early systems such as the EDVAC. The most basic requirements levied upon computer systems, however, remain little changed. A computer system's job is to access, manipulate, and store information. Computer system designers are constantly striving to improve the way in which a computer system can deal with information.
Information stored on a computer system is often organized in a structure called a database. A database is a collection of related data and metadata. Metadata is data that describes other data such as, for example, data statistics. The data of a database is typically grouped into related structures called ‘tables,’ which in turn are organized in rows of individual data elements. The rows are often referred to a ‘records,’ and the individual data elements are referred to as ‘fields’ or ‘columns.’ In this specification generally, therefore, an aggregation of fields is referred to as a ‘record’ or a ‘data structure,’ and an aggregation of records is referred to as a ‘table.’
The metadata of a database typically includes schemas, table indexes, and database statistics. A schema is a structural description of the data in the database. A schema typically defines the columns of a table, the data types of the data contained in each column, which columns to include in an index, and so on. An index is a database structure used to optimize access to the rows in a table. An index is typically smaller than a table because an index is created using one or more columns of the table, and an index is optimized for quick searching, usually via a balanced tree. Database statistics describe the data in tables of a database. Database statistics may describe, for example, the number of records having a particular value for a particular field. As with the data of a database, metadata is often stored in tables of the database.
A computer system typically operates according to computer program instructions in computer programs. A computer program that supports access to information in a database is typically called a database management system or a ‘DBMS.’ A DBMS is computer software that is responsible for helping other computer programs access, manipulate, and save information in a database. A DBMS often utilizes metadata of the database for accessing and manipulating data of the database.
A DBMS typically supports access and management tools to aid users, developers, and other programs in accessing information in a database. One such tool is the structured query language (‘SQL’). SQL is query language for requesting information from a database. Although there is a standard of the American National Standards Institute (‘ANSI’) for SQL, as a practical matter, most versions of SQL tend to include many extensions. Here is an example of a database query expressed in SQL:                select*from stores, transactions        where stores.location=“Rochester”        and stores.storeID=transactions.storeID        
This SQL query accesses information in a database by selecting records from two tables of the database, one table named ‘stores’ and another table named ‘transactions.’ The records selected are those having value ‘Rochester’ in their store location field and transactions for the stores in Rochester. To retrieve the result for this SQL query, the DBMS generates a number of ‘primitive queries,’ each primitive query used to retrieve a portion of the data needed to satisfy the SQL query. In retrieving the data for this SQL query, an SQL engine will first use a primitive query generated by the DBMS to retrieve records from the stores table and then use another primitive query to retrieve records from the transaction table. Records that satisfy the primitive query requirements then are merged in a ‘join’ and returned as a result of the SQL query received by the DBMS.
To guard against loss of data from various causes, power failures, disk drive damage, or even operator error, databases are backed up. ‘Backup’ refers to making copies of data so that these additional copies may be used to restore the original in the event of data loss. Backups are useful primarily to restore a computer to an operational state following a large, disastrous loss of data as well as to restore small numbers of records after accidental deletion or corruption. Backups are typically that last line of defense against data loss, and consequently the least granular and the least convenient to use. A backup system often may contain one or more copies of all data worth saving, and the data storage requirements can be very large. Organizing this storage space and managing the backup process is a complicated undertaking.