db2自动调整表空间的大小

上一篇 /

下一篇  2009-02-06 11:47:19

在 DB2® 数据库系统中存在两种类型的基本表空间:系统管理的空间(SMS)和数据库管理的空间(DMS)。

与 SMS 表空间相关联的容器是文件系统目录,而这些目录中的文件会随着表空间中对象的增长而增长。文件会增加至达到其中一个容器上的文件系统限制或达到数据库的表空间大小限制(请参阅db2.udb.admin.doc/doc/r0001029.htm">SQL and XQuery limits)。

DMS 表空间由文件容器或原始设备容器组成,它们的大小是在将容器指定给表空间时设置的。当容器中的所有空间都已被使用时,则认为表空间已满。但是,与 SMS 不同,您可以使用 ALTER TABLESPACE 语句来添加或扩展容器,从而允许将更多的存储器空间提供给表空间。DMS 表空间还具有称为“自动调整大小”的功能。当可以自动调整大小的 DMS 表空间中的空间被消耗时,DB2 数据库系统可能回扩展一个或多个文件容器。SMS 表空间具有类似于自动增长的功能但术语“自动调整大小”专门用于 DMS。

启用和禁用自动调整大小(AUTORESIZE)

缺省情况下,不会对 DMS 表空间启用自动调整大小功能。下列语句创建不启用自动调整大小功能的 DMS 表空间:

CREATE TABLESPACE DMS1 MANAGED BY DATABASE

USING (FILE '/db2files/DMS1' 10 M)要启用自动调整大小功能,将 AUTORESIZE YES 子句指定为 CREATE TABLESPACE 语句的一部分:

CREATE TABLESPACE DMS1 MANAGED BY DATABASE

USING (FILE '/db2files/DMS1' 10 M) AUTORESIZE YES在已创建 DMS 表空间之后,还可以通过在 ALTER TABLESPACE 语句上使用 AUTORESIZE 子句来启用或禁用自动调整大小功能:

ALTER TABLESPACE DMS1 AUTORESIZE YES

ALTER TABLESPACE DMS1 AUTORESIZE NO有两个其他属性(MAXSIZE 和 INCREASESIZE)与自动调整大小的表空间相关联。

最大大小(MAXSIZE)

CREATE TABLESPACE 语句上的 MAXSIZE 子句定义表空间的最大大小。例如,以下语句创建可增长至 100 兆字节(如果数据库有多个数据库分区,则是每个数据库分区的大小)的表空间:

CREATE TABLESPACE DMS1 MANAGED BY DATABASE

USING (FILE '/db2files/DMS1' 10 M)

AUTORESIZE YES MAXSIZE 100 MMAXSIZE NONE 子句指定表空间没有最大限制。表空间可以一直增长,直到达到文件系统限制或 DB2 表空间限制(请参阅 SQL Reference 中的 SQL Limits 部分)。如果在启用自动调整大小功能时不指定 MAXSIZE 子句,则使用缺省值无最大大小限制。

ALTER TABLESPACE 语句更改已经启用了自动调整大小的表空间的 MAXSIZE 的值。例如:

ALTER TABLESPACE DMS1 MAXSIZE 1 G

ALTER TABLESPACE DMS1 MAXSIZE NONE如果指定了最大大小,则 DB2 强制使用的实际值可能会比提供的值略小,原因是 DB2 会尝试使容器增长保持一致。不可能通过使两个数量并准确达到最大值来扩展容器。

增大大小(INCREASESIZE)

当表空间中已没有空闲扩展数据块但请求了一个或多个扩展数据块时,CREATE TABLESPACE 语句上的 INCREASESIZE 子句定义用来增大表空间的空间量。可以显式大小或百分比的形式指定该值。例如:

CREATE TABLESPACE DMS1 MANAGED BY DATABASE

USING (FILE '/db2files/DMS1' 10 M)

AUTORESIZE YES INCREASESIZE 5 M

CREATE TABLESPACE DMS1 MANAGED BY DATABASE

USING (FILE '/db2files/DMS1' 10 M)

AUTORESIZE YES INCREASESIZE 50 PERCENT百分比值意味着每次需要增大表空间时都要计算增大大小,并且增大量基于增大时表空间大小的百分比。例如,如果表空间大小是 20 兆字节而增大大小是百分之 50,则第一次表空间增大 10 兆字节(增大到大小为 30 兆字节),下一次增大 15 兆字节。

如果在启用了自动调整大小功能时未指定 INCREASESIZE 子句,则 DB2 确定要使用的适当值,该值在表空间的存在期间可能会有变化。与 AUTORESIZE 和 MAXSIZE 一样,可以使用 ALTER TABLESPACE 语句更改 INCREASESIZE 的值。

如果指定了增长大小,则 DB2 使用的实际值可能会与提供的值稍有不同。对所用值进行这种调整是为了使表空间中各容器的增大保持一致。

如何扩展表空间

对于可以自动调整大小的表空间,当所有现有空间都已被使用并请求了更多空间时,DB2 会尝试增大该表空间的大小。DB2 确定可以扩展表空间中的哪些容器以便不需要进行重新平衡。DB2 只扩展位于表空间图(该图描述表空间的存储器布局)的最后范围内的那些容器,并且对它们扩展相同的数量。

例如,考虑下列语句:

CREATE TABLESPACE TS1 MANAGED BY DATABASE

USING (FILE 'C:\TS1CONT' 1000, FILE 'D:\TS1CONT' 1000,

FILE 'E:\TS1CONT' 2000, FILE 'F:\TS1CONT' 2000)

EXTENTSIZE 4

AUTORESIZE YES请记住,DB2 将每个容器的一小部分(一个扩展数据块)用于元数据,以下是根据 CREATE TABLESPACE 语句为表空间创建的表空间图。(表空间图是表空间快照的输出的一部分。)

表空间图:

范围    分割集      分割区  最大     最大        起始        结束   调节 容器

编号                  偏移    扩展数据块  页      分割区       分割区

[   0] [   0]      0     995      3983      0    248   0    4 (0,1,2,3)

[   1] [   0]      0    1495      5983    249    498   0    2 (2,3)表空间图表明标识为 2 和 3 的容器(E:\TS1CONT 和 F:\TS1CONT)是仅有的在图最后面范围内的容器。因此,当 DB2 自动扩展此表空间中的容器时,它将只扩展这两个容器。

注:

如果创建表空间时所有容器的大小都一样,则图中只有一个范围。在这种情况下,DB2 扩展每一个容器。要防止限制为只扩展一小部分容器,创建表空间时使各容器大小相等。

如在 MAXSIZE 部分中所讨论的那样,可以指定对表空间大小的最大限制,也可以提供 NONE 值以便可无限增大表空间。(当使用 NONE 或无限制时,上限实际上是由文件系统或 DB2 表空间限制定义的。)DB2 不会尝试增大表空间至超过上限。但是,在达到上限之前,尝试增大容器可能会因为文件系统已满而失败。在这种情况下,DB2 不会在增大表空间并将会向应用程序返回“空间不足”条件。

解决此情况有两种方法:

增大已满文件系统上可用的空间量。

对表空间执行一些容器操作,使得这些容器不再位于表空间图的最后。使正被讨论的容器不再处于表空间图的最后的最简易方法是将新的分割集添加至具有一组新容器的表空间。最佳示例确保所有容器大小相等。可以使用 ALTER TABLESPACE 语句的 STRIPE SET 子句来添加新的分割集。通过添加新的分割集,就会将新的范围添加至表空间图。借助于新的范围, DB2 自动尝试扩展的容器就会处于此新的分割集中,而旧的容器保持不变。

注:

当暂挂用户启动的容器操作或者正在执行后续生新平衡时,会禁用自动调整大小功能,直到落实了操作或重新平衡完成为止。

例如,表空间具有三个大小一样的容器,每个容器都位于它自己的文件系统上。当对表空间执行一些操作时,DB2 会自动扩展这三个容器。最后,其中一个文件系统变满了,对应的容器就不能再增大了。如果该文件系统上不能再提供更多的可用空间,则必须对表空间执行容器操作,使得存在问题的容器不再处于表空间图的最后范围内。在这种情况下,您可以添加新的分割集并指定两个两个容器(仍然具有空间的每个文件系统上一个),也可以指定多一些或少一些容器(再次确保要添加的每个窗口大小一样并且要使用的每个文件系统上有足够的空间)。当 DB2 尝试增大表空间的大小时,现在它将尝试扩展这些新分割集中的容器而不是旧容器。

上面描述的情况仅适用于未启用自动调整大小的自动存储器表空间。如果自动存储器表空间启用了自动调整大小,则 DB2 会通过添加容器的新分割集来自动处理文件系统变满的情况。

监视

对 DMS 表空间自动调整大小是作为表空间监视器快照输出的一部分显示的。还会显示增大大小值和最大大小值:

启用自动调整大小                    = Yes 或 No

当前表空间大小(字节)              = ###

最大表空间大小(字节)              = ### 或 NONE

增加大小(字节)                    = ###

增加大小(百分比)                  = ###

上一次成功调整大小的时间            = YYYY/MM/DD HH:MM:SS.SSSSSS

上一次调整大小尝试失败              = Yes 或 No使用说明

自动调整表空间大小具有下列含义:

启用了自动调整大小的表空间具有 DB2 通用数据库™ 版本 8.2.1 或更早版本不能识别的相关元数据。在这些版本上尝试使用启用了自动调整大小的表空间的数据库会产生故障(极有可能会返回 SQL0980C 或 SQL0902C 错误)。可能会对尝试连接至数据库或尝试复原数据库发送错误。如果表空间启用了自动调整大小,则对这些表空间禁用“自动调整大小”功能会除去元数据,从而允许在 DB2 版本 8.2.1 或更早版本上使用该数据库。

当禁用“自动调整大小”功能时,如果后来再启用此功能,则与 INCREASESIZE 和 MAXSIZE 相关联的值会丢失。

不能对使用原始设备容器的表空间启用此功能。同样,不能将原始设备容器添加至可以自动调整大小的表空间。这些操作会产生错误(SQL0109N)。如果需要添加原始设备容器,则必须首先禁用此功能。

重定向复原操作不能更改容器定义以包括原始设备容器(SQL0109N)。

由于最大大小限制了 DB2 自动增大表空间的方式,所以最大大小也限制了用户可增大表空间的方式。换言之,当执行向表空间添加空间的操作时,生成的大小必须小于或等于最大大小。可以使用 ALTER TABLESPACE 语句的 ADD、EXTEND、RESIZE 或 BEGIN NEW STRIPE SET 子句来添加空间。

摘抄文章

TAG:

引用

删除

魔翎殞煜 /   2009-05-26 18:23:11

學習了~

引用

删除

魔翎殞煜 /   2009-05-26 18:22:51

评 5 分

我来说两句

显示全部

内容

昵称

验证

提交评论

db2 修改表空间自增长_db2自动调整表空间的大小 - 木子日京的个人空间 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...相关推荐

  1. mysql 散列存储_什么是数据库散列存储? - 蚂蚁吞大象的个人空间 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...

    什么是数据库散列存储? 上一篇 / 下一篇  2012-11-30 17:25:03 / 个人分类:数据库 (转载自百度空间http://hi.baidu.com/pplboy/item/2d7a26 ...

  2. java软件测试经典案例,java语言编程案例 - Mrsjjl的个人空间 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...

    1.编程实现:二分搜索算法 解答: public class SearchTest { /** 被搜索数据的大小 */ private static final int size = 5000000; ...

  3. 安装OTP软件测试自学,OTP的使用技巧 - mike00088的个人空间 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...

    这是从兰兰的论坛上找来的,这些内容对我有很大的帮助,所以我就把它粘来了,以备不时之需.. 1.runaction后面能不能接变量(动态调用action,所以从取数据做action名字了,但是调用总是找 ...

  4. 嵌入式linux驱动自动化测试,通用的嵌入式自动化测试框架 - 心心草的个人空间 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...

    目前通用的嵌入式自动化测试框架,四层结构: 解释几个术语: 1.测试包(test suite):只要点一个按钮就可以完成一次测试必须用到的东西. 2.数据驱动(Data driven):测试数据与测试 ...

  5. oracle 概要文件不存在,oracle 概要文件 - kecy1217的个人空间 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...

    概要文件用于限制由用户使用的系统和数据库资源,并可以对口令进行管理.如果在创建用户时没有指定概要文件, 将使用默认的概要文件. 1.使用create profile命令创建概要文件 语法格式如下: c ...

  6. oracle的除,Oracle数据库如何去除别名 - daiyan0526的个人空间 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...

    本人曾经用Personal Oracle+Developer2000开发了一些程序,当移植到FOR NT的时候发现有些功能出现了出错提示.经研究发现原来是用户没有能正常连接.由于在developer2 ...

  7. oracle批量构造数据,oracle批量构造数据方法 - rd_clp的个人空间 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...

    1.一种是只要数据条数,至于里面内容可以是序列方式,另外可能几个表中相互 id的关联,那建议用存诸过程写. 表a(id,name)有学员的信息 表b(id,testid,subject,score)有 ...

  8. 软件测试多次点击按钮叫什么方法,常见控件的测试点 - 爱昵容儿 的个人空间 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...

    视频:软件测试--常见控件测试之一 源文档 > 视频:软件测试--常见控件测试之三 源文档 常见控件的测试和常见功能点击系统权限 常见控件的名称和测试方法 文本框:用文字工具划出画出来的,用来编 ...

  9. 软件测试因果图用例,因果图测试用例 - ILT的个人空间 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...

    使用因果图的好处 1 考虑了多个输入之间的相互组合.相互制约关系 2 能够帮助我们按一定步骤,高效率地选择测试用例,同时还能为我们指出,程序规格说明描述中存在着什么问题 利用因果图导出测试用例需要经过 ...

最新文章

  1. linux 环境下,yum 安装redis
  2. 2008-2018,5个版本互联网大脑模型的演进与对比
  3. cmos 和 bios中断大全
  4. VTK:PolyData之ParametricSpline
  5. c mysql 编码_mysql编码转换 mysql编码设置详解
  6. Java定时任务以及ScheduledThreadPoolExecutor需要注意的问题
  7. 47. 不用加减乘除做加法(C++版本)
  8. 声音和视频在计算机的格式,格式工厂完成音频和视频合并
  9. 世界流调——Gary
  10. google地图图标 google map图库资源
  11. 双目摄像头三种标定方式标定结果对比
  12. xp系统共享打印机服务器不可用,那种方式能够解决WinXP访问Win10共享打印机指定网络不可用的问题?...
  13. 高林大学计算机应用基础试题及答案,计算机应用基础教学课件作者高林02单元2Windows7的使用课件.doc...
  14. 量化交易下怎么做波段?
  15. 基于 Java 机器学习自学笔记 (第63-65天:集成学习之AdaBoost)
  16. #小练习 正则表达式匹配邮箱名称
  17. eclipse看不到android设备,为什么Eclipse的Android设备选择器没有显示我的Android设备?...
  18. 服务器整体爆率如何修改,传奇私服如何调整爆率
  19. PDF转CAD怎么转?试试这个办法
  20. 【Error】无法上网:分配到169 ip 的解决办法

热门文章

  1. docker启动rancher后打不开bashboard
  2. OneNav一为主题魔改教程(二):使用纯css增加网站Logo扫光效果--洞五洞洞幺
  3. 基于规则的中文地名识别系统的设计与实现
  4. 计算机高级文秘学什么的,文秘专业主要学什么|文秘专业的职业目标是什么
  5. 通过修改键盘映射替代损坏按键
  6. BZOJ4864: [BeiJing 2017 Wc]神秘物质(Splay)
  7. greasemonkey_在Firefox中更改或设置Greasemonkey脚本编辑器
  8. Sailfish应用开发入门(二)Sailfish SDK 简介
  9. HTML5期末大作业:时尚服装购物网站设计——时尚服装购物商城(16页) 关于时尚购物HTML网页设计-----服装
  10. 2022-12-30:某天小美进入了一个迷宫探险,根据地图所示,这个迷宫里有无数个房间 序号分别为1、2、3、...入口房间的序号为1 任意序号为正整数x的房间,都与序号 2*x 和 2*x + 1