DB2新增表空间和缓冲池
在DB2中新建一个记录长度超过4K表时,如果系统报如下的错误,
“找不到页大小至少为 "16384" 且许可其使用授权标识 "DCARD" 的缺省表空间。”
则说明当前数据库的数据表空间的页面大小定义小于16k,需要修改表空间的页面大小,或者为数据库增加新的数据表空间,新的表空间页面大小必须大于16K。
关于DB2的表空间和缓冲池的基础知识,可以参考文章:http://www.ibm.com/developerworks/cn/data/library/techarticles/0212wieser/0212wieser.html
从上文中,我们知道了DB2有两种类型的表空间, SMS 和 DMS, 即系统管理和数据库管理的表空间,我们现在要增加的是DMS表空间。
一般来说,在创建DB2数据库的时候,每个数据库包括4个缺省的表空间,用命令可以查看,
DB2 LIST TABLESPACES SHOW DETAIL
当前数据库的表空间
表空间标识 = 0
名称 = SYSCATSPACE
类型 = 数据库管理空间
内容 = 所有持久数据。常规表空间。
状态 = 0x0000
详细解释:
正常
总计页数 = 24576
可用页数 = 24572
已用页数 = 19780
可用页数 = 4792
高水位标记(页) = 19780
页大小(以字节计) = 4096
扩展数据块大小(页) = 4
预取大小(页) = 4
容器数 = 1
表空间标识 = 1
名称 = TEMPSPACE1
类型 = 系统管理空间
内容 = 系统临时数据
状态 = 0x0000
详细解释:
正常
总计页数 = 1
可用页数 = 1
已用页数 = 1
可用页数 = 不适用
高水位标记(页) = 不适用
页大小(以字节计) = 4096
扩展数据块大小(页) = 32
预取大小(页) = 32
容器数 = 1
表空间标识 = 2
名称 = USERSPACE1
类型 = 数据库管理空间
内容 = 所有持久数据。大型表空间。
状态 = 0x0000
详细解释:
正常
总计页数 = 16384
可用页数 = 16352
已用页数 = 8512
可用页数 = 7840
高水位标记(页) = 8512
页大小(以字节计) = 4096
扩展数据块大小(页) = 32
预取大小(页) = 32
容器数 = 1
表空间标识 = 3
名称 = SYSTOOLSPACE
类型 = 数据库管理空间
内容 = 所有持久数据。大型表空间。
状态 = 0x0000
详细解释:
正常
总计页数 = 8192
可用页数 = 8188
已用页数 = 152
可用页数 = 8036
高水位标记(页) = 152
页大小(以字节计) = 4096
扩展数据块大小(页) = 4
预取大小(页) = 4
容器数 = 1
可以看出,现有的表空间页面的小确实为4K,
页大小(以字节计) = 4096
这是因为DB2系统在创建表空间的时候,必须有一个相应的缓冲池,而DB2在创建数据库的时候,会自动创建一个缺省的缓冲池 IBMDEFAULTBP, 这个BUFFERPOOL的大小为 4K. 显示缓冲池的命令如下:
SELECT * FROM SYSCAT.BUFFERPOOLS
为了新建记录长达大于4K的表,有两个方法可以选择,
1. 更新表空间的 BUFFERPOOL类型为页面更大的BUFFERPOOL类型
ALTER TABLESPACE USERSPACE1 BUFFERPOOL NEWBP1
2. 新建一个表空间,直接用大的BUFFERPOOL类型
在这里我们要创建一个新的表空间,首先必须要新建一个BUFFERPOOL类型,大小为16K,
CREATE BUFFERPOOL NEWBP1
SIZE 2000
PAGESIZE 16K
创建成功之后,我们可以用新的BUFFERPOOL定义新的表空间了,
CREATE LARGE TABLESPACE USERSPACE2
PAGESIZE 16 K
MANAGED BY DATABASE
USING (FILE '/home/db2data/NODE0000/WB/T0000004/C0000000.LRG' 500M)
EXTENTSIZE 16
PREFETCHSIZE 16
BUFFERPOOL NEWBP1
OVERHEAD 12.67
TRANSFERRATE 0.18
上面的SQL命令中,FILE 必须是一个新的文件,表空间创建成功后,数据库会多一个容器指向该文件,BUFFERPOOL 类型为新建的 NEWBP1,创建成功后,用命令查看结果,
DB2 LIST DATASPACES SHOW DETAIL
新建的表空间如下:
表空间标识 = 4
名称 = USERSPACE2
类型 = 数据库管理空间
内容 = 所有持久数据。大型表空间。
状态 = 0x0000
详细解释:
正常
总计页数 = 32000
可用页数 = 31984
已用页数 = 368
可用页数 = 31616
高水位标记(页) = 368
页大小(以字节计) = 16384
扩展数据块大小(页) = 16
预取大小(页) = 16
容器数 = 1
上面的表空间页面大小为16K。
OK, 我们现在可以创建一个记录长度大于4K的新表了。
分享到:
相关推荐
3. **置换策略**:当缓冲池空间不足时,用于确定哪些数据页面应该被替换出缓冲池的策略。 4. **优先级**:可以为不同的缓冲池设置不同的优先级,高优先级的缓冲池更可能获得更多的内存资源。 #### 六、总结 在DB2...
IBM DB2 表空间与缓冲池IBM DB2 表空间与缓冲池IBM DB2 表空间与缓冲池IBM DB2 表空间与缓冲池IBM DB2 表空间与缓冲池
在IBM的DB2数据库管理系统中,表空间和缓冲池是两个关键的概念,它们对数据库的性能和管理至关重要。本文主要针对DB2 Universal Database for Linux、UNIX和Windows平台,旨在帮助初学者理解这两个概念以及如何有效...
* 查看 mv_workitem 表所在表空间和缓冲池信息:db2 "select TABSCHEMA TableSchemaName, TABNAME TableName, t.TBSPACE TableSpaceName,b.BPNAME BufferpoolName, b.NPAGES BufferpoolPages, b.PAGESIZE ...
一般来说,缓冲池的大小应该根据表空间的大小和数据表的记录数来确定。缓冲池的大小可以通过 DB2 的命令行工具来查看和修改。 在 Unix 下,可以使用以下命令来查看缓冲池相关信息: * 切换到 db2inst1 账号:su –...
DB2表空间可以分为系统管理空间和用户管理空间两种,系统管理空间用于存储系统数据,而用户管理空间用于存储用户数据。 二、DB2表空间不足的原因 DB2表空间不足可能是由于以下原因: 1. 表空间容量不足:当表空间...
DB2表空间可以分为系统管理的表空间和用户管理的表空间两种。系统管理的表空间是由DB2数据库自动创建的,用于存储系统数据,而用户管理的表空间是由用户创建的,用于存储用户数据。 在DB2数据库中,表空间不足可能...
### DB2表和表空间状态详解 #### 引言 IBM DB2 Universal Database(DB2 UDB)作为一款先进的数据库管理系统,提供了丰富的功能以确保数据的完整性和安全性。其中一个关键特性便是通过表和表空间的状态控制,实现...
DB2的临时表空间主要用于存储临时表和排序所需的中间数据,当其大小超出合理范围,可能导致以下几个方面的问题: 1. **资源消耗**:临时表空间占用过多磁盘空间,可能会导致I/O性能下降,因为系统需要频繁读写这些...
DB2的表空间 DB2的表空间 DB2的表空间 DB2的表空间
DB2支持两种类型的表空间:非自动存储管理(DMS)和自动存储管理(SMS)。DMS表空间需要在创建时明确指定容器的设备名或文件名以及分配的空间大小,而SMS表空间则由DB2自动管理存储资源。 - **非自动存储管理(DMS...
总结来说,扩容DB2的裸设备表空间涉及到AIX系统的LVM操作、文件系统调整和DB2数据库内部的表空间配置更新。每个步骤都需要谨慎处理,确保数据的安全性和服务的连续性。在实际操作时,应遵循最佳实践并做好数据备份,...
除了基本的SMS和DMS表空间之外,DB2还支持几种特殊类型的表空间,如系统临时表空间(System Temporary Table Space, STTS)和用户临时表空间(User Temporary Table Space, UTTS)。 **系统临时表空间(STTS)**: 系统...
表空间是DB2存储结构的核心组件,它是一个逻辑概念,用来聚合物理存储设备,以便更有效地管理和分配数据库的存储资源。表空间由一个或多个数据分区(Extent)组成,每个数据分区又由一系列连续的物理页面(Page)...
对于DB2数据库管理(DMS)表空间的高水位标记(HWM)是指该表空间曾经使用到的最大数据页数。如果使用:db2 list tablespaces show detail,看到某个DMS表空间的已用页数低于高水位标记,则有可能通过如下方法降低高...
因此,了解如何有效地管理和优化DB2的表空间显得尤为重要。 #### 二、表空间问题的现象与原因 表空间占满是DB2数据库中常见的一个问题,这种问题的发生通常具有以下几个特征: 1. **系统运行初期正常**:系统上线...
### DB2 不允许访问表空间问题解析 #### 一、问题背景及现象 在使用IBM DB2数据库管理系统的过程中,有时可能会遇到无法访问特定表空间的情况。这种情况下,用户可能能够执行SELECT查询,但无法进行UPDATE、ALTER...
DB2的缓冲池在创建数据库时会自动设置一个默认的IBMDEFAULTBP,所有表空间共享这个缓冲池。不过,可以根据需求创建多个自定义的缓冲池,每个缓冲池的大小可以通过BUFFPAGE参数或CREATE BUFFERPOOL命令中的SIZE关键字...