`

为DB2数据库创建表空间

    博客分类:
  • DB2
阅读更多

DB2数据库中的表空间(tablespace) 是一个逻辑层,一些数据库对象(比如表、视图和索引)驻留在这里。一个数据库可以有多个表空间。在首次创建数据库时,DB2 会自动地创建一组表空间。

  在 Control Center 中,展开 HELLOWLD 并点击 Table Spaces。应该会在 Control Center 右边的窗口中看到三个表空间,

  图 7. Control Center Table Spaces 视图

  Control Center Tablespaces 视图

  这些表空间是 DB2 在创建数据库 HWLD 时创建的。SYSCATSPACE 和 TEMPSPACE1 都是系统表空间,不能删除或重新创建它们。SYSCATSPACE 是系统编目表空间,用来存储关于数据库的元信息。TEMPSPACE1 在某些数据库操作期间用来存储临时结果。USERSPACE1 是默认的用户表空间,用来存储表、视图和索引等用户数据。任何具有足够权力的 DB2 用户都可以删除和重新创建 USERSPACE1 或者创建其他用户表空间。

  SMS 或 DMS 表空间

  在创建表空间时,可以选择表空间是 SMS 表空间还是 DMS 表空间。SMS 代表 System Managed Space,DMS 代表 Database Managed Space。在 SMS 表空间中,空间由操作系统的文件系统管理,会根据需要分配空间。SMS 表空间需要的初始设置比较少,管理方面需要考虑的因素少,而且一般更容易创建和使用,因为空间会在需要时自动地分配。在 DMS 表空间中,空间由 DB2 管理。DMS 表空间需要在创建时预先分配空间,所以需要进行比较多的初始设置工作,管理方面也有更多需要考虑的因素。但是,它为用户提供了更大的灵活性,可以更好地控制数据的布局并改进数据访问的性能。在一般情况下,经过良好设计和调优的 DMS 表空间可以提供比相似的 SMS 表空间更好的性能。

  在 Table Spaces 视图中,点击每个表空间。查看在右下方的窗口中显示的详细信息。SYSCATSPACE 和 USERSPACE1 都是 DMS 表空间,TEMPSPACE1 是 SMS 表空间。您还可以创建自己的表空间。

  缓冲池

  缓冲池(bufferpool) 是一个内存块的集合,这些内存块采用页面的形式。在首次创建数据库时,同时创建了一个默认的缓冲池 IBMDEFAULTBP。可以在创建表空间时,或者在 Buffer Pools 视图中使用 Create New Bufferpool 向导,创建新的缓冲池。

  缓冲池最重要的作用是,在数据库读写硬盘上的数据时帮助减少 I/O 开销。这是通过 I/O 预获取和页面清理器实现的。预获取能够减少读取页面的 I/O 开销,其原理是:预先判断特定查询可能需要的页面,然后将这些页面读入缓冲池,因此当查询需要它们时,它们已经准备好了。页面清理器确保将事务不再需要的已经更新的页面首先写到硬盘上,然后从缓冲池中清除它们。这确保缓冲池中有足够的干净空间可以读取页面。

  DB2 支持不同的页面大小:2K、4K、8K、16K 和 32K。IBMDEFAULTBP 使用 4K 的页面大小。如果希望创建采用其他页面大小的表空间,那么首先要确保数据库中有采用这种页面大小的缓冲池。多个表空间可以使用同一个缓冲池。在创建或更改表空间时,可以指定要使用哪个缓冲池。选择和创建适当的缓冲池对于数据库性能很重要。可以根据需要创建新的缓冲池或更改现有的缓冲池。

  在 Control Center 中,点击 Buffer Pools。可以看到数据库中的所有缓冲池。选择创建新的缓冲池或更改现有的缓冲池。

  图 8. Control Center Bufferpool 视图

  Control Center Bufferpool 视图

  DB2 系统目录表和视图

  在创建新数据库时,DB2 会在编目表空间中创建多个系统编目表和视图。这些系统编目表和视图用来跟踪数据库管理程序需要知道的关于数据库对象、访问控制信息和工具的重要信息。系统编目视图基于基本系统编目表。用户在一般情况下通过查询系统编目视图来查看感兴趣的系统编目表数据。

  在 Control Center 中,在 All Database 视图下面,展开 HELLOWLD,然后选择 Table Spaces。选择右上窗口中显示的 SYSCATSPACE。可以在右下窗口中看到这个表空间的概况:

  图 9. Control Center —— Tablespaces 视图

  CC —— Tablespaces 视图

  点击 Show Related Objects。会出现一个新页面,其中显示表空间 SYSCATSPACE 中的所有表和索引,以及它们的模式 SYSIBM。点击 Indexes,列出 SYSCATSPACE 中的所有索引。Show SQL 显示用来获得这个表空间中的表或索引列表的 select 命令。

  表、索引、模式和视图都是重要的 DB2 对象,本教程后面都会详细讨论。但是,首先试试手工创建表空间:

  1. 在 Control Center 中点击 Create New Tablespace,启动 Create Table Space 向导。输入 TBSP_DATA1 作为表空间名,在 comment 中输入 DMS tablespace to hold data。
  2. 选择 Regular 来选择要使用的表空间类型并点击 Next。出现 Specify a buffer pool 面板,在这里选择这个表空间要使用的缓冲池。
  3. 使用默认的 IBM 缓冲池,但是也可以使用 Create 按钮创建新的缓冲池。点击 Next。

  图 10. 创建新的表空间 —— 指定缓冲池

  创建新的表空间 —— 步骤 2

  4. 这个面板允许指定表空间是由数据库管理(DMS),还是由系统管理(SMS)。选择 Database-managed space (high performance)。点击 Next。Containers 页面出现。

  5. 在 Containers 页面上,可以指定容器的数量。容器(Container) 可以是存储表空间数据的目录、文件或设备。可以为每个表空间创建多个容器,而且在创建表空间之后,可以删除现有的容器或添加更多的容器。点击 Add,Define Container 页面出现,可以在这里为新的表空间定义容器。

  6. 可以为新的表空间定义多个容器。不同的容器可以位于不同的物理节点或路径。按照图 11 所示添加容器,然后点击 OK。

  图 11. 创建新的表空间 —— 添加容器

  创建新的表空间 —— 添加容器

  7. 用相同的操作添加相同路径上的另一个容器 tbsp_data1_c02。

  8. 应该会看到添加的两个容器,见图 12。每个容器的大小是 5MB,总共 10MB。如果对已经定义的容器不满意,那么点击 Change 或 Remove。点击 Next 继续。

  图 12. 创建新的表空间 —— 容器页面

  创建新的表空间 —— 容器页面

  9. 下一个页面帮助您定义这个表空间使用的区间和预获取大小。一个区间(extent)包含一系列连续的页面。页面的数量称为区间的大小。一般来说,希望一次分配多个页面,从而减少空间分配的开销。预获取大小是指在启用预获取时预获取器读取的页面数量。预获取的概念在前面讨论过。选择 Less than 25MB 来改变表的平均大小,建议的区间大小会自动地改为适当的设置。

  10. 点击 Summary 显示 Summary 页面。点击 Show SQL 并将 SQL 保存在 C:\DB2\hellowld\crt_tbsp.clp 中。点击 Finish 让 Create Tablespace 向导完成操作。

  11. 在 Control Center Table Spaces 视图中,应该能够找到新的表空间 TBSP_DATA1。如果对新创建的表空间 TBSP_DATA1 不完全满意,那么点击 Alter Tablespace 来修改这个表空间。如果希望创建 SMS 表空间,那么点击 Create New Tablespace。

  图 13. Control Center —— Tablespace 视图

  Control Center —— Tablespace 视图

  12. 将索引、大对象(Large Object,LOB)和大字段(Long Field,LF)或 XML 数据与表数据分开存储是有好处的。但是,在本教程中没有 LOB/LF 数据,所以不需要为它们创建表空间。XML 数据存储在与其他数据相同的表空间 TBSP_DATA1 中,所以也不需要为它创建表空间。后面几节将讨论索引。

  13. 在 DB2 命令行上,输入 cd C:\DB2\HELLOWLD\ 来创建表空间。如果目录 HELLOWLD 还不存在,需要首先创建它。然后,运行以下命令 notepad crt_tbsp.clp。在 notepad 中,编辑 Create Tablespace 语句,将它改为以下代码: CREATE LARGE TABLESPACE TBSP_INDEX1 PAGESIZE 4 K MANAGED BY DATABASE USING

  (FILE 'C:\DB2\NODE0000\hellowld\dbdir\tbsp_index1_c01' 5120,

  FILE 'C:\DB2\NODE0000\hellowld\dbdir\tbsp_index1_c02' 5120)

  EXTENTSIZE 8 OVERHEAD 10.5 PREFETCHSIZE 8 TRANSFERRATE 0.14 BUFFERPOOL IBMDEFAULTBP;

  14. 将 COMMENT 语句改为: COMMENT ON TABLESPACE TBSP_INDEX1 IS 'tablespace to hold index data';

  现在 crt_tbsp.clp 中的命令应该是下面这样:

CONNECT TO HELLOWLD;

CREATE LARGE TABLESPACE TBSP_INDEX1 PAGESIZE 4 K MANAGED BY DATABASE USING
(FILE 'C:\DB2\NODE0000\hellowld\dbdir\tbsp_index1_c01' 5120,
FILE 'C:\DB2\NODE0000\hellowld\dbdir\tbsp_index1_c02' 5120 )
EXTENTSIZE 8 OVERHEAD 10.5 PREFETCHSIZE 16 TRANSFERRATE 0.14 BUFFERPOOL IBMDEFAULTBP ;

COMMENT ON TABLESPACE TBSP_INDEX1 IS 'tablespace to hold index data';

CONNECT RESET;

  15. 保存并退出 notepad。

  16. 在 DB2 命令行窗口中运行 db2 -tvf crt_tbsp.clp 命令,应该会看到成功地创建了这个表空间。DB2 命令行选项 -tvf 允许运行来自文件的 DB2 命令。

  17. 进入 Control Center,点击 Control Center 主菜单中的 Selected,然后点击下拉菜单中的 Refresh,查看到目前为止创建的所有表空间。

<!--文章页底部广告开始-->
分享到:
评论

相关推荐

    db2数据库安装包、db2数据库安装驱动

    本压缩包包含DB2数据库的安装包以及链接服务器驱动,对于理解DB2数据库的安装过程和使用至关重要。 首先,我们来详细了解DB2数据库。DB2是一款高性能、安全且可扩展的数据库系统,支持多种操作系统平台,包括...

    db2表空间不足及处理

    系统管理的表空间是由DB2数据库自动创建的,用于存储系统数据,而用户管理的表空间是由用户创建的,用于存储用户数据。 在DB2数据库中,表空间不足可能会导致各种问题,如查询性能下降、数据存储不当等。因此,解决...

    Db2数据库操作的常用命令列表

    系统表空间是Db2数据库中用于存储系统数据的表空间。创建系统表空间可以使用CREATE TEMPORARY TABLESPACE命令,例如: CREATE TEMPORARY TABLESPACE exoasystmp IN DATABASE PARTITION GROUP IBMTEMPGROUP PAGESIZE...

    DB2数据库创建命令说明

    ### DB2数据库创建命令详解 #### 一、创建数据库用户 在DB2环境中,首先需要创建一个用户,这里创建的用户名称为`sfoa`。 ```sql useradd sfoa ``` 设置用户密码,这里将用户的密码设为与另一个用户`su-db2inst1...

    db2表空间不足及处理.doc

    DB2表空间是数据库管理系统中用于存储数据的基本结构单元。DB2表空间不足可能会导致数据库性能下降,甚至崩溃。因此, DB2表空间的检查和处理是数据库管理员的重要任务之一。 一、DB2表空间的概念 DB2表空间是...

    DB2数据库创建脚本自动生成脚本 bash shell和Python开发

    静默模式,很高效的一种批量创建多套db2数据库的解决方案,只需要简单将多套数据库创建要求在配置文件中配置好,运行自动生成脚本,即可快速根据要求生成所有数据库的创建脚本,方便,高效,实用。

    数据库原理实验二_DB2创建表和空间_艾孜尔江·艾尔斯兰著.docx

    2. **建立表空间**:数据库创建时,会自动创建几个核心表空间,如SYSCATSPACE、USERSPACE1和TEMPSPACE1。用户可以自定义表空间,例如用户表空间、目录表空间和临时表空间,它们的默认类型通常是SMS。 3. **查看...

    shell创建db2数据库

    例如,创建一个名为`TSPPACE1`的表空间: ``` db2 "CREATE TABLESPACE TSPPACE1 MANAGED BY AUTO STORAGE ON '/path/to/tablespace' EXTENTSIZE 10" ``` 7. **授权** 根据需求,可能还需要为不同的用户或角色...

    如何降低DB2的管理表空间的高水位标记

    对于DB2数据库管理(DMS)表空间的高水位标记(HWM)是指该表空间曾经使用到的最大数据页数。如果使用:db2 list tablespaces show detail,看到某个DMS表空间的已用页数低于高水位标记,则有可能通过如下方法降低高...

    db2裸设备扩容表空间

    表空间是DB2数据库中逻辑存储的容器,用于组织和管理数据库对象如表、索引等。在裸设备上创建的表空间,数据直接写入裸设备,减少了文件系统作为中间层带来的开销。 扩容裸设备主要涉及两个步骤:扩展逻辑卷(LV)...

    DB2数据库以及数据库对象指南

    表空间是DB2数据库中用于存储数据的物理区域,可以分为本地表空间和全局临时表空间。了解如何管理和优化表空间对于提高数据库性能至关重要。 #### 2. 表(Tables) 表是数据库中最基本的对象,用于存储数据。在DB2...

    DB2数据库基础学习

    ### DB2数据库基础学习 #### 一、DB2数据库概览 DB2是IBM公司开发的一款关系型数据库管理系统,自1983年发布以来,不断进化,支持多种平台,包括Windows、Linux、Unix和z/OS等。DB2不仅提供高性能的数据存储和检索...

    DB2数据库基础

    DB2数据库基础 DB2数据库基础内容包括实例、进程、创建表、表...DB2数据库基础内容涵盖了实例、进程、创建表、表空间、访问数据库、创建数据库对象等多方面的知识点,为数据库管理员和开发人员提供了详细的参考资料。

    DB2数据库命令详解

    "DB2数据库命令详解" DB2 数据库命令详解是 DB2 RDBMS 的重要组成部分,掌握这些命令是使用 DB2 数据库的基础。本文将详细讲解 DB2 命令的使用,包括启动交互式会话、编译 DB2 服务器节点目录、编译远程数据库目录...

    DB2数据库 V9.7安装手册

    DB2数据库 V9.7安装手册 DB2数据库 V9.7安装手册是 IBM 公司推出的关系型数据库管理系统的安装指南。该手册旨在指导用户正确地安装和配置 DB2 数据库 V9.7,确保数据库的稳定运行和高效性能。 安装环境 在安装 ...

    db2数据库基本命令

    以上是DB2数据库中基本命令的详细解析,涵盖了数据查询、修改、导入导出、元数据管理以及表结构调整等方面的核心功能。这些命令是DBA和开发人员日常工作中频繁使用的工具,对于高效管理和操作DB2数据库至关重要。

    db2数据库命令

    ### DB2数据库命令详解 #### 一、基本操作命令 1. **打开命令行窗口**:`#db2cmd` - 这是进入DB2命令行界面的基础操作,允许用户执行各种数据库管理命令。 2. **打开控制中心**:`#db2cmddb2cc` - 控制中心提供...

    db2数据库性能优化小技巧

    ### DB2数据库性能优化小技巧详解 #### 一、Bufferpool优化 在DB2数据库中,Bufferpool(缓冲池)的设置对整个系统的性能有着重要的影响。合理的Bufferpool配置能够显著提升数据访问速度,减少I/O操作次数。下面将...

    db2数据库sql语句大全

    根据提供的标题、描述以及部分文本内容,我们可以整理出与DB2数据库相关的多个知识点。下面将对这些内容进行详细的解析和扩展: ### DB2数据库SQL语句大全 #### 1. 强制关闭所有应用程序 ```sql db2...

Global site tag (gtag.js) - Google Analytics