SQLandXQuerylimits)。DMS表空间由文" />
当前位置:文档之家› db2自动调整表空间的大小

db2自动调整表空间的大小

db2自动调整表空间的大小
db2自动调整表空间的大小

db2自动调整表空间的大小

在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 子句来添加空间。

db2look命令详解

db2look 今天整理了一下db2look命令参数说明 db2look Command syntax | |>>-db2look-- -d--DBname--+-----+--+--------------+--------------> | '- -e-' '- -u--Creator-' | |>--+-------------+--+-------------------------------------+-----> | '- -z--schema-' '-+----------------+--+-------------+-' | | .-------. | '- -tw--Tname-' | | V | | | '- -t----Tname-+-' | |>--+----------------+--+-----+--+------------+--+-----+---------> | | .-------. | '- -h-' '- -o--Fname-' '- -a-' | | V | | | '- -v----Vname-+-' | |>--+-----------------------+--+-----+--+-----+--+------+--------> | '- -m--+-----+--+-----+-' '- -l-' '- -x-' '- -xd-' | '- -c-' '- -r-' | |>--+-----+--+-----------------+--+-----+--+-----+--+-----+------> | '- -f-' '- -td--delimiter-' '- -p-' '- -s-' '- -g-' | |>--+----------+--+----------------------------+-----------------> | '- -noview-' '- -i--userid-- -w--password-' | |>--+------------------+--+---------+---------------------------><

DB2表空间已满

解决方法但由于是双机,所以裸设备需要在hacmp中建,或者建了后两边同步一下,可以找富通和IBM解决。 DB2解决tablespace满的问题 1. 连接到数据库,查看一下tablespace的使用情况 db2 => list tablespaces show detail Tablespaces for Current Database Tablespace ID = 0 Name = SYSCATSPACE Type = System managed space Contents = Any data State = 0x0000 Detailed explanation: Normal Total pages = 4814 Useable pages = 4814 Used pages = 4814 Free pages = Not applicable High water mark (pages) = Not applicable Page size (bytes) = 4096 Extent size (pages) = 32 Prefetch size (pages) = 32 Number of containers = 1 Tablespace ID = 1 Name = TEMPSPACE1 Type = System managed space Contents = System Temporary data State = 0x0000 Detailed explanation: Normal Total pages = 227 Useable pages = 227 Used pages = 227 Free pages = Not applicable High water mark (pages) = Not applicable Page size (bytes) = 4096 Extent size (pages) = 32 Prefetch size (pages) = 32 Number of containers = 1

DB2不允许访问表空间解决

1. DB2进行异常操作后,如命令未执行完将其中断,或对DB2表进行 load/restore操作后,DB2将只能select,不能update,altet,insert,报错如下: DB2 SQL Error: SQLCODE=-290, SQLSTATE=55039, SQLERRMC=null, DRIVER=3.50.152 消息:不允许访问表空间。. SQLCODE=-290, SQLSTATE=55039, DRIVER=3.50.152 2. 可查看DB2的表空间状态,确认状态后进行相应的处理解决 $ db2 "list tablespace show detail" Tablespaces for Current Database Tablespace ID = 0 Name = SYSCATSPACE Type = System managed space Contents = Any data State = 0x0000 Detailed explanation: Normal Total pages = 2519 Useable pages = 2519 Used pages = 2519 Free pages = Not applicable High water mark (pages) = Not applicable Page size (bytes) = 4096 Extent size (pages) = 32 Prefetch size (pages) = 32 Number of containers = 1 Tablespace ID = 1 Name = TEMPSPACE1 Type = System managed space Contents = System Temporary data State = 0x0000 Detailed explanation: Normal Total pages = 1 Useable pages = 1 Used pages = 1 Free pages = Not applicable High water mark (pages) = Not applicable Page size (bytes) = 4096 Extent size (pages) = 32 Prefetch size (pages) = 32

DB2数据库表空间重定向恢复

DB2数据库表空间重定向恢复 一、情况说明 在为某市搭建新营销系统演示环境时,从公司测试环境(以下简称公司环境)备份出来的数据库TCDATA文件无法在某市演示环境(以下简称某市环境)还原,提示容器错误。原因是公司环境服务器的盘符为C、D、E、F,某市环境的盘符为C、D、E。公司环境TCDATA 库的部份表空间容器指向盘符F,在某市环境无法找到盘符F。 二、解决流程 1、在公司环境备份TCDA TA库,并记录备份时间戳20100916122505 Db2 backup tcdata to e:/db2backup 2、将备份文件复制到某市环境,并在某市环境E盘新建一个TCDATA库 db2 create db tcdata on e: 3、用重定向语句还原TCDATA库,还原过程中会提示需要设置容器 db2 RESTORE DATABASE tcdata USER tc USING tcpwd FROM e:\db2backup TAKEN AT 20100916122505 TO e: INTO tcdata redirect 4、在公司环境查看TCDA TA库每个表空间的容器情况,一般容器用path,类型为file的容器用file。注意:每个容器都需要重定向 db2 set tablespace containers for 1 using (path "E:\DB2\NODE0000\SQL00002\SQLT0001.0") db2 set tablespace containers for 2 using (path "E:\DB2\NODE0000\SQL00002\SQLT0002.0") db2 "set tablespace containers for 3 using(File 'e:\db2data\tcdata\userfile\datafile01.dat' 64000,File 'e:\db2data\tcdata\userfile\datafile02.dat' 64000,file 'e:\db2data\tcdata\userfile\datafile03.dat' 64000,File 'e:\db2data\tcdata\userfile\datafile04.dat' 64000,File 'e:\db2data\tcdata\userfile\datafile05.dat' 64000)" db2 "set tablespace containers for 4 using(File 'E:\db2data\tcdata\tmpfile\public_usrtmp01.dat' 32000,File 'E:\db2data\tcdata\tmpfile\public_usrtmp02.dat' 32000,File 'E:\db2data\tcdata\tmpfile\public_usrtmp03.dat' 32000)" db2 "set tablespace containers for 5 using(File 'E:\db2data\tcdata\tmpfile\public_systmp01.dat' 32000,File 'E:\db2data\tcdata\tmpfile\public_systmp02.dat' 32000,File 'E:\db2data\tcdata\tmpfile\public_systmp03.dat' 32000)" db2 set tablespace containers for 6 using (path "E:\DB2\NODE0000\SQL00002\SYSTOOLSPACE") db2 set tablespace containers for 7 using (path "E:\DB2\NODE0000\SQL00002\TBSP32K0000") db2 set tablespace containers for 8 using (path "E:\DB2\NODE0000\SQL00002\TBSP32KTMP0000") db2 set tablespace containers for 9 using (path "E:\DB2\NODE0000\SQL00002\SQLT0250.0") 4、继续执行恢复 db2 restore db tcdata continue 5、如数据库不一致就执行一下前滚 db2 rollforward db tcdata to end of logs and complete

db2top工具详解

Database (d) Figure 2. Database screen 在数据库屏幕,db2top提供了一组对整个数据库的性能监控单元。 用户可以监视活动会话(MaxActSess),排序内存(SortMemory)和日志空间(LogUsed)。这些监测元素可以帮助用户确定这些元素的当前使用百分比。如果这些因素中的一个开始达到很高甚至100%时,用户应该开始调查发生了什么事。 当前时间和数据库开始时间(Start Time)相比能让我们了解数据库运行了多久。这个值结合其他检测元素去调查那些已存在一段时间的问题是非常有用的。 锁的使用(LockUsed)和升级(LockEscals)对缩小锁定问题非常有帮助。如果LockEscals 数量很大时,则增加LOCKLIST和MAXLOCKS数据库参数是一个好主意或者寻找那些引起这个问题的不良查询语句。 L_Reads,P_Reads和A_Reads代表逻辑读,物理读和异步读取。结合的命中率(HitRatio)值,这些变量对于评估大多数的读取发生在存储器中还是磁盘I / O里是非常重要的。因为磁盘的I / O比存储器存取慢得多,用户更喜欢访问在内存中的数据。当用户看到HitRatio 下降低则可以查看缓冲池(bufferpools)是不是不够大了,或是不是有查询进行了太多的全白扫描而导致页面数据从内存洗冲到磁盘。

和读类似,A_Writes代表异步写入,这表明数据页是由异步页清洁剂之前写的缓冲池空间是必需的。通过db2top 刷新频率这段时间内的写数量我们还能知道有多少写请求发生了。还能计算每次写入的平均花费时间这对分析I/O瓶颈引起的一些性能问题有所帮助。当A_Writes/Writes的比值越高则写I/O性能越高。 SortOvf代表排序溢出。如果用户发现这个数字变为非常高,就需要寻找查询了。排序溢出发生在SORTHEAP不足够大,导致排序(Sort)或HashJoin操作可能会溢出数据到临时空间。有时该值随着SORTHEAP增加而降低,但在其他情况下,可能没有多大帮助,如果进行排序的数据集比可分配给SORTHEAP内存大得多。如果请求的数据量超过缓冲池可容纳的临时空间大小那么就可能需要物理I/O来进行SORT或哈希链接在这种情况下排序溢出将是很大的瓶颈。因此优化查询来减少排序溢出的数量能显著提高系统的性能。 在数据库屏幕的最后四个条目显示的平均物理读取时间(AvgPRdTime),平均直接读取时间(AvgDRdTime),物理平均写入时间(AvgPWrTime)和平均直接写入时间(AvgDWrTime)。这四个项目直接反映I/ O子系统性能。如果用户发现一个意想不到的大量的时间花费在每个读或写操作,进一步的调查应到I/ O子系统。 正常情况下,DB2 排序发生在内存中,这块内存叫做排序堆,即 SORTHEAP。当需要排序的数据超出 SORTHEAP 大小限制时,就会发生排序溢出。溢出的数据会写到临时表中,这会产生更多的I/O,因此对性能会有较大影响。 Tablespace (t) Figure 3. Tablespace screen

DB2数据库表空间修改文档

DB2数据库表空间检查与维护 一、表空间占满故障现象 1、系统上线初期正常,稳定运行半年以后突然出现故障。 2、对数据库进行写入操作时失败:用户的流程计划不能正常提交,录 入数据无法保存。 3、系统应用程序操作响应慢,甚至宕机(死机)。 4、DB2数据库能正常连接,select语句执行正常,insert语句执行失败。 二、表空间状态检查与查看 1、使用DB2管理员账户查看表空间状态:db2 list tablespaces |more , 其中|more 用于分页显示输出结果,按空格键翻页。结果如图1所示。 图1 其中状态0x0000 表示表空间正常。 2、查看表空间及其表空间所属容器的详细信息:

db2 list tablespaces show detail |more ,结果如图2所示。 图2 剩余表空间=可用页数*页大小,如图2中SYSCATSPACE表空间的可用空间大小:=3532*4096(4K)=14M,即该表空间最多还能增加14M的数据,若占满后需要扩充表空间。 三、表空间占满解决方法 1、改变容器大小: db2 alter tablespace idx_data resize(file 'd:\db2\datafile_netdb\idx_data' 32000) 该命令是将表空间idx_data 的大小为1000MB(因为该表空间扩展数 据库大小为32K),d:\db2\datafile_netdb\idx_data是该表空间文件 存放位置。执行结果如图3所示。

图3 2、增加新的容器: db2 alter tablespace idx_data add(file 'd:\db2\datafile_netdb\idx_data_ex1' 640) 该命令是将表空间idx_data 增加新的容器idx_data_ex1,大小为 20MB(因为该表空间扩展数据库大小为32K), d:\db2\datafile_netdb\idx_data_ex1是该新增容器文件存放位置。执行结果如图4所示。 图4

DB2分区表

DB2 V9.7 for Linux, UNIX, and Windows 表分区 表分区功能是一种数据组织方案,即,表数据根据一个或多个表列中的值分布到多个存储对象(称为数据分区或范围)中。每个数据分区都是单独存储的。这些存储对象可以在不同的表空间中,也可以在相同表空间中。 存储对象的行为与单个表的行为非常类似,它通过使用ALTER TABLE ... ATTACH 语句将现有表合并到分区表中,可以很容易实现快速转入。同样,使用ALTER TABLE ... DETACH 语句很容易实现转出。查询处理同样可以利用分离的数据来避免扫描不相关数据,从而使许多数据仓库样式查询具有更好地查询性能。 按照CREATE TABLE 语句的PARTITION BY 子句中指定那样将表数据分区。此定义中使用的列被称为表分区键列。 这种组织方案可以单独地使用,也可与其他组织方案结合使用。通过组合使用CREATE TABLE 语句的DISTRIBUTE BY 和PARTITION BY 子句,可以将数据分布到跨多个表空间的数据库分区。该组织方案包括: ?DISTRIBUTE BY HASH ?PARTITION BY RANGE ?ORGANIZE BY DIMENSIONS 表分区功能可用于DB2? 企业服务器版Linux 版、UNIX 版和Windows 版版本9.1 和更高版本。 表分区的优点 如果下列任何情况适用于您和您的组织,请考虑表分区的许多优点: ?更容易转入和转出表数据使数据仓库受益 ?数据仓库包括大型表 ?您正在考虑从先前发行版或某个竞争数据库产品迁移至版本9.1 数据库 ?想要更有效地使用分层存储管理(HSM) 解决方案 表分区简化了表数据转入和转出以及管理工作,并且提高了索引位置的灵活性和查询处理效率。 有效转入和转出 表分区功能提高了表数据的转入和转出效率。这可通过使用ALTER TABLE 语句的 ATTACH PARTITION 和DETACH PARTITION 子句来实现。通过转入分区表数据,可以方便地将新范围作为附加数据分区合并到分区表中。通过转出分区表数据,可以方便地从分区表中分离出某些范围的数据,以进行后续清除或归档处理。 更容易管理大型表 由于您可以在各个数据分区上执行管理任务,因此表级别管理更灵活。这些任务包括:拆离和重新连接数据分区、备份和复原各个数据分区以及重组各个索引。通过将花费较

DB2日常维护手册

DB2 日常维护手册

目录 DB2日常维护手册 ............................................................................................................... - 1 - 一、DB2日常维护操作 ............................................................................................ - 1 - 1.检查管理服务器是否启动.................................................................................... - 1 - 2.检查DB2实例是否已经启动 ............................................................................... - 1 - 3.查看表空间状态是否正常.................................................................................... - 1 - 4.查看表的状态........................................................................................................ - 2 - 5.查看磁盘空间........................................................................................................ - 2 - 6.检查存储管理软件是否正常................................................................................ - 2 - 7.检查数据库备份是否正常.................................................................................... - 2 - 8.检查归档日志是否正确归档了............................................................................ - 3 - 9.查看缓冲池的命中率............................................................................................ - 3 - 10.查看当前运行最频繁的SQL,其命中率是否正常 ......................................... - 3 - 11.查看当前连接的应用程序,有没有非法连接 ................................................ - 3 - 12.检查有没有死锁 ................................................................................................ - 3 - 13.对表和索引进行runstats .................................................................................. - 3 - 14.检查表是否需要重组 ........................................................................................ - 4 - 15.对需要重组的表进行重组 ................................................................................ - 4 - 二、DB2日常维护月操作 ........................................................................................ - 4 - 1.查看DB2日志 ....................................................................................................... - 4 - 2.检查备份和日志是否都保存好了........................................................................ - 4 - 三、DB2日常维护季度操作 .................................................................................... - 5 - 1.通过快照监控器,查看系统性能如何 ................................................................ - 5 - 2.数据库补丁级别.................................................................................................... - 5 - 四、注意事项............................................................................................................ - 5 - 1.不要删除活动日志文件........................................................................................ - 5 - 2.注意交易日志存储空间........................................................................................ - 5 - 3.按照系统的实际工作量配置日志空间 ................................................................ - 5 - 4.设置正确数据库代码页........................................................................................ - 6 -

db2表空间详解

3.2 表空间设计 3.2.1 创建表空间 表空间建立数据库系统使用的物理存储设备与用来存储数据的逻辑对象或表之间的关系。对于非自动存储器表空间,在创建表空间时,必须知道将引用的容器的设备名或文件名。另外,必须知道与要分配给表空间的每个设备名或文件名及分配空间大小。对于自动存储器表空间,数据库管理器将根据与数据库关联的存储路径将容器指定给表空间。 在一个数据库内创建表空间,会将容器分配到表空间,并在数据库系统目录表中记录它的定义和属性,然后就可以在此表空间内创建表。当创建数据库时,会创建3个初始表空间。这3个初始表空间的页大小基于使用CREATE DA TABASE命令时建立或接受的默认值。此默认值还表示所有将来CREATE BUFFERPOOL和CREATE TABLESPACE语句的默认页大小。如果在创建数据库时不指定页大小,那么默认大小是4KB。如果在创建表空间时不指定页大小,那么默认页大小是创建数据库时设置的页大小。 创建表空间可以通过控制中心或命令行创建。 一、使用控制中心创建表空间 使用控制中心创建表空间 二、使用命令行创建表空间 1.创建用户表空间 创建SMS表空间: CREATE TABLESPACE MANAGED BY SYSTEM USING (‘’) 创建DMS表空间: CREATE TABLESPACE MANAGED BY DATABASE USING(DEVICE |FILE’) 创建自动存储器表空间

CREATE TABLESPACE 或CREATE TABLESPACE MANAGED BY AUTOMATIC STORAGE 例:1.在Windows上,使用3个不同的驱动器上的目录,创建SMS表空间 CREATE TABLESPACE TS1 MANAGED BY SYSTEM USING (‘d:\nxz_tbsp’,’e:\nxz_tbsp’,’f:\nxz_tbsp) 2.使用各自有5000页的两个文件容器创建了一个DMS表空间: CREATE TABLESPACE TS2 MANAGED BY DATABASE USING (FILE’d:\db2data\acc_tbsp’ 5000,FILE’e:\db2data\acc_tbsp’ 5000) 在创建DMS表空间时,表空间文件容器不需要重建,DB2自动来创建,但裸设备容器无法自动创建,需要root用户参与。 在示例中,为表空间容器提供了显式的名称。但是,如果指定相对容器名,那么将在为该数据库创建的子目录中创建容器。 在创建表空间容器时,数据库管理器会创建任何不存在的目录和文件。例如,如果将容器指定为/prod/user_data/container1,而目录/prod不存在,那么数据库管理器会创建目录/prod和/prod/user_data。 在Linux/UNIX上,数据库管理器创建的任何目录都是使用权限位700创建的。这意味着只有实例所有者才拥有读写访问权和执行访问权。因为只有实例所有者具有这种访问权,所以当正在创建多个实例时,可能会出现下列情况: ·使用与上面描述的相同的目录结构,假定目录级别/prod/user_data不存在。 ·user1创建一个实例(默认情况下命名为user1),接着创建一个数据库,然后创建一个表空间,且/prod/user_data/container1作为该表空间的一个容器。 ·user2创建一个实例(默认情况下命名为user2),接着创建一个数据库,然后创建一个表空间,且/prod/user_data/container2作为该表空间的一个容器。 因为数据库管理器根据第一个请求使权限位700创建了目录级别/prod/user_data,所以user2没有对这些目录级别的访问权,因此不能在这些目录中创建container2.在这种情况下,CREATE TABLESPACE操作将失败。 解决此冲突有两种方法: ·在创建表空间之前创建目录/prod/user_data,并将许可权设置为user1和user2创建表空间所需的任何访问权。如果所有级别的表空间目录都存在,那么数据库管理器不会修改访问权。 ·在user1创建/prod/user_data/container1之后,将/prod/user_data的许可权设置为user2创建表空间所需的任何访问权。 如果数据库管理器创建了一个子目录,那么在删除该表空间时数据库管理器也可能将该子目录删除。 例:1.在AIX上创建了一个使用具有10000页的3个裸设备作为表空间容器的DMS表空间,并指定它们的I/O特征。 CREATE TABLESPACE TS1 MANAGED BY DATABASE USING (DEVICE ‘/dev/rdblv6’ 10000,DEVICE ‘/dev/rdblv7’ 10000,DEVICE ‘/dev/rdblv8’ 10000) OVERHEAD 7.5 TRANSFERRATE 0.06 示例中的裸设备必须已经存在,且实例所有者和SYSADM组必须能够写入这些设备。 2.在Linux和UNIX系统上创建一个具有8KB页大小的SMS表空间。 CREATE TABLSESPACE SMS8K PAGESIZE 8192 MANAGED BY SYSTEM USING (‘FSMS_8K_1’ BUFFERPOOL BUFFERPOOL8K 示例中相关联的缓冲池必须具有相同的8KB页大小。而且只有在激活了创建的表空间

db2数据库

db2 backup db DBNAME online compress include logs 脱机备份 db2 force applications all Db2 backup db DBNAMEE compress 查看表空间 db2 list tablespace show detail //显示很多信息。 High water mark 曾经达到过的占用率 80%左右,要扩表空间或者清理数据 查看表状态 db2 load query table TABNAME 查看归档日志目录 db2 get db cfg for DBNAME|grep LOGARCHMETH1 数据库重整 Runstats ,reorgchk,计算是否需要重整 db2 diag。log文件,看中间是否有异常 Cd 演示 1,增加表空间(文件系统,裸设备) 2,查看表空间 3,循环日志变归档日志 4,脱机备份数据库 5,联机备份数据库 6,归档日志 7,load 数据 8,扩表空间

很多操作都要先关闭数据库,然后再开启,连接后再操作 3: Db2 updte db cfg for sample using Db2stop 停数据库 Db2start 启数据库 Db2 connect to sample 连接到数据库sample Db2 “import from test.del of del insert into DBNAME”从本地的DEL文件中导入数据中Db2 prune logfile prior to dddddd.log 日志 1: Db2 “alter Tablespace dms_dat4k extend //扩展表空间 Db2 termiate //写到当前目录。 空闲时备份 Db2 backup db Db2 list utilities show detail 查看备份信息 Db2 “export to staff.del of del select * from test ”//导出或者备份

db2中的常用命令及使用方法

db2中的常用命令及使用方法 一高(重要度) 1 启动一个db 2实例使用: net start instanceName 2 停止一个db 2实例使用: net stop instanceName 3 启动配置助手: db2=>!db2ca 4 手工配置连接: db2=>catalog node/db 5 删除视图: db2=>drop view view_name 6 创建表: db2=>create table tablename 7 列出活动的数据库和连接数: db2=>list active databases 8 断开所有应用程序与数据库的连接: db2=> force application all 9 以用户 通过使用密码 与标识为 的远程实例连接: db2=> attach to user using 10 创建名为 的数据库: db2=> create database 11 显式地使数据库失效: db2=> deactivate database 12 根据需要,显式地以用户 和密码 与数据库 连接:db2=> connect to [ [user ] using ] 13 断开与当前数据库的连接: db2=> connect reset 14 列出数据库中的表。如果没有指定任何参数,则缺省情况是列出当前用户的表:db2=> list tables[for {user | all | system | schema }][show detail] 15 显示一个表或视图的列信息: db2=> describe table 16确定是否需要对表进行重组。这对于对所有表自动执行runstats 很有用 db2=> reorgchk on table all 17通过重构行来消除“碎片”数据并压缩信息,对表进行重组 db2=> reorg table 18将数据库数据抽取到一个平面文件中 db2=> export 19通过使用IMPORT 实用程序,将数据导入到数据库 db2=> import 20返回LOAD 实用程序的进度 db2=> load query table [to local-message-file][nosummary | summaryonly] [showdelta] 21 创建索引:

db2 表空间统计sql

数据库表空间统计sql: 表空间信息统计: select substr(tbsp_name,1,20) as TABLESPACE_NAME,substr(tbsp_content_type,1,10) as TABLESPACE_TYPE,sum(tbsp_total_size_kb)/1024 as TOTAL_MB, sum(tbsp_used_size_kb)/1024 as USED_MB,sum(tbsp_free_size_kb)/1024 as FREE_MB,tbsp_page_size AS PAGE_SIZE from SYSIBMADM.TBSP_UTILIZATION group by tbsp_name,tbsp_content_type,tbsp_page_size order by 1 表空间中table大小统计sql: select t.tabschema, t.tabname, (t.DATA_OBJECT_P_SIZE + t.INDEX_OBJECT_P_SIZE + t.LONG_OBJECT_P_SIZE + t.LOB_OBJECT_P_SIZE + t.XML_OBJECT_P_SIZE) AS TOTAL_P_SIZE, t.DATA_OBJECT_L_SIZE DATA_OBJECT_L_SIZE, t.DATA_OBJECT_P_SIZE DATA_OBJECT_P_SIZE,

t.LONG_OBJECT_P_SIZE LONG_OBJECT_P_SIZE, t.LOB_OBJECT_P_SIZE LOB_OBJECT_P_SIZE, t.XML_OBJECT_P_SIZE XML_OBJECT_P_SIZE, t.INDEX_OBJECT_P_SIZE INDEX_OBJECT_P_SIZE, t1.card, t1.npages, t1.fpages, t1.tbspace from SYSIBMADM.ADMINTABINFO t, syscat.tables t1 where t.tabname=t1.tabname and t.tabschema=t1.tabschema and t1.tbspace in ( 'DATASPACE1','DATESPACE' ) order by TOTAL_P_SIZE desc

DB2试题及答案

1.1 01下列哪一组实体可以在ERD 中使用?D A. 产品,颜色,高度 B. 黄色,大,长 C. 约翰,狗,飞机 D. 人,动物,植物 02下列关于关系数据库的说法,哪一项是正确的?B ?A. 关系数据库不能存储视频或音频。 ?B. 表是由列和行组成的。 ?C. 同一个表中的行可以拥有不同的列集。 ?D. 行也称为表字段。 03下列哪些实体应该使用ERD 中的一对多关系?B ?A. 人,汽车 ?B. 公司,员工 ?C. 祖父,约翰 ?D. 母亲,孩子 ?B 04下列哪些是关系数据模型的组件?B ?A. 指针,集合,约束 ?B. 关系,属性,元组 ?C. 实例,记录类型,实体 ?D. 表,行,等级

?05下列哪一项表述是错误的?D ?A. 主键唯一地标识表中的行。 ?B. 外键是引用其他表主键的列集。 ?C. 主键和外键用于强制数据完整性。 ?D. 必须始终在表中定义主键。 ?06下列哪一项表述是错误的?A ?A. 关系模型中的属性映射到关系数据库中的行 ?B. 在ERD 中,用长方形表示实体 ?C. 一对一和多对多是可以在ERD 中表示的关系 ?D. 关系模型中的实体映射到关系数据库中的表 1.2 1.对于没有软件投资预算的小型创业公司,下列哪一种DB2 版本是理想选择?A A. DB2 Express-C B. DB2 Express C. DB2 Enterprise D. DB2 Workgroup A2. 假设你已经连接到TESTDB 数据库,下列哪些命令可以列出数据库配置设置?A A. db2 get db cfg B. db2 list db cfg

DB2 用户权限

DB2中的权限管理2008年11月05日星期三下午 09:57数据库权限分为实例权限级别(SYSADM、SYSCTRL、SYSMAINT、SYSMON)和数据库权限级别(DBAMD、LOAD)。SYSCTRL、SYSMAINT、SYSMON权限级别的用户不能访问数据,DBAMD、LOAD权限级别的用户可以访问数据。 数据库权限: CONNECT -允许用户连接数据库 BINDADD -允许用户在数据库中创建新的包 CREATETAB -允许用户在数据库中创建新的表 CREATE_NOT_FENCED -允许用户注册定义为 NOT FENCED 的用户定义函数(UDF)或存储过程IMPLICIT SCHEMA -允许用户在尚不存在的模式中创建对象(它自动地创建模式)* QUIESCE_CONNECT -允许用户连接处于 quiesced 状态的数据库 CREATE_EXTERNAL_ROUTINE -允许用户注册外部例程(用 C 和 Java 等外部语言编写的例程) 表空间特权: USE -允许用户在指定的表空间中创建表 模式特权: CREATEIN -允许用户在模式中创建对象 ALTERIN -允许用户在模式中修改对象 DROPIN -允许用户从模式中删除对象 表/视图特权: CONTROL -授予用户在表和视图上的所有特权,以及将这些特权(除了 CONTROL)授予别人ALTER -允许用户在表中添加列、在表和它的列上添加或修改注释、添加主键或惟一约束以及创建或删除表检查约束 DELETE -允许用户从表或视图中删除行 INDEX -允许用户在表上创建索引 INSERT -允许用户在表或视图中插入数据 REFERENCES -允许用户创建和删除外键,这需要指定关系中的父表 SELECT -允许用户从表或视图中检索行、在表上创建视图以及运行 EXPORT 实用程序UPDATE -允许用户修改表、视图或者表或视图中某些列中的数据;用户可以只在特定列上具有这种特权 索引特权: CONTROL -允许用户删除索引 包特权: CONTROL -允许用户重新绑定、删除或执行包,以及将这些特权(除了 CONTROL)授予别人BIND -允许用户重新绑定现有的包 EXECUTE -允许用户执行包 例程特权: EXECUTE 允许用户调用例程,从例程创建函数(只应用于函数),以及在任何 DDL 语句(比如 CREATE VIEW、CREATE TRIGGER 或定义约束时)中引用例程

相关主题
文本预览
相关文档 最新文档