|按照用户提供的配置文件中指定的那样,对数据库重命名或者重定位数据库或数据库的一部分(例如,容器和日志目录)。此工具对 |DB2 实例和数据库支持文件执行必需的更改。
|权限
|无
|必需的连接
|无
|命令语法
|>>-db2relocatedb---f--configFilename--------------------------->< | |
|命令参数 |
| 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 | ...
|其中: |
|示例
|示例 1
|要将驻留在路径 /home/db2inst1 上的实例 |DB2INST1 中的数据库名从 TESTDB 更改为 PRODDB,应创建以下配置文件:
| DB_NAME=TESTDB,PRODDB | DB_PATH=/home/db2inst1 | INSTANCE=db2inst1 | NODENUM=0
|将该配置文件另存为 relocate.cfg,并使用以下命令来对数据库文件执行更改:
|db2relocatedb -f relocate.cfg
|示例 2
|要将数据库 DATAB1 从路径 /dbpath 上的实例 |JSMITH 移至实例 PRODINST,执行下列操作:
| DB_NAME=DATAB1 | DB_PATH=/dbpath | INSTANCE=jsmith,prodinst | NODENUM=0|
|示例 3
|数据库 PRODDB 存在于路径 /databases/PRODDB 上的实例 INST1 |中。需要按如下所示来更改两个表空间容器的位置:
|在将物理目录和文件移至新位置之后,可以将以下配置文件与 |db2relocatedb 命令配合使用,来对数据库文件执行更改,以便使它们识别新位置:
| DB_NAME=PRODDB | DB_PATH=/databases/PRODDB | INSTANCE=inst1 | NODENUM=0 | CONT_PATH=/data/SMS1,/DATA/NewSMS1 | CONT_PATH=/data/DMS1,/DATA/DMS1
|示例 4
|数据库 TESTDB 存在于实例 DB2INST1 中,并且是在路径 /databases/TESTDB |上创建的。然后利用下列容器来创建表空间:
| TS1 | TS2_Cont0 | TS2_Cont1 | /databases/TESTDB/TS3_Cont0 | /databases/TESTDB/TS4/Cont0 | /Data/TS5_Cont0 | /dev/rTS5_Cont1
|TESTDB 将移到新系统上。新系统上的实例将为 NEWINST,并且数据库的位置将为 /DB2。
|移动数据库时,必须将存在于 /databases/TESTDB/db2inst1 目录中的所有文件移至 /DB2/newinst |目录。这意味着前 5 个容器将作为此移动操作的一部分重定位。(前 3 个容器与数据库目录有关,后 |2 个容器与数据库路径有关。)由于这些容器位于数据库目录或数据库路径中,所以不需要在配置文件中列示它们。如果要将其余 |2 个容器移到新系统上的不同位置,则必须在配置文件中列示它们。
|在将物理目录和文件移至它们的新位置之后,可以将以下配置文件与 |db2relocatedb 配合使用,来执行对数据库文件的更改,以便使它们识别新位置:
| 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
|示例 5
|数据库 TESTDB 在节点 10 和 20 上有两个分区。在这两个节点上,实例为 SERVINST,数据库路径为 |/home/servinst。在这两个节点上,数据库的名称更改为 SERVDB,而数据库路径更改为 |/databases。另外,在节点 20 上,已将日志目录从 /testdb_logdir 更改为 |/servdb_logdir。
|由于更改是同时对两个节点进行的,所以必须为每个节点创建配置文件,并且必须对每个节点使用相应的配置文件运行 |db2relocatedb。
|在节点 10 上,将使用以下配置文件:
| DB_NAME=TESTDB,SERVDB | DB_PATH=/home/servinst,/databases | INSTANCE=servinst | NODE_NUM=10
|在节点 20 上,将使用以下配置文件:
| DB_NAME=TESTDB,SERVDB | DB_PATH=/home/servinst,/databases | INSTANCE=servinst | NODE_NUM=20 | LOG_DIR=/testdb_logdir,/servdb_logdir
|使用说明
|如果数据库所属的实例发生更改,则在运行此命令之前必须执行下列操作,以确保将执行对实例和数据库支持文件的更改:
|如果实例发生更改,则必须由新实例所有者来运行该工具。
|在 EEE 环境中,必须对需要更改的每个节点运行此工具。必须为每个节点提供单独的配置文件,并且该配置文件包含要更改的节点的 |NODENUM 值。例如,如果更改数据库的名称,则每个节点都会受到影响,并且必须对每个节点使用单独的配置文件来运行 |db2relocatedb 命令。如果容器属于被移动的单个节点,则只需要在该节点上运行一次 db2relocatedb 命令。
|另见
|有关更多信息,参见 Command Reference 中的 |db2inidb — 初始化镜像数据库命令。