Restoring Db2 from an offline backup
If you created an offline backup, you can use a provided script file to restore Db2 backup images (including different form factor or version), or you can use restore commands when you are restoring from a Db2 backup in IBM Software Hub at a similar version.
Restoring Db2 from an offline backup by using the restore script
You can use a provided script file to restore Db2 backup images, with or without encryption.
The restore script can restore the following backups:
- An encrypted backup
- An unencrypted backup
- An external Db2 database from the same or different form factor (such as a bare metal Db2 deployment within the same platform family)
- The backup from an earlier Db2 version
The following sections provide usage information for the db_restore_extdb.sh script, and details on using the script to restore with different options.
Syntax
Options
- --bkp-dir directory
- Specifies the directory where the backup images are located. Choose this option or the --bkp-tar option.
- --bkp-tar filename
- Specifies a .tar file that contains the backup images.
- --bkp-timestamp timestamp
- The timestamp of the backup image to use for the restore.
- --dbname dbname
- The name of the database to use when you restore the backup image.
- --dblist
- A comma-separated list of database names to use when you restore the backup image.
- --keystore-dir directory
-
The directory that contains the backup native encryption keystore. This directory must contain only the keystore files. Choose this option or the --keystore-tar option.
- --drop-default-db
- Drops the existing databases.
- --replace
- Replaces the existing database.
- --keystore-tar
- Specifies a .tar file that contains the backup native encryption keystore.
- --cleanup
- Specifies to clean up all backup images.
- --verbose
- Use this flag to view explicit commands that the script is performing or to view errors.
- --help
- Use this flag to display help for the tool.
Restoring an encrypted backup
To restore an encrypted backup, follow these steps:
- Save the Db2 database backup images and the native encryption keystore in a single location. For example, /mnt/blumeta0/db2/backup/db2ubkp, which is equivalent to ${BACKUPDIR}/db2ubkp.
- The Db2 instance owner or group must have read/write access to the backup
directory where the backup images and keystore files are saved. You can set the required mode-bits
and permissions by running the following
command:
chmod 755 ${BACKUPDIR}/db2ubkp chown db2inst1:db2iadm1 ${BACKUPDIR}/db2ubkp - Run the following command to restore the
backup:
db_restore_extdb --bkp-dir ${BACKUPDIR}/db2ubkp --dbname dbname --bkp-timestamp timestamp --replace --keystore-dir ${BACKUPDIR}/db2ubkpReplace dbname with the case-sensitive database name, and timestamp with the timestamp of the backup image. You can obtain the output log for the restore command by running
cat ${SUPPORTDIR}/db_restore_extdb.log.Note: If your backup was copied from a different instance or remote cluster, you must use the--drop-default-databaseparameter, instead of the--replaceparameter.
Restoring an unencrypted backup
To restore an unencrypted backup, follow these steps:
- Save the Db2 database backup images in a single location. For example, /mnt/blumeta0/db2/backup/db2ubkp, which is equivalent to ${BACKUPDIR}/db2ubkp.
- The Db2 instance owner or group must have read/write access to the backup
directory where the backup images and keystore files are saved. You can set the required mode-bits
and permissions by running the following
command:
chmod 755 ${BACKUPDIR}/db2ubkp chown db2inst1:db2iadm1 ${BACKUPDIR}/db2ubkp - Run the following command to restore the
backup:
db_restore_extdb --bkp-dir ${BACKUPDIR}/db2ubkp --dbname dbname --bkp-timestamp timestamp --replaceReplace dbname with the case-sensitive database name, and timestamp with the timestamp of the backup image. You can obtain the output log for the restore command by running
cat ${SUPPORTDIR}/db_restore_extdb.log.
Restoring an external database
The backup image (and keystore, if encrypted) can also be restored from an external source. For example, you might want to reinitialize Db2 by using a database from an on-premises deployment.
You can use the --dbname dbname option to set the database name to the same as the source in this scenario.
Restoring Db2 by using commands
This process restores a database that was backed up by using the db2 backup command. The restored database starts back in the same state that it was in when the backup was made.
Before you begin
- You must have an existing Db2 backup that is accessible on the IBM Cloud Pak for Data System.
- You must identify the Db2 catalog node and data nodes and have an SSH connection open to each node.
About this task
The restore script is the preferred strategy to restore because it provides:
- A simple flow.
- A restore strategy for full offline backup images.
- Native support for restoring encrypted databases.
The commands in this procedure are illustrative only and are only applicable when you are restoring from a Db2 backup in IBM Software Hub at a similar version. Further commands are required for restoring an encrypted database. For most restore operations, the best practice is to use the procedure in Restoring Db2 from an offline backup by using the restore script.
For a Db2 deployment, the db2 restore command can be started only from the catalog node, but each available multiple logical node (MLN) participates in the restore operation.
