欢迎来到冰豆网! | 帮助中心 分享价值,成长自我!
冰豆网
全部分类
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • 党团工作>
  • ImageVerifierCode 换一换
    首页 冰豆网 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    db2表空间详解.docx

    • 资源ID:23986507       资源大小:864.19KB        全文页数:19页
    • 资源格式: DOCX        下载积分:10金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    db2表空间详解.docx

    1、db2表空间详解3.2 表空间设计3.2.1 创建表空间表空间建立数据库系统使用的物理存储设备与用来存储数据的逻辑对象或表之间的关系。对于非自动存储器表空间,在创建表空间时,必须知道将引用的容器的设备名或文件名。另外,必须知道与要分配给表空间的每个设备名或文件名及分配空间大小。对于自动存储器表空间,数据库管理器将根据与数据库关联的存储路径将容器指定给表空间。在一个数据库内创建表空间,会将容器分配到表空间,并在数据库系统目录表中记录它的定义和属性,然后就可以在此表空间内创建表。当创建数据库时,会创建3个初始表空间。这3个初始表空间的页大小基于使用CREATE DATABASE命令时建立或接受的默

    2、认值。此默认值还表示所有将来CREATEBUFFERPOOL和CREATETABLESPACE语句的默认页大小。如果在创建数据库时不指定页大小,那么默认大小是4KB。如果在创建表空间时不指定页大小,那么默认页大小是创建数据库时设置的页大小。创建表空间可以通过控制中心或命令行创建。一、使用控制中心创建表空间使用控制中心创建表空间 二、使用命令行创建表空间1.创建用户表空间创建SMS表空间:CREATE TABLESPACE MANAGED BY SYSTEM USING ()创建DMS表空间:CREATE TABLESPACE MANAGED BY DATABASE USING(DEVICE |

    3、FILE)创建自动存储器表空间CREATE TABLESPACE 或 CREATE TABLESPACE MANAGED BY AUTOMATIC STORAGE例:1.在Windows上,使用3个不同的驱动器上的目录,创建SMS表空间CREATE TABLESPACE TS1 MANAGED BY SYSTEMUSING (d:nxz_tbsp,e:nxz_tbsp,f:nxz_tbsp)2.使用各自有5000页的两个文件容器创建了一个DMS表空间:CREATE TABLESPACE TS2 MANAGED BY DATABASEUSING (FILEd:db2dataacc_tbsp 50

    4、00,FILEe:db2dataacc_tbsp 5000)在创建DMS表空间时,表空间文件容器不需要重建,DB2自动来创建,但裸设备容器无法自动创建,需要root用户参与。在示例中,为表空间容器提供了显式的名称。但是,如果指定相对容器名,那么将在为该数据库创建的子目录中创建容器。在创建表空间容器时,数据库管理器会创建任何不存在的目录和文件。例如,如果将容器指定为/prod/user_data/container1,而目录/prod不存在,那么数据库管理器会创建目录/prod和/prod/user_data。在Linux/UNIX上,数据库管理器创建的任何目录都是使用权限位700创建的。这意味

    5、着只有实例所有者才拥有读写访问权和执行访问权。因为只有实例所有者具有这种访问权,所以当正在创建多个实例时,可能会出现下列情况:使用与上面描述的相同的目录结构,假定目录级别/prod/user_data不存在。user1创建一个实例(默认情况下命名为user1),接着创建一个数据库,然后创建一个表空间,且/prod/user_data/container1作为该表空间的一个容器。user2创建一个实例(默认情况下命名为user2),接着创建一个数据库,然后创建一个表空间,且/prod/user_data/container2作为该表空间的一个容器。因为数据库管理器根据第一个请求使权限位700创建

    6、了目录级别/prod/user_data,所以user2没有对这些目录级别的访问权,因此不能在这些目录中创建container2.在这种情况下,CREATE TABLESPACE操作将失败。解决此冲突有两种方法:在创建表空间之前创建目录/prod/user_data,并将许可权设置为user1和user2创建表空间所需的任何访问权。如果所有级别的表空间目录都存在,那么数据库管理器不会修改访问权。在user1创建/prod/user_data/container1之后,将/prod/user_data的许可权设置为user2创建表空间所需的任何访问权。如果数据库管理器创建了一个子目录,那么在删除

    7、该表空间时数据库管理器也可能将该子目录删除。例:1.在AIX上创建了一个使用具有10000页的3个裸设备作为表空间容器的DMS表空间,并指定它们的I/O特征。CREATE TABLESPACE TS1 MANAGED BY DATABASEUSING (DEVICE /dev/rdblv6 10000,DEVICE /dev/rdblv7 10000,DEVICE /dev/rdblv8 10000) OVERHEAD 7.5 TRANSFERRATE 0.06示例中的裸设备必须已经存在,且实例所有者和SYSADM组必须能够写入这些设备。2.在Linux和UNIX系统上创建一个具有KB页大小的

    8、SMS表空间。CREATE TABLSESPACE SMS8K PAGESIZE 8192 MANAGED BY SYSTEMUSING (FSMS_8K_1 BUFFERPOOL BUFFERPOOL8K示例中相关联的缓冲池必须具有相同的8KB页大小。而且只有在激活了创建的表空间所引用的缓冲池之后才能使用该表空间。2.创建系统临时表空间系统临时表空间用来存储分组、排序、连接、重组、创建索引操作。数据库必须始终至少有一个这样的表空间。创建数据库时,定义的3个默认表空间之一便是名为“TEMPSPACE1”的系统临时表空间。创建名为tmp_tbsp的表空间CREATE SYSTEM TEMPORA

    9、RY TABLESPACE tmp_tbsp MANAGED BY SYSTEM USING (d:tmp_tbsp,e:tmp_tbsp)对于每个页大小至少应该具有一个和该页大小匹配的系统临时表空间。3.创建用户临时表空间用户临时表空间不是在创建数据库时默认创建的。如果应用程序需要使用临时表,则需要创建用来驻留临时表的用户临时表空间。用户临时表空间通常用来批量插入、批量更新和批量删除以加快速度。使用DECLARE GLOBAL TEMPORARY TABLE语句声明临时表时必须要求用户临时表空间存在。创建名为usr_tmp的用户临时表空间CREATEUSERTEMPORARYTABLESPA

    10、CEusr_tbsp MANAGED BY DATABASE USING(FILE d:db2datauser_tbsp 5000,FILEe:db2datauser_tbsp 5000)3.2.2 表空间维护1.查看表空间可以使用DB2 LIST TABLESPACESSHOW DETAIL来查看表空间的详细信息。LIST TABLESPACES命令的输出信息如下: 当前数据库的表空间 表空间标识 = 0 名称 = SYSCATSPACE 类型 = 数据库管理空间 内容 = 所有持久数据。常规表空间。 状态 = 0x0000 详细解释:正常 表空间标识 = 1 名称 = TEMPSPACE1

    11、 类型 = 系统管理空间 内容 = 系统临时数据 状态 = 0x0000 详细解释:正常 表空间标识 = 2 名称 = USERSPACE1 类型 = 数据库管理空间 内容 = 所有持久数据。大型表空间。 状态 = 0x0000 详细解释:正常图示中的3个表空间都是通过CREATE DATABASE 命令自动创建的。用户可以通过在该命令中定制表空间选项来覆盖默认的表空间创建选项。但是在创建数据库时必须创建一个系统编目表空间和至少一个常规表空间,以及至少一个系统临时表空间。通过使用CREATE DATABASE命令或以后使用CREATE TABLESPACE命令,可以创建更多的所有类型的表空间(

    12、系统表空间除外)。上述3个表空间中,系统编目表空间和系统临时表空间都是只读的,用户不可以在上面创建用户表,如下所示:C:Documents and SettingsAdministratordb2 create table t(i int) in syscatspaceDB21034E 该命令被当作 SQL 语句来处理,因为它是无效的“命令行处理器”命令。在SQL 处理期间,它返回:SQL0287N SYSCATSPACE 不可用于用户对象。 SQLSTATE=42838查看表空间及容器的属性指定LIST TABLESPACES命令的SHOW DETAIL选项将显示其他信息:LIST TABL

    13、ESPACES SHOW DETAIL默认情况下,将列出创建数据库时所创建的3个表空间。LIST TABLESPACES SHOW DETAIL命令的输出信息如下:要列出容器,我们需要使用以上输出中的Tablespace ID:LIST TABLESPACE CONTAINERS FOR 2查看表空间容器的情况,使用LIST TABLESPACE CONTAINERS命令:该命令将列出指定表空间中的所有容器。如上所示的路径指向容器物理上所在的位置。表空间状态查看一个数据库中的表空间的状态,可以使用命令:LIST TABLESPACES SHOW DETAIL一个表空间可以有多种不同的状态,如下

    14、所示:2.修改表空间可使用控制中心或命令行来改变表空间。要使用命令行来改变表空间,可使用ALTER TABLESPACE语句。可以改变SMS、DMS和自动存储器容器,还可以重命名表空间,并将它从脱机方式改为联机方式。对于SMS表空间,我们只能增加容器,对于DMS表空间,可以添加、扩展、重新平衡、删除或减少容器,或者调整容器大小。添加或扩展DMS容器通过将一个或多个容器添加至DMS表空间,可以增大该表空间的大小。当将新容器添加到表空间或扩展现有容器时,可能会发生表空间重新平衡(rebanlance)。重新平衡过程涉及将表空间扩展数据块从一个位置移至另一位置。在此过程中,将尝试在表空间内分割数据。

    15、重新平衡不必在所有容器上进行,但这取决于许多因素,例如现有容器配置、新容器的大小和表空间满的程度。在重新平衡期间,不限制对该表空间的访问。如果需要添加多个容器,那么应该同时添加这些容器,以减少重新平衡的次数。虽然重新平衡期间表空间仍然可以访问,但是我们还是尽量避免在业务高峰期间增减容器,因为数据重新平衡期间系统上有很大的I/O活动。要使用命令行将容器添加到DMS表空间,可以使用以下命令:ALTER TABLESPACE ADD (DEVICE ,FILE )例:在Linux/UNIX系统上,将两个各含10000页的新设备容器添加到表空间ALTER TABLESPACE TS1 ADD (DEV

    16、ICE /dev/rhd9 10000, DEVICE /dev/rhd10 10000)添加容器会涉及到表空间容器的重新平衡,如果不想重新平衡表空间,可以使用表空间扩展来修改容器大小,因为extend不会重新平衡表空间数据。2.在Linux/UNIX系统上,将所有容器扩展10000页添加到表空间ALTER TABLESPACE TS1 EXTEND (ALL,10000)调整DMS容器的大小不能手动调用自动存储器表空间中容器的大小,否则将报错,如下所示:只能将每个操作系统裸设备用作一个容器。创建了裸设备之后,其大小是固定的。如果使用调整大小或扩展选项来增大裸设备容器时,应先用操作系统命令检查

    17、裸设备大小以确保您使用ALTER TABLESPACE命令并未将裸设备大小增大到大于裸设备大小。要缩小现有容器的大小,可使用RESIZE选项或REDUCE选项。使用RESIZE选项时,作为语句的一部分列示的所有容器都必须增大大小或减小大小。不能在同一语句中增大某些容器而缩小其他容器。如果知道容器大小的新下限,应考虑调整大小的方法。如果不知道容器的当前大小,那么应该考虑缩小方法。缩小DMS表空间中一个或多个容器的大小的命令,如下所示:ALTER TABLESPACE REDUCE (FILE )例:在Windows系统上的表空间中缩小文件容器(原来为1000页):ALTER TABLESPACE

    18、 PAYROLL REDUCE (FILE d:hldrfinance 200)执行该操作后,文件大小就从1000页减少到800页。增大DMS表空间中一个或多个容器的大小的命令,如下所示:ALTER TABLESPACE RESIZE (DEVICE )例:在Linux/UNIX系统上的表空间中增大两个设备容器(原来为1000页):ALTER TABLESPACE HISTORY RESIZE (DEVICE /dev/rhd7 2000,DEVICE /dev/rhd8 2000)执行该操作后,两个设备的大小都从1000页增加至2000页。扩展DMS表空间中一个或多个容器的命令,如下所示:A

    19、LTER TABLESPACE EXTEND (FILE )例:在Windows系统上的表空间中增大文件容器(原来大小为1000):ALTER TABLESPACE PERSONAL EXTEND (FILE e:wrkhist1 200,FILE f:wrkhist2 200)执行该操作后,两个文件的大小都从1000页增大至1200页。删除或减少DMS容器对于DMS表空间,可以使用ALTER TABLESPACE语句从表空间中删除容器或缩小容器的大小。要缩小容器,在ALTER TABLESPACE语句上使用REDUCE或RESIZE选项。要删除容器,在ALTER TABLESPACE语句上使

    20、用DROP选项。仅当正在删除或缩小其大小的扩展数据块数目小于或等于表空间中“高水位标记”之上的可用数据块数目时,才允许删除现有表空间容器以及缩小现有容器的大小。高水位标记是表空间中分配的最高页的页数。次标记与表空间中已使用的页的数目不同,高水位标记下的某些扩展数据块可能可供复用。表空间中高水位标记之上的可用扩展数据块数非常重要,原因是直至高水位标记(包括高水位标记)的所有扩展数据块必须位于表空间内的同一逻辑位置。结果表空间必须有足够的空间才能容纳所有数据。如果没有足够的可用空间,那么会产生一条错误信息(SQL20170N或SQLSTATE57059)。要删除容器,可在ALTER TABLESP

    21、ACE语句上使用DROP选项。例如:ALTER TABLESPACE TS1 DROP (FILE file1, DEVICE /dev/rdisk1)改变自动存储器表空间对于自动存储器表空间,不能手动调整自动存储器表空间的大小,数据库管理器将在需要时自动调整容器大小。3.重命名表空间可以使用RENAME TABLESPACE 语句来重命名表空间。不能重命名SYSCATSPACE表空间。不能重命名处于“前滚暂挂”或“正在前滚”状态的表空间。可以给予现有表空间新名称,而无需关心该表空间中的个别对象。重命名表空间时,将更改所有引用该表空间的目录记录。例如:RENAME TABLESPACE TS1

    22、 TO TS2当复原在备份后已被重命名的表空间时,必须在RESTORE DATABASE命令中使用新的表空间名。如果使用先前的表空间名,那么将找不到该名称。同样,如果使用ROLLFORWARD DATABASE命令前滚该表空间,也需要确保使用新名称。如果使用先前表空间名,那么将找不到该名称。4.将表空间从脱机状态切换至联机状态如果与表空间相关的容器不可访问,这时表空间处于OFFLINE状态,要使用命令行从表空间中除去OFFLINE状态,请输入:ALTER TABLESPACE SWITCH ONLINE在一个双机热备HA环境中,客户在主机上重新创建了使用裸设备的表空间后,未同步HA环境,结果导

    23、致主机故障切换到备机时,由于裸设备权限不正确而导致表空间处于OFFLINE状态,此时就需要修改到ONLINE状态。5.删除表空间当删除表空间时,也会删除该表空间中的所有数据,释放容器,除去目录条目,并导致该表空间中定义的所有对象都被删除或标记为无效。可以通过删除表空间来重用空表空间中的容器,但是,在试图重用这些容器之前,必须落实DROP TABLESPACE语句。删除用户表空间可删除一个包含所有表数据的用户表空间,包括在该单个用户表空间中的索引和LOB数据。也可删除所包含的表跨几个表空间的用户表空间。即,可能表数据在一个表空间,索引在另一个表空间且任何LOB数据在第3个表空间。必须在一条语句中

    24、同时删除所有3个表空间。包含跨越的表的所有表空间必须全部纳入此单条语句中,否则该删除请求将失败。例如创建表的定义如下:create table table1(picno int,pic clob(lg)in data_space index index_space long in lob_space只能同时删除3个表空间:DROP TABLESPACE DATA_SPACE,INDEX_SPACE,LOB_SPACE删除用户临时表空间仅当用户临时表空间中当前未定义已声明临时表时,才能删除该表空间。当删除表空间时,不会尝试删除该表空间中所有已声明临时表。已声明临时表是在说明它的应用程序与数据库断

    25、开连接时隐式删除的。删除系统临时表空间如果不首先创建另一系统临时表空间,那么不能删除页大小为4KB的默认系统临时表空间。新的系统临时表空间必须具有4KB页大小,原因是数据库必须始终存在至少一个具有4KB页大小的系统临时表空间。例如,如果具有页大小为4KB的单个系统临时表空间,并且您想要将一个容器添加到该表空间(它是SMS表空间),那么必须首先添加一个具有适当数目的容器的新4KB页大小的系统临时表空间,然后删除旧的系统临时表空间(如果正在使用DMS,那么可以添加容器而不必删除并重新创建表空间)。默认系统临时表空间页大小是创建数据库时使用的页大小(默认情况下为4KB),但也可以为8KB,16KB或

    26、32KB。下面是用来创建系统临时表空间的语句:CREATE SYSTEM TEMPORARY TABLESPACE MANAGED BY SYSTEM USING ()创建之后,要使用命令行删除系统表空间,请输入:DROP TABLESPACE 例:创建一个名为TEMPSPACE2的系统临时表空间。create system temporary tablespace TEMPSPACE2 managed by system using (d:system2)一旦创建了TEMPSPACE2,就可以删除原来的系统临时表空间。drop tablespace TEMPSPACE3.2.3 表空间设计注

    27、意事项1.表空间类型选择SMS表空间优点:根据需要,系统按需分配空间由于不必须定义容器,所以创建表空间需要的初始工作较少DMS表空间优点:通过使用ALTER TABLESPACE 语句,可添加或扩展容器来增加表空间的大小。现有数据可自动在新的容器集合中重新平衡,以保持最佳I/O效率根据存储的数据的类型,可以把一个表长字段(LF)和大对象(LOB)数据、索引和常规表数据分割存放在多个表空间中以提高性能和空间存储容量。通过分割表数据,可以提高性能和增加每个表存储的数据量。例如,如果您要使用4KB页大小的大型表空间,那么可以有一个包含2TB正规表数据的表、有一个包含2TB索引数据的单独表空间和另一个

    28、包含2TB长型数据数据的单独表空间。如果这3中类型的数据存储在一个表空间中,那么总空间将限制为2TB。使用较大的页大小将存储更多数据。对范围分区数据创建的索引可以与表数据存储在不同的表空间中在操作系统允许的情况下,可控制数据在磁盘上的位置DMS表空间的性能通常优于SMS表空间对于性能要求很高的应用程序,特别是设计大量DML操作的应用程序,建议使用DMS表空间。其实DMS的优势,就是数据在物理磁盘上的连续性。SMS使用操作系统来管理空间,虽然从逻辑上看,看似所有的文件都是连续的,但是在物理磁盘上,每次文件的增大都必须要分配新的空间。所以从操作系统看来,所谓的“分配”不过是在inode节点中增加个

    29、指向页的偏移,这个页是操作系统寻找出来没有被使用的,因此从磁盘上看来,一个文件可以被分切成很多块存储在不同的地方尽管逻辑上它们是连续的。这也就是能够动态增加size的SMS文件的致命伤。不像DMS,分配完成之后一般不会随意增加或者减少size,SMS的size增加有时可能非常频繁,因此每个文件在物理磁盘上的存储会被划分成一个个小块,这样的话尽管在逻辑上它们的条带化还是连续的,但是从物理磁盘上看它们每个extent之间可能并非连续,无法使用range prefetch直接从磁盘上读取几个连续的extent。而且在这两种类型的表空间上,数据的放置也会有所不同。例如,进行高效表扫描要求扩展数据块中的

    30、页在物理上是连续的。对于SMS,操作系统的文件系统决定了每个逻辑文件页的物理存放位置。根据文件系统上其他活动的级别以及用来确定放置位置的算法的不同,可能会连续分配这些页,也可能不会。但是,对于DMS,因为数据库管理器直接与磁盘打交道,所以它可以确保这些页在物理上是连续的。通常,小型个人数据库用SMS表空间管理最容易。另一方面,对于不断增长的大型数据库,建议使用SMS表空间用作临时表空间和系统临时表空间,而使用具有多个容器的单独的DMS表空间用于每个表。另外,建议将长子段(LF)数据和索引存储在他们自己的表空间中。选择表空间主要考虑以下几方面的因素。表中的数据量如果计划在一个表空间存储许多小表,

    31、那么考虑使用SMS充当该表空间。对于小表,DMS表现在I/O和空间管理效率方面的优点就没有那么重要。SMS的优点(仅在需要时使用)却对小表更具吸引力。如果一个表较大或者您需要更快地访问表空的数据,应考虑具有较小扩展数据块大小的DMS表空间。设计数据库时,可以考虑对每个非常大的表都使用单独的DMS表空间,而将所有的小表组合在单个SMS表空间中。这种分隔还允许您根据表空间的使用选择适当的扩展数据块大小。表数据的类型例如,有的表可能包含不经常使用的历史记录数据;最终用户可能愿意接受较长的响应时间,来等待对此数据执行的查询。在这种情况下,可以为历史记录表使用单独的一个表空间,并将次表空间分配给访问速率较低的较便宜的物理设备。此外,对于某些表,数据快速以及快速


    注意事项

    本文(db2表空间详解.docx)为本站会员主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2022 冰点文档网站版权所有

    经营许可证编号:鄂ICP备2022015515号-1

    收起
    展开