DB2 UDB log file prefetching
Original Publication Date: 2005-Apr-11
Included in the Prior Art Database: 2005-Apr-11
Downtimes of operational, productive databases are very expensive. Thus, if necessary, database restore and recovery have to be as fast as possible. DB2* UDB log file prefetching will help to increase the databases recovery performance by minimizing the overhead of establishing connections of the DB2* Log Manager to external storage and to guarantee a continuos running recovery process. The whole process is triggered by an application, called 'Log Prefetcher', which retrieves logs in advance from external storage and places them into a so called 'log pool'. The database recovery process will be kicked off from the Log Prefetcher if a sufficient set of logs is already retrieved.
DB DBDB DB2222 UDB log file prefetchingUDB log file prefetchingUDB log file prefetching
UDB log file prefetching
Summary of Invention: A program is disclosed that is used to retrieve transaction logs from external storage in advance (log file prefetching) to provide them for the process who applies it to the tablespaces of the database. The applying process hasn't to wait for the logs anymore. One can say, the logs will be available to apply immediately, when they are needed! This log retrieve prefetch is running until the point in time is reached, to which the database has to be recovered to.
A prerequisite for a DB2* database recovery in any case is a successful finished restore of the database. During a database restore also DB2* files containing some meta data will be restored beside of the databases data . These files are always part of DB2* backup images. One of these files is the so called DB2 * history file . This file contains information about database backup and restore, tablespace and table activities and with DB2* version 8.2 also information concerning archived database log files.
The Log Prefetcher is an application. As illustrated in the following figure, the starting point for the improved DB2* recovery is this application (arrows with lines are communication paths, arrows with broken lines are data paths ).
After started the application it checks for the first DB 2* log number, which would be applied first by the DB2* Log Manager. These information can be gathered from the DB2* history file mentioned above (DB2* UDB v8.2 and up) or a 'rollforward
query' command can be issued first for collecting the required information .
If the required information collected, the application starts the first worker...