Restoring Db2 from an offline backup 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:
- 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}/db2ubkp
Replace 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-database
parameter, instead of the--replace
parameter.
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 --replace
Replace 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.