发行说明


|14.3 db2relocatedb(新命令)

|db2relocatedb — 重定位数据库

|按照用户提供的配置文件中指定的那样,对数据库重命名或者重定位数据库或数据库的一部分(例如,容器和日志目录)。此工具对 |DB2 实例和数据库支持文件执行必需的更改。

|权限

|

|必需的连接

|

|命令语法

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

|命令参数 |

|-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
|   ...

|其中: |

|DB_NAME
|指定重定位的数据库的名称。如果更改了数据库名,则必须同时指定旧名称和新名称。这是必需的字段。

|DB_PATH
|指定重定位的数据库的路径。这是最初创建该数据库的路径。如果数据库路径发生更改,则必须同时指定旧路径和新路径。这是必需的字段。

|INSTANCE
|指定数据库所在的实例。如果将数据库移至新实例,则必须同时指定旧实例和新实例。这是必需的字段。

|NODENUM
|指定正在更改的数据库节点的节点号。缺省值为 0。

|LOG_DIR
|指定日志路径的位置中的更改。如果日志路径发生更改,则必须同时指定旧路径和新路径。如果日志路径驻留在数据库路径中,则此规范是可选的,原因是这种情况下路径是自动更新的。

|CONT_PATH
|指定表空间容器的位置中的更改。必须同时指定旧的和新的容器路径。如果要更改多个容器路径,可以提供多个 |CONT_PATH 行。如果容器路径驻留在数据库路径中,则此规范是可选的,原因是这种情况下路径是自动更新的。 |
|注意:
将忽略以注释字符(#)开头的一个或多个空白行。 |
|

|示例

|示例 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,执行下列操作:

  1. |将目录 /dbpath/jsmith 中的文件移至 /dbpath/prodinst
  2. |将以下配置文件与 db2relocatedb 命令配合使用,来对数据库文件执行更改:
    |   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 — 初始化镜像数据库命令。


[ 页的顶部 | 上一页 | 下一页 | 目录 | 索引 ]