Restoring Db2 from an offline backup using the restore script
Upgrade to IBM Software Hub Version 5.1 before IBM Cloud Pak for Data Version 4.7 reaches end of support. For more information, see Upgrading IBM Software Hub in the IBM Software Hub Version 5.1 documentation.
You can use a provided script file to restore Db2 backup images, with or without encryption.
The restore script can restore:
- 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 restoring the backup image.
- --dblist
- A comma-separated list of database names to use when restoring 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/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 issue a 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/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 issue a 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 re-initialize 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.
