SYSTOOLSPACE 和 SYSTOOLSTMPSPACE 表空间

SYSTOOLSPACE 表空间是由 Db2® 管理工具和一些 SQL 管理例程用于存储历史数据和配置信息的用户数据表空间。

下列工具和 SQL 管理例程使用 SYSTOOLSPACE 表空间:
  • ADMIN_COPY_SCHEMA 过程
  • ADMIN_DROP_SCHEMA 过程
  • ADMIN_MOVE_TABLE 过程
  • ADMIN_MOVE_TABLE_UTIL 过程
  • 管理任务调度程序
  • ALTOBJ 过程
  • 自动重组(包括 db.tb_reorg_req 运行状况指示器)
  • 自动收集统计信息(包括 db.tb_runstats_req 运行状况指示器)
  • 配置自动维护向导
  • db2look 命令
  • GET_DBSIZE_INFO 过程
  • 存储管理工具
  • SYSINSTALLOBJECTS 过程

SYSTOOLSPACE 表空间是在首次使用先前所列任意工具和 SQL 管理例程时创建的。 db2look 命令,管理任务调度程序, ALTOBJ , ADMIN_COPY_SCHEMA 和 ADMIN_DROP_SCHEMA 过程例外; 必须先创建 SYSTOOLSPACE 表空间,然后才能使用这些表空间。

SYSTOOLSTMPSPACE 表空间是一个用户临时表空间,REORGCHK_TB_STATS、REORGCHK_IX_STATS 和 ADMIN_CMD 过程使用它来存储临时数据。 SYSTOOLSTMPSPACE 表空间是第一次调用其中任一过程(ADMIN_CMD 除外)时创建的。

注意:
  1. 如果 DB2 registry variable DB2_WORKLOAD 设置为 SAP,数据库未启动自动存储器时不会自动创建 SYSTOOLSPACE 或 SYSTOOLSTMPSPACE。
  2. 缺省情况下,会对所有新数据库启用运行状况监视器及 db.tb_reorg_req(“要求重组”)和 db.tb_runstats_req(“要求统计信息收集”)运行状况指示器。 这两个运行状况指示器由运行状况监视器大约每两个小时评估一次。 这表示在新数据库处于活动状态两个小时之后,将自动为它们创建 SYSTOOLSPACE 和 SYSTOOLSTMPSPACE 表空间,否则将显式禁用运行状况监视器或这些运行状况指示器。
  3. 缺省情况下,会对所有新数据库启用自动收集统计信息功能。 此功能大约每两个小时评估一次。 这表示在新数据库处于活动状态两个小时之后,将自动为它们创建 SYSTOOLSPACE 和 SYSTOOLSTMPSPACE 表空间,否则将显式禁用自动收集统计信息功能。

如果不想要任一表空间的缺省定义,那么可以手动创建表空间(如果已经自动创建了,那么请删除它们,然后重新创建)。 表空间定义可能不同(例如,可以使用 DMS 或 SMS 表空间,或者可以启用或禁用自动存储器),但是必须在 IBMCATGROUP 数据库分区组中创建表空间。 如果尝试在任何其他数据库分区组中创建它们,那么将会返回错误 SQL1258N。

示例

以下是如何手动创建 SYSTOOLSPACE 和 SYSTOOLSTMPSPACE 表空间的一个示例。
CREATE TABLESPACE SYSTOOLSPACE IN IBMCATGROUP 
  MANAGED BY AUTOMATIC STORAGE USING STOGROUP IBMSTOGROUP
  EXTENTSIZE 4

CREATE USER TEMPORARY TABLESPACE SYSTOOLSTMPSPACE IN IBMCATGROUP 
  MANAGED BY AUTOMATIC STORAGE USING STOGROUP IBMSTOGROUP
  EXTENTSIZE 4
创建数据库时,会自动创建名为 IBMSTOGROUP 的缺省存储器组。 但是,使用 AUTOMATIC STORAGE NO 子句创建的数据库没有缺省存储器组。 如果数据库没有存储器组,那么可使用 CREATE STOGROUP 语句创建存储器组。 以下示例显示如何在 Windows 操作系统上创建存储器组:
CREATE STOGROUP MYSTOGROUP ON 'D:\', 'E:\' SET AS DEFAULT