Release Notes


12.7 db2relocatedb (new command)

db2relocatedb - Relocate Database

Renames a database, or relocates a database or part of a database (e.g., container, log directory) as specified in the configuration file provided by the user. This tool makes the necessary changes to the DB2 instance and database support files.

Authorization

None

Required Connection

None

Command Syntax

>>-db2relocatedb---f--configFilename---------------------------><
 
 

Command Parameters

-f configFilename
Specifies the name of the file containing configuration information necessary for relocating the database. This can be a relative or absolute filename. The format of the configuration file is:
   DB_NAME=oldName,newName
   DB_PATH=oldPath,newPath
   INSTANCE=oldInst,newInst
   NODENUM=nodeNumber
   LOG_DIR=oldDirPath,newDirPath
   CONT_PATH=oldContPath1,newContPath1
   CONT_PATH=oldContPath2,newContPath2
   ...

Where:

DB_NAME
Specifies the name of the database being relocated. If the database name is being changed, both the old name and the new name must be specified. This is a required field.

DB_PATH
Specifies the path of the database being relocated. This is the path where the database was originally created. If the database path is changing, both the old path and new path must be specified. This is a required field.

INSTANCE
Specifies the instance where the database exists. If the database is being moved to a new instance, both the old instance and new instance must be specified. This is a required field.

NODENUM
Specifies the node number for the database node being changed. The default is 0.

LOG_DIR
Specifies a change in the location of the log path. If the log path is being changed, then both the old path and new path must be specified. This specification is optional if the log path resides under the database path, in which case the path is updated automatically.

CONT_PATH
Specifies a change in the location of table space containers. Both the old and new container path must be specified. Multiple CONT_PATH lines can be provided if there are multiple container path changes to be made. This specification is optional if the container paths reside under the database path, in which case the paths are updated automatically.
Note:
Blank lines or lines beginning with a comment character (#) will be ignored.

Examples

Example 1

To change the name of the database TESTDB to PRODDB in the instance DB2INST1 that resides on the path /home/db2inst1, create the following configuration file:

 
   DB_NAME=TESTDB,PRODDB
   DB_PATH=/home/db2inst1
   INSTANCE=db2inst1
   NODENUM=0

Save the configuration file as relocate.cfg and use the following command to make the changes to the database files:

db2relocatedb -f relocate.cfg

Example 2

To move the database DATAB1 from the instance JSMITH on the path /dbpath to the instance PRODINST do the following:

  1. Move the files in the directory /dbpath/jsmith to /dbpath/prodinst.
  2. Use the following configuration file with the db2relocatedb command to make the changes to the database files:
       DB_NAME=DATAB1
       DB_PATH=/dbpath
       INSTANCE=jsmith,prodinst
       NODENUM=0
    

Example 3

The database PRODDB exists in the instance INST1 on the path /databases/PRODDB. The location of two tablespace containers needs to be changed as follows:

After the physical directories and files have been moved to the new locations, the following configuration file can be used with the db2relocatedb command to make changes to the database files so that they recognize the new locations:

   DB_NAME=PRODDB
   DB_PATH=/databases/PRODDB
   INSTANCE=inst1
   NODENUM=0
   CONT_PATH=/data/SMS1,/DATA/NewSMS1
   CONT_PATH=/data/DMS1,/DATA/DMS1

Example 4

The database TESTDB exists in the instance DB2INST1 and was created on the path /databases/TESTDB. Table spaces were then created with the following containers:

   TS1
   TS2_Cont0
   TS2_Cont1
   /databases/TESTDB/TS3_Cont0
   /databases/TESTDB/TS4/Cont0
   /Data/TS5_Cont0
   /dev/rTS5_Cont1

TESTDB is to be moved to a new system. The instance on the new system will be NEWINST and the location of the database will be /DB2.

When moving the database, all of the files that exist in the /databases/TESTDB/db2inst1 directory must be moved to the /DB2/newinst directory. This means that the first 5 containers will be relocated as part of this move. (The first 3 are relative to the database directory and the next 2 are relative to the database path.) Since these containers are located within the database directory or database path, they do not need to be listed in the configuration file. If the 2 remaining containers are to be moved to different locations on the new system, they must be listed in the configuration file.

After the physical directories and files have been moved to their new locations, the following configuration file can be used with db2relocatedb to make changes to the database files so that they recognize the new locations:

   DB_NAME=TESTDB
   DB_PATH=/databases/TESTDB,/DB2
   INSTANCE=db2inst1,newinst
   NODENUM=0
   CONT_PATH=/Data/TS5_Cont0,/DB2/TESTDB/TS5_Cont0
   CONT_PATH=/dev/rTS5_Cont1,/dev/rTESTDB_TS5_Cont1

Example 5

The database TESTDB has 2 partitions on nodes 10 and 20. The instance is SERVINST and the database path is /home/servinst on both nodes. The name of the database is being changed to SERVDB and the database path is being changed to /databases on both nodes. In addition, the log directory is being changed on node 20 from /testdb_logdir to /servdb_logdir.

Since changes are being made to both nodes, a configuration file must be created for each node and db2relocatedb must be run on each node with the corresponding configuration file.

On node 10, the following configuration file will be used:

   DB_NAME=TESTDB,SERVDB
   DB_PATH=/home/servinst,/databases
   INSTANCE=servinst
   NODE_NUM=10

On node 20, the following configuration file will be used:

   DB_NAME=TESTDB,SERVDB
   DB_PATH=/home/servinst,/databases
   INSTANCE=servinst
   NODE_NUM=20
   LOG_DIR=/testdb_logdir,/servdb_logdir

Usage Notes

If the instance that a database belongs to is changing, the following must be done before running this command to ensure that changes to the instance and database support files will be made:

If the instance is changing, the tool must be run by the new instance owner.

In a EEE environment, this tool must be run against every node that requires changes. A separate configuration file must be supplied for each node, that includes the NODENUM value of the node being changed. For example, if the name of a database is being changed, every node will be affected and the db2relocatedb command must be run with a separate configuration file on each node. If containers belonging to a single node are being moved, the db2relocatedb command only needs to be run once on that node.

See Also

For more information, see the db2inidb - Initialize a Mirrored Database command in the Command Reference.


[ Top of Page | Previous Page | Next Page | Table of Contents | Index ]