WEB开发网
开发学院数据库DB2 在Linux上利用数据分区功能提高可伸缩性和性能 阅读

在Linux上利用数据分区功能提高可伸缩性和性能

 2009-12-23 15:00:13 来源:WEB开发网   
核心提示:分区映射在分区数据库环境中,数据库管理器必须有方法知道表的哪些行存储在哪个数据库分区上,在Linux上利用数据分区功能提高可伸缩性和性能(13),以便发现它需要的数据,数据库管理器使用一个称作分区映射的映射来发现数据,db2_all ";db2 update db cfg for SAMPLE using N

分区映射

在分区数据库环境中,数据库管理器必须有方法知道表的哪些行存储在哪个数据库分区上,以便发现它需要的数据。数据库管理器使用一个称作分区映射的映射来发现数据。

分区映射是内部生成的数组,对于多分区的数据库分区组,这个数组包含 4,096 个条目,对于单分区的数据库分区组,这个数组只包含一个条目。

对于单分区的数据库分区组,分区映射只有一个条目,其中包含数据库表中所有的行所在的数据库分区的分区号。对于多分区数据库分区组,数据库分区组中的分区号是以循环的方式指定的。就像城市地图按网格分成一些区一样,数据库管理器使用分区键来确定数据所存储在的位置(数据库分区)。

例如,假设您在 5 个数据库分区(分区号为 0-4)上有一个数据库。那么,这个数据库的 IBMDEFAULTGROUP 数据库分区组的分区映射为:

0 1 2 3 4 0 1 2 3 4 0 1 2...

如果在使用数据库分区 1 和 2 的数据库中创建了一个数据库分区组,那么这个数据库分区组的分区映射为:

1 2 1 2 1 2 1 2...

如果数据库中所装载的表的分区键是 1 到 500,000 之间的整数,则分区键被散列到 0 到 4 095 之间的一个分区号。这个号码将用于作为分区映射的一个索引,以选择那一行所在的数据库分区。

分区映射是在分区数据库中控制数据存储位置的一种灵活的方式。另外还有一种再分配(redistribution)实用程序,通过它可以改变数据在数据库中的数据库分区上的分布(使之平衡或偏斜),不过这超出了本文的范围。

DB2NODE 环境变量

DB2NODE 环境变量用于指定想要连接到的目标逻辑分区。如果没有设置该变量,那么它将默认地等于用机器上的端口 0 定义的那个分区(在 db2nodes.cfg 文件中)。

如果要连接到逻辑分区 2,那么可以输入以下命令:

DB2NODE=2

export DB2NODE

db2 terminate

为了确保更改生效,必须用 terminate 命令。

为了识别当前活动逻辑节点,可以发出以下命令:

db2 "values (current dbpartitionnum)"

发出横跨多个机器和分区的命令

这两个工具使跨所有机器或所有分区执行命令变得容易。两个工具使用相同的一组有用的选项,这些选项可以在 DB2 Command Window 中通过 "rah ?" 或 "db2_all ?" 命令显示出来。

db2_all

db2_all 用于在所有指定的分区上运行命令。

db2_all ";db2 update db cfg for SAMPLE using NEWLOGPATH /db2_db/logs"

分号用于作为一个前缀,表明该命令将在各分区上并发地运行。

rah

rah 用于在组成分区环境的所有机器上运行一个命令。

上一页  8 9 10 11 12 13 14  下一页

Tags:Linux 利用 数据

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接