论坛首页 综合技术版 Database

AIX建立DB2 表空间

浏览 276 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
最后更新时间:2008-06-18 关键字: aix db2表空间

    DB2表空间在windows机器上建立的脚本网上搜搜很多,因为它不涉及到权限问题所以大部分都可以直接执行,但是aix机器有所不同,下面这个建立表空间的语句肯定是正确的,但是直接执行就会报错 --- 因为它与UNIX系统有关联而与DB2没有关系。总感觉IBM有点则么说呢,把个aix弄得那么复杂,难怪没有黑客去攻击它,嘻嘻!

 

create tablespace STATSPACE managed by database using (device '/dev/rdb2stat' 100M)

 

    

    要想在AIX上建立表空间,首先要UNIX机器的一系列概念,诸如:卷组、裸设备、逻辑卷等等,还有就是文件/文件夹的权限设置等等,这些可以找个UNIX论坛补补,在这我就不谈了,只是就事论事,说说AIX上建立表空间的详细步骤(自己测试通过),由于无法将图片弄上,因而加了个附件

(本文档中介绍的方法是利用SecureCRT  telnet登录AIX服务器实现)

 

1root用户登录

 

2、输入smitty lv,进入界面选择“添加逻辑卷”,此时要求输入卷组名称,按快捷键F4,下方出现可以选择的卷组,敲入回车选中即跳入下一界面

3、逻辑卷名称任意输入自定义内容,该页需要注意的就是“逻辑分区数量”,因为逻辑分区数量的多少决定建立的逻辑卷大小,也就是后期表空间的最大值 --- 表空间是建立在该逻辑卷上的。假设要建立2G的逻辑卷,逻辑分区数量就是16

   ---- 计算方法:另外telnet到服务器,lsvg vg00(vg00是我要建立逻辑卷所在的卷组名称),有个参数PP size,由于我的机器是128,因而逻辑分区数量 = 2G / 128MB

 

4、一路回车完成逻辑卷的建立 --- 我建立的名称是db2stat

 

5、修改权限。单独建立完逻辑卷连接数据库执行创建表空间语句还会报错,没有写入权限。执行第一条语句 chmod 777 /dev/db2stat  第二条语句 chmod 777 /dev/rdb2set 至于第二条的rdb2stat为啥要这么写我也不太清楚,因为建表空间的语句中路径就是 /dev/rdb2stat 尽管我建立的逻辑卷名称是 db2stat。

 

6、重新以数据库用户登录(我的机器是db2admin)执行上文中提到的创建表空间语句即可

 

    当表空间建立好之后,执行 list tablespaces show detail 你会发现此时建立的表空间页的大小也就是pagesize = 4k,在商业程序中4K似乎太小,因而需要改变,目前没有发现好的改变办法,我的做法如下:

 

1、删除刚才建立的表空间 drop tablespace STATSPACE

 

2、建立缓冲区也就是 bufferpool (32K)

 

     CREATE BUFFERPOOL BP32K IMMEDIATE SIZE 2000 NUMBLOCKPAGES 0 PAGESIZE 32K

 

3、修改建立表空间的语句

 

     create tablespace STATSPACE pagesize 32K managed by database using (device '/dev/rdb2stat' 100M)  bufferpool BP32K

 

4、此时再运行 list tablespaces show detail,就会看到表空间页的大小已经变为32K了

    

    虽然这样的方法比较笨,但是至少能实现目标呵呵。大家一起探讨探讨,是不是可以直接修改已经创建好的表空间的页大小

   
论坛首页 综合技术版 Database

跳转论坛:
JavaEye推荐