Version recovery using the BACKUP command in conjunction with the RESTORE command puts the database in a state that has been previously saved. You use this recovery method with non-recoverable databases (that is, databases for which you do not have archived logs).
In this section, planning considerations and how to invoke the specific utilities or commands to carry out the method are reviewed. Then, any concepts or related issues that allow effective use of this method are presented.
The following topics provide additional information:
To make a backup copy of the database, you use the BACKUP command or the Control Center. Within the Control Center, you select the database to be backed up and then select the backup action.
Figure 29. Creating a Database Image
In a partitioned database system, you back up database partitions individually using the BACKUP DATABASE command. The operation is local to the database partition server where you issue the command. You can, however, issue db2_all from one of the database partition servers in the instance to submit the backup command on a list of servers, which you identify by their node number. If you do this, you must back up the catalog node first, then back up the other database partitions. You can also use the Control Center to backup database partitions.
In a partitioned database system, you can use the LIST NODES command to determine the list of nodes (database partition servers) that have user tables on them. Because this recovery method does not support roll-forward recovery, regularly back up the database on this list of nodes.
You must keep in mind the recovery method to be used. The following sections provide requirements and other considerations that apply to this task:
Your planning considerations should include:
Under OS/2, you can also back up to diskette or to a user exit.
|Note:||In OS/2, when backing up a database online to a user exit, note that the database will be quiesced before the backup starts. As such, the backup will wait for all transactions to either commit or rollback before it starts. While the backup is running, all new transactions will wait until the backup is complete, and, once the backup is completed, all transactions will continue processing as usual.|
Under UNIX-based operating systems and Windows NT, native tape support is available.
|Note:||If you use a variable block size with your tape devices, ensure that the DB2 buffer size is either less than or equal to the maximum variable block size that the device is configured for. Otherwise, the backup will succeed but the resulting image is not guaranteed to be recoverable.|
If you have tables that contain DATALINK columns, also see "Backup Utility Considerations".
The following considerations are useful when running the BACKUP command:
Using this parameter can dramatically reduce the amount of time required to complete the backup. The PARALLELISM parameter defines the number of processes or threads that are started to read data from the database. Each process or thread is assigned to back up a specific table space. When it completes backing up the table space, it requests another. You should note, however, that each process or thread requires both memory and CPU overhead: for a heavily loaded system, you should leave the PARALLELISM parameter at its default value of 1.
If you use multiple buffers and I/O channels, you should use at least twice as many buffers as channels to ensure that the channels do not have to wait for data. The size of the buffers used will also contribute to the performance of the backup operation. The ideal backup buffer size should be a multiple of the extent size for the table space(s).
If you have multiple table spaces with different extent sizes, specify a value that is a multiple of the largest extent size.
You may specify the number of pages to use for each backup buffer when you invoke the BACKUP command. The minimum number of pages is 16. If you do not specify the number of pages, each buffer will be allocated based on the database manager configuration parameter backbufsz. If there is not enough memory available to allocate the buffer, an error will be returned.
For details about the configuration parameter, see "Default Backup Buffer Size (backbufsz)".
See Appendix B. "Planning Database Migration", for information about migrating a database.
If an error occurs during a backup process and the open container cannot be closed, other backup processes to the same target drive may receive access errors. To correct any access errors, you must completely exit the backup process that caused the error and disconnect from the target device.
Backup images are created at the target specified when you call the BACKUP command:
The recovery history file is updated automatically with summary information whenever you carry out a backup or restore of a full database. This file can be a useful tracking mechanism for restore activity within a database. This file is created in the same directory as the database configuration file. For more information on the recovery history file, see "Recovery History File Information".
In UNIX-based environments, the file name(s) created on disk will consist of a concatenation of the following information, separated by periods; on other platforms a four-level subdirectory tree is used:
yyyy is the year (1995 to 9999) mm is the month (01 to 12) dd is the day of the month (01 to 31) hh is the hour (00 to 23) nn is the minutes (00 to 59) ss is the seconds (00 to 59)
In UNIX-based operating systems, the format would appear as:
Database alias.Type.Instance name.nodennnn.catnnnnn.timestamp.number
On other operating systems, the format would appear as:
Database alias.Type\Instance name.nodennn\catnnnn\yyyymmdd\hhmmss.number
For example in UNIX-based environments, a database named STAFF on the DB201 instance may be backed up on disk to a file named:
For tape-directed output, file names are not created; however, the above information is stored in the backup header for later verification purposes.
The following sections provide requirements and other considerations that apply to the RESTORE command:
Figure 30. Restoring a Database Using a Backup Image
You should consider the following:
If you have tables that contain DATALINK columns, see both "Restore and Rollforward Utility Considerations" and "Restoring Databases from an Offline Backup without Rolling Forward".
The following considerations are useful when running the RESTORE command:
You may specify the number of pages to use for each restore buffer when you invoke the RESTORE command. The value you specify must be a multiple of the number of pages that you specified for the backup buffer. The minimum number of pages is 16. If you do not specify the number of pages, each buffer will be allocated based on the database manager configuration parameter restbufsz. If there is not enough memory available to allocate the buffer, an error will be returned.
For details about the configuration parameter, see "Default Restore Buffer Size (restbufsz)".
You can also specify a partial timestamp. For example, assume that you have two different backups with the timestamps 19971001010101 and 19971002010101. If you specify 19971002 for TAKEN AT, the 19971002010101 backup is used.
If you use ADSM and do not specify the TAKEN AT parameter, ADSM retrieves the latest backup copy.
Under OS/2, the backup copy of the database could also be located on diskette or through a user exit.
Under Windows 95 and Windows NT, the backup copy of the database could also be located on diskette.
The syntax for this utility is:
db2resdb <dbname> <source drive> <target drive>
dbname = The name of the database which was backed up source drive = The drive letter where the backup resides target drive = The drive letter where the database is to be created
During a backup of a database, a record is kept of all the table space containers in use by the table spaces that are backed up. During a RESTORE, all containers listed in the backup are checked to see if they currently exist and are accessible. If one or more of the containers is inaccessible because of a media failure (or for any other reason), the RESTORE will fail. In order to allow a restore in such a case, the redirecting of table space containers is supported during the RESTORE. This support includes adding, changing, or removing of table space containers.
There are cases in which you want to restore even though the containers listed in the backup do not exist on the system. An example of such a case is where you wish to recover from a disaster on a system other than that from which the backup was taken. The new system may not have the necessary containers defined. In order to allow a RESTORE in this case, the redirecting of table space containers at the time of the RESTORE to alternate containers is supported.
In both situations, this type of RESTORE is commonly referred to as a redirected restore.
You can redefine table space containers through the restore task from within the Control Center. You can also use the REDIRECT parameter of the RESTORE command to specify the redirection. If you are using the Control Center, one way of performing a redirected restore is to use the Containers page of the Restore Database notebook. This page provides function that you can use to add new containers, change the path of an existing container, or remove a container. If, during the process of the restore database operation an invalid container path is detected, the Control Center will prompt you to either change the container path, or remove the container.
You may restore a backup copy of a full database backup to an existing database. To restore to an existing database, you must have SYSADM, SYSCTRL, or SYSMAINT authority. The backup image may differ from the existing database in its alias name, its database name, or its database seed.
A database seed is a unique identifier of a database that remains constant for the life of the database. This seed is assigned by the database manager when the database is first created. The seed is unchanged following a restore of a backup even if the backup has a different database seed. DB2 always uses the seed from the backup.
When restoring to an existing database, the restore task performs the following functions:
As an alternative to restoring a database to a database that already exists, you may create a new database and then restore the backup of the data. To restore to a new database, you must have SYSADM or SYSCTRL authority.
|Note:||The code pages of the backup and the target database must match. If they do not, first create the new database specifying the correct code page, then restore it.|
When you restore to a new database, the RESTORE command will perform the following functions:
[ DB2 List of Books | Search the DB2 Books ]