DB2 10.5 for Linux, UNIX, and Windows

创建节点配置文件

如果数据库要在分区数据库环境中运行,那么必须创建一个名为 db2nodes.cfg 的节点配置文件。

关于此任务

要启用数据库分区,在启动数据库管理器之前 db2nodes.cfg 文件必须位于实例主目录的 sqllib 子目录中。此文件包含一个实例中所有数据库分区的配置信息,并且它由该实例的所有数据库分区共享。

Windows 注意事项

如果正在 Windows 上使用 DB2® Enterprise Server Edition,那么将在创建实例时创建节点配置文件。您不应尝试手动创建或修改节点配置文件。可使用 db2ncrt 命令来将数据库分区服务器添加至实例。可使用 db2ndrop 命令从实例中删除数据库分区服务器。可使用 db2nchg 命令来修改数据库分区服务器配置,包括将数据库分区服务器从一台计算机移至另一台计算机;更改 TCP/IP 主机名;或选择另一逻辑端口或网络名。

注: 不应该在不是数据库管理器创建的 sqllib 子目录下创建文件或目录,以防止删除实例时丢失数据。但有两个例外情况。如果系统支持存储过程,那么将该存储过程应用程序放入 sqllib 子目录下的 function 子目录中。另一个例外是在已创建用户定义的函数(UDF)的情况下。允许 UDF 可执行程序位于同一个目录中。
对于属于一个实例的每个数据库分区该文件都包含一行。每行的格式如下:
dbpartitionnum hostname [logical-port [netname]]
记号由空格定界。这些变量是:
dbpartitionnum
数据库分区号唯一地定义数据库分区,可在 0999 之间。数据库分区号必须以升序顺序排序。该顺序中可以有间隔。

一旦指定了数据库分区号,就不能对其进行更改。否则,分发映射(它指定数据分布方式)中的信息可能不正确。

如果删除一个数据库分区,那么它的数据库分区号可以再次用于添加的任何新数据库分区。

数据库分区号用于在数据库目录中生成数据库分区名。它的格式为:
NODE nnnn 
nnnn 是数据库分区号,其左边以零填充。CREATE DATABASEDROP DATABASE 命令也使用此数据库分区号。
hostname
用于分区间通信的 IP 地址的主机名。对主机名使用标准名称。/etc/hosts 文件也应该使用标准名称。如果未在 db2nodes.cfg 文件和 /etc/hosts 文件中使用标准名称,那么可能接收到错误消息“SQL30082N RC=3”。

(指定 netname 时例外。在这种情况下,netname 用于大多数通信,而 host 名称仅用于 db2startdb2stopdb2_all。)

logical-port
此参数是可选的,它指定该数据库分区的逻辑端口号。此号码与数据库管理器实例名一起用来标识 etc/services 文件中的 TCP/IP 服务名称条目。

IP 地址和逻辑端口的组合被用作熟知地址,且在所有支持数据库分区间通信连接的应用程序中必须是唯一的。

对于每个主机名,一个逻辑端口必须为 0(零)或空白(缺省为 0)。与此逻辑端口相关联的数据库分区是与客户机连接的主机上的缺省节点。可以使用 db2profile 脚本中的 DB2NODE 环境变量或 sqlesetc() API 来覆盖此行为。

netname
此参数是可选的,并且用于支持有多个活动 TCP/IP 接口的主机,每个接口有其自己的主机名。

以下示例显示了一个系统的可能节点配置文件,在该系统上,SP2EN1 有多个 TCP/IP 接口和两个逻辑分区,并且使用 SP2SW1 作为 DB2 数据库接口。此示例还显示了从 1 开始(而不是从 0 开始)的数据库分区号以及 dbpartitionnum 序列中的间隙:

表 1. 数据库分区号示例表。
dbpartitionnum hostname logical-port netname
1 SP2EN1.mach1.xxx.com 0 SP2SW1
2 SP2EN1.mach1.xxx.com 1 SP2SW1
4 SP2EN2.mach1.xxx.com 0  
5 SP2EN3.mach1.xxx.com    

可以使用选择的编辑器更新 db2nodes.cfg 文件。(例外情况:不应在 Windows 上使用编辑器)。但是,必须小心保护此文件中的信息的完整性,这是因为数据库分区功能要求您发出 START DBM 时将节点配置文件锁定,而在发出 STOP DBM 结束数据库管理器之后将其解锁。将此文件锁定之后,START DBM 命令就可以在必要时对其进行更新。例如,您可以发出 START DBM 并指定 RESTART 选项或 ADD DBPARTITIONNUM 选项。

注: 如果 STOP DBM 命令未成功并且未将节点配置文件解锁,请发出 STOP DBM FORCE 将其解锁。