- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
db2表空间详解
3.2表空间设计3.2.1创建表空间表空间建立数据库系统使用的物理存储设备与用来存储数据的逻辑对象或表之间的关系。对于非自动存储器表空间,在创建表空间时,必须知道将引用的容器的设备名或文件名。另外,必须知道与要分配给表空间的每个设备名或文件名及分配空间大小。对于自动存储器表空间,数据库管理器将根据与数据库关联的存储路径将容器指定给表空间。在一个数据库内创建表空间,会将容器分配到表空间,并在数据库系统目录表中记录它的定义和属性,然后就可以在此表空间内创建表。当创建数据库时,会创建3个初始表空间。这3个初始表空间的页大小基于使用CREATE DATABASE命令时建立或接受的默认值。此默认值还表示所有将来CREATE BUFFERPOOL和CREATE TABLESPACE语句的默认页大小。如果在创建数据库时不指定页大小,那么默认大小是4KB。如果在创建表空间时不指定页大小,那么默认页大小是创建数据库时设置的页大小。创建表空间可以通过控制中心或命令行创建。一、使用控制中心创建表空间使用控制中心创建表空间二、使用命令行创建表空间1.创建用户表空间创建SMS表空间:CREATE TABLESPACE NAME MANAGED BY SYSTEM USING (‘path’)创建DMS表空间:CREATE TABLESPACE NAME MANAGED BY DATABASE USING(DEVICE |FILE’path’size)创建自动存储器表空间CREATE TABLESPACE NAME或 CREATE TABLESPACE NAME 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 (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 DATABASEUSING (DEVICE ‘/dev/rdblv6’ 10000
原创力文档


文档评论(0)