DavidLv 发表于 2011-6-29 19:46:34

Informix之onspaces语法及实例(表空间管理)

1、基本用法:
$ onspaces --
Usage:
onspaces { -a <spacename> -p <path> -o <offset> -s <size> [-m <path> <offset>]
               { { [-Mo <mdoffset>] [-Ms <mdsize>] } | -U }
               } |
          { -c { -d <DBspace> [-k <pagesize>] [-t]
                  -p <path> -o <offset> -s <size> [-m <path> <offset>] } |
               { -d <DBspace> [-k <pagesize>]
                  -p <path> -o <offset> -s <size> [-m <path> <offset>]
                  [-ef <first_extent_size>] [-en <next_extent_size>] } |
               { -b <BLOBspace> -g <pagesize>
                  -p <path> -o <offset> -s <size> [-m <path> <offset>] } |
               { -S <SBLOBspace> [-t]
                  -p <path> -o <offset> -s <size> [-m <path> <offset>]
                  [-Mo <mdoffset>] [-Ms <mdsize>] [-Df <default-list>] } |
               { -x <Extspace> -l <Location> } } |
          { -d <spacename> [-p <path> -o <offset>] [-f] [-y] } |
          { -f off [<DBspace-list>] | on [<DBspace-list>] } |
          { -m <spacename> {-p <path> -o <offset> -m <path> <offset> [-y] |
                            -f <filename>} } |
          { -r <spacename> [-y] } |
          { -s <spacename> -p <path> -o <offset> {-O | -D} [-y] } |
          { -ch <sbspacename> -Df <default-list> } |
          { -cl <sbspacename> } |
          { -ren <spacename> -n <newname> }
    -a- Add a chunk to a DBspace, BLOBspace or SBLOBspace
    -c- Create a DBspace, BLOBspace, SBLOBspace or Extspace
    -d- Drop a DBspace, BLOBspace, SBLOBspace, Extspace, or chunk
    -f- Change dataskip default for specified DBspaces
    -m- Add mirroring to an existing DBspace, BLOBspace or SBLOBspace
    -r- Turn mirroring off for a DBspace, BLOBspace or SBLOBspace
    -s- Change the status of a chunk
    -ch - Change default list for smart large object space
    -cl - garbage collect smart large objects that are not referenced
    default-list = {[,ACCESSTIME = {ON|OFF}]
            [,AVG_LO_SIZE = {1 - 2097152}] }
    -ren - Rename a DBspace, BLOBspace, SBLOBspace or Extspace
2、实例:

Informix 表空间操作
onstat -d                     #查看表空间信息
1)创建dbspace表空间步骤:
touch 表空间路径/表空间文件名                                                            
#例如:touch /home/db/informix/dbs/dbstest
chmod 660 表空间路径/表空间文件名                                                         
#例如:chmod 660 /home/db/informix/dbs/dbstest
onspaces -c -d 表空间名 -p 表空间路径/表空间文件名-o 偏移量 -s 空间大小(以字节为单位)   
#例如:onspaces -c -d dbstest -p /home/db/informix/dbs/dbstest-o 200000 -s 1000000
2)创建blobspace表空间步骤:
touch 表空间路径/表空间文件名                                                            
#例如:touch /home/db/informix/dbs/blobsptest
chmod 660 表空间路径/表空间文件名                                                         
#例如:chmod 660 /home/db/informix/dbs/blobsptest
onspaces -c -b 表空间名 -g 50 -p 表空间路径/表空间文件名-o 偏移量 -s 空间大小(以字节为单位)   
#例如:onspaces -c -b blobsptest -g 50 -p /home/db/informix/dbs/blobsptest-o 200000 -s 1000000
3)创建sbspaces表空间步骤:
touch 表空间路径/表空间文件名                                                            
#例如:touch /home/db/informix/dbs/sbspacetest
chmod 660 表空间路径/表空间文件名                                                         
#例如:chmod 660 /home/db/informix/dbs/sbspacetest
onspaces -c -s 表空间名 -p 表空间路径/表空间文件名-o 偏移量 -s 空间大小(以字节为单位)   
#例如:onspaces -c -s blobsptest -p /home/db/informix/dbs/sbspacetest-o 200000 -s 1000000
4)删除dbspace or sbspace表空间步骤:
onspaces -d 表空间名
5)增加chunk到dbspace or blobspace or subspace 表空间步骤:
touch 表空间路径/表空间文件名                                                            
#例如:touch /home/db/informix/dbs/dbchunk
chmod 660 表空间路径/表空间文件名                                                         
#例如:chmod 660 /home/db/informix/dbs/dbchunk
onspaces -a 需要增加空间的表空间名 -p 表空间路径/表空间文件名-o 偏移量 -s 空间大小(以字节为单位)   
#例如:onspaces -a datadbs -p /home/db/informix/dbs/sbspacetest-o 200000 -s 1000000
6)删除chunk的步骤:
onmode -s   #根据提示选则‘y’
onstat -      #确定数据库为‘Quiescent’状态
onspaces -d 删除的dbchunk所属的表空间名 -p 表空间路径/要删除的chunk名 -o 偏移量   
#onspaces -d blobsptest -p /home/db/informix/dbs/dbchunk -o 200000
7) 关于偏移量offset的一点说明:
偏移量offset的作用:
       用offset来控制CHUNK的起始位置,防止同一逻辑卷上两个chunk的重合。现在系统绝大部分不需要考虑offset值这个问题。。0亦可。。有时我们留一点空间,只是习惯了。

以下是在同一个文件上建2个chunk的示例,这里offset就显得有用了。
比如说同一个逻辑卷,想要拆成两个CHUNK,就要用到offset了,要不后面的CHUNK与前面的就重合了!用offset来控制CHUNK的起始位置!

从这个文件(设备)开始(0位) 偏移的大小。。

路径,偏移量,大小 3个加起来共同确定一个chunk空间比如(以下用页表示):
路径                      偏移量                     大小
/dev/rlvuserdbs          0                        2000   
/dev/rlvuserdbs         2000                   2000
这两个chunk都在同一个文件上,通过偏移量确定了其位置。。

8)用informix用户登录将数据库重新设置为on-line 状态:
运行onmode -s,然后onstat -,看到数据库处于shutting down状态,怎样才能恢复到online状态?
用informix用户登录,运行 onmonitor, 选择 Mode 项,再选择 On-Line 即可

9)关于删除批量记录后表空间的回收以及索引问题
informix 库在批量记录操作后,如果不对表空间的回收以及索引整理会严重影响数据库的处理效率,对此处理方法如下:
做update statistics,
回收空间可以重新建表,或者,可能做一个cluster index或许会有效
用了单个表的update statistics


------------------------------------------------------------

更多相关信息请参看原文地址:http://www.test-abc.com/forum.php?mod=viewthread&tid=187&extra=page%3D1

zxlqyn 发表于 2011-7-25 17:51:31

支持楼主 哈哈



























http://bbs.hangzhou.com.cn/images/default/sigline.gif
女明星八个祛痘的小窍门

孟胡范b 发表于 2011-10-24 20:18:41

感谢楼主辛苦发贴。吞噬星空http://www.kanshu.la/
页: [1]
查看完整版本: Informix之onspaces语法及实例(表空间管理)