Here I will run down a simulation of backing up and restoring the database under different name in separate DB2 instance resides within same physical machine. Similar scenario might be to replicate databases for development, testing and production.
First, Fire up the Command Window (db2cmd)
Create the Development instance:
Start the DEV instance
Create the sample database
CREATE DB DEVDB
Check out the list of tablespaces in the database, this is important when later you need to redirect the creation of tablespace containers.
db2 connect to DEVDB
db2 list tablespaces
Backup the sample DEVDB database. This will create a folder DEVDB.0 under C:
db2 BACKUP DB DEVDB TO C:
Create the Production instance:
Start the PROD instance
Restore the backup DEVDB under C: to PRODDB in PROD instance.
db2 restore db DEVDB FROM C: INTO PRODDB redirect
db2 set tablespace containers for 0 using (path 'C:\container\tspace00c1')
db2 set tablespace containers for 1 using (path 'C:\container\tspace01c1')
db2 set tablespace containers for 2 using (path 'C:\container\tspace02c1')
db2 restore db DEVDB continue
Try to connect to the new PRODDB restored from DEVDB
db2 connect to PRODDB
The trick here is to specify a separate set of container paths for Restore DB command. This will depends on number of tablespaces used by your DB. Default is only 3 tablespaces: SYS, TEMP and USER.
To clean up the simulation, do the following:
Manually remove C:\DEV, C:\PROD, C:\DEVDB.0 and C:\container