littlebode 发表于 2013-1-25 22:36:45

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服务器实现)
<span style="" /> 
1、root用户登录
<span style=""> 
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
<span style=""> 
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
<span style=""> 
4、此时再运行 list tablespaces show detail,就会看到表空间页的大小已经变为32K了
    
    虽然这样的方法比较笨,但是至少能实现目标呵呵。大家一起探讨探讨,是不是可以直接修改已经创建好的表空间的页大小
页: [1]
查看完整版本: AIX建立DB2 表空间