Chinaunix首页 | 论坛 | 博客
  • 博客访问: 544399
  • 博文数量: 92
  • 博客积分: 980
  • 博客等级: 准尉
  • 技术积分: 1427
  • 用 户 组: 普通用户
  • 注册时间: 2011-09-25 20:34
文章分类

全部博文(92)

文章存档

2015年(3)

2014年(15)

2013年(27)

2012年(38)

2011年(9)

分类: DB2/Informix

2012-12-15 14:01:27

1、创建数据库,使用automatic storage yes作为条件

db2 "create database testdb automatic storage yes on /dbauto dbpath on /database using codeset utf-8 territory cn collate using system";

2、创建完毕后,查看建立的目录中的文件,并和建立的表空间中的文件进行对应:

首先,查看全部的表空间,获得表空间的编号和名称:


其次,查看表空间容器和创建数据库时指定的dbauto和dbpath的对应关系:

系统编目表空间


对应的表空间容器:


临时表空间


对应的表空间容器:


用户表空间


对应的表空间容器:



通过上图的对应关系,可以看到,启用了automatic storage yes 建立的数据库,其默认原始建立的三个表空间,即:

系统编目表空间、系统临时表空间、用户表空间,都是指定在dbauto目录下的。事实上,自动存储管理,底层还是DMS和SMS,即对临时表空间使用SMS,对用户表空间和编目表空间,使用DMS管理。


3、对默认建立的DMS类型的表空间,进行扩容操作

由于SMS类型的表空间的空间控制是由操作系统控制的,所以只能对DMS类型的表空间进行扩容操作:

对用户表空间进行扩容操作:


发现不允许进行类似的操作。

由此证明了,使用automatic storage yes 建立的数据库,其默认建立的DMS表空间是自动管理的,不允许用户进行干预;


4、修改用户表空间,使用自定义的DMS 表空间代替

创建一个DMS类型的用户表空间:


查看目前的用户表空间:



删除原来的用户表空间USERSPACE1:


删除完毕后,查看表空间:


对这个表空间进行扩容:



扩容成功;


5、创建一个catalog编目表空间,并进行原来的编目表空间的替换:

尝试创建一个编目表空间替代原来的编目表空间:


不能 创建,这是因为编目表空间是在创建数据库时同时创建的;


经过以上测试,得出以下结论:

1、使用automatic storage yes创建的数据库,会在指定的dbauto的路径下建立三个默认表空间,且这样建立的DMS类型的表空间不能人为干预其大小(数据库管理);

2、使用automatic storage yes创建的数据库,手动建立的其他的DMS类型的数据库,只要不指定其为自动管理,都可以人工调整其大小;

3、使用automatic storage yes创建的数据库,允许建立自动管理的DMS类型的表空间;

4、使用automatic storage yes创建的数据库,其编目表空间是保存在文件夹下的,其大小会受限于操作系统的文件夹和数据文件的大小限额,所以,建议在创建生产库的时候,将编目表空间使用非自动管理的方式,建立到裸设备上,即得到良好的扩展性,也得到了比较好的性能。


综上,在建立测试库的时候,可以使用automatic storage yes创建的数据库;

但是,在建立生产库的时候,需要使用规划好的存储进行建立。

 

阅读(1235) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~