DB2 V9.7 for Linux, UNIX, and Windows

创建数据库时定义初始表空间

创建数据库时,将定义三个表空间:(1) 用于系统目录表的 SYSCATSPACE,(2) 用于在数据库处理期间创建的系统临时表的 TEMPSPACE1 以及 (3) 用于用户定义的表和索引的 USERSPACE1。 同时,您还可以创建其他用户表空间。

关于此任务

注: 当第一次创建一个数据库时,不创建用户临时表空间。

除非另外指定,否则三个缺省表空间由自动存储器管理。

通过使用 CREATE DATABASE 命令,可以指定缺省缓冲池和初始表空间的页大小。此缺省值还表示所有将来 CREATE BUFFERPOOL 和 CREATE TABLESPACE 语句的缺省页大小。如果在创建数据库时不指定页大小,那么缺省页大小是 4 KB。

要使用命令行来定义初始表空间,请输入:
      CREATE DATABASE name
     PAGESIZE page size
          CATALOG TABLESPACE
              MANAGED BY SYSTEM USING ('path')
              EXTENTSIZE value PREFETCHSIZE value
          USER TABLESPACE
              MANAGED BY DATABASE USING (FILE'path' 5000,
                                  FILE'path' 5000)
              EXTENTSIZE value PREFETCHSIZE value
          TEMPORARY TABLESPACE
              MANAGED BY SYSTEM USING ('path')
          WITH "comment"
如果不想使用这些表空间的缺省定义,那么可以在 CREATE DATABASE 命令中指定它们的特征。例如,可使用以下命令在 Windows 上创建数据库:
      CREATE DATABASE PERSONL
     PAGESIZE 16384
          CATALOG TABLESPACE
              MANAGED BY SYSTEM USING ('d:\pcatalog','e:\pcatalog')
              EXTENTSIZE 16 PREFETCHSIZE 32
          USER TABLESPACE
              MANAGED BY DATABASE USING (FILE'd:\db2data\personl' 5000,
                                  FILE'd:\db2data\personl' 5000)
              EXTENTSIZE 32 PREFETCHSIZE 64
          TEMPORARY TABLESPACE
              MANAGED BY SYSTEM USING ('f:\db2temp\personl')
          WITH "Personnel DB for BSchiefer Co"
在本示例中,缺省页大小设置为 16384 字节,并且明确提供了每个初始表空间的定义。只需要为不希望使用缺省定义的那些表空间指定表空间定义。
注: 当您在分区数据库环境中工作时,不能创建容器或将容器指定给特定数据库分区。首先,必须使用缺省用户和临时表空间创建数据库。然后应使用 CREATE TABLESPACE 语句来创建必需的表空间。最后,可删除缺省表空间。

CREATE DATABASE 命令上的 MANAGED BY 短语的编码与 CREATE TABLESPACE 语句上的 MANAGED BY 短语遵循同一格式。

您可以在需要时添加其他用户和临时表空间。不能删除目录表空间 SYSCATSPACE 或创建另一个目录表空间;且必须始终存在至少一个页大小为 4 KB 的系统临时表空间。可以创建其他系统临时表空间。在创建表空间之后,您也不能更改它的页大小或扩展数据块大小。