DB2 V9.7 for Linux, UNIX, and Windows

配置和设置 DMS 直接磁盘访问(Linux)

使用容器来存储数据时,数据库管理器支持使用块设备接口(即原始 I/O)直接访问磁盘(原始)。

关于此任务

在 Linux 环境中工作时应使用下列信息。在 Linux/390 上,数据库管理器不支持直接磁盘访问设备。

要在 Linux 上配置原始 I/O:

在本示例中,要使用的原始数据库分区是 /dev/sda5。它应该不包含任何有用的数据。

  1. 计算此数据库分区中的页数(每页 4096 字节),必要时四舍五入。例如:
    # fdisk /dev/sda
      Command (m for help): p
    
      Disk /dev/sda: 255 heads, 63 sectors, 1106 cylinders
      Units = cylinders of 16065 * 512 bytes
    表 1. Linux 原始 I/O 计算。
    设备引导 开始 结束 标识 系统
    /dev/sda1 1 523 4200997 83 Linux
    /dev/sda2 524 1106 4682947+ 5 扩展
    /dev/sda5 524 1106 4682947 83 Linux
      Command (m for help): q
    # 
    /dev/sda5 中的页数是:
    num_pages = floor( (4682947 * 1024)/4096 )
    num_pages = 1170736
  2. 通过指定磁盘分区名来创建表空间。例如:
    CREATE TABLESPACE dms1
    MANAGED BY DATABASE
    USING (DEVICE '/dev/sda5' 1170736)
  3. 要通过使用联结点(或卷安装点)来指定逻辑分区,将 RAW 分区作为联结点安装到另一个 NTFS 格式的卷上,然后将 NTFS 卷上联结点的路径指定为容器路径。例如:
    CREATE TABLESPACE TS4
       MANAGED BY DATABASE USING (DEVICE 'C:\JUNCTION\DISK_1' 10000,
          DEVICE 'C:\JUNCTION\DISK_2' 10000)
    数据库管理器首先查询分区以了解其中是否存在文件系统 R;如果存在,那么不将该分区视为原始设备,并在该分区上执行一般文件系统 I/O 操作。

数据库管理器所支持的所有其他页大小也支持原始设备上的表空间。

在 V9 以前,使用 Linux 上的原始控制器实用程序来直接访问磁盘。现在,不推荐使用此方法,也不鼓励使用此方法。如果 Linux 操作系统仍支持此方法,那么数据库管理器就会仍允许使用它,但是,在 db2diag 日志文件中将有一条消息指示已不推荐使用该方法。

上一种方法要求将磁盘分区与原始控制器“绑定”,然后使用 CREATE TABLESPACE 命令来对数据库管理器指定该原始控制器:
   CREATE TABLESPACE dms1
   MANAGED BY DATABASE
   USING (DEVICE '/dev/raw/raw1' 1170736) 

开始之前

在 Linux 上设置原始 I/O 之前,需要一个或多个可用 IDE 或 SCSI 磁盘数据库分区。为了在创建表空间时引用磁盘分区,您必须知道磁盘分区的名称以及与要分配给该表空间的磁盘分区相关联的空间量。