informix 中chunk/dbspace概念

chunk与dbspace的概念
chunk :chunk是ONLINE的物理存储实体, 是磁盘上的一块连续的物理空间,ONLINE数据最终存放于此,我们可设置chunk的个数和大小。
dbspace:是一个逻辑上的概念,较chunk高一层,实际上是由一个或多个chunk组合而成。每个dbspace至少包含一个chunk来存储数据,在用onspace指令创建dbspace时即须指令其初始chunk。
chunk与dbspace的关系
       当我们建立数据库或表时,不直接与某个chunk关联,库或表建立在dbspace上,库或表的数据存放在dbspace的chunk中,至于数据最终放在dbspace的哪个chunk上,则由系统内部自身决定。当dbspace中的chunk都写满时,用户必须追加chunk。
     为了提高系统性能,用户在为数据空间分配chunk时需要计算以保证它的大小能适应未来的需要,否则在追加chunk的时候,它与先前的chunk在物理上不一定相邻,导致增加读取数据的时间。
 
chunk与dbspace的建立
一般情况下,应在原始磁盘设备上建立三个dbspace
       rootdbs:ONLINE初始化是缺省建立。
       Workdbs:存放应用系统数据库数据。
       Tmpdbs:存放系统临时文件数据。
       rootdbs:ONLINE初始化时,自动建立了一个名为rootdbs的dbspace。该rootdbs存储ONLINE的管理信息,包括物理日志,逻辑日志等。当建立一个数据库或表时,如果不指定dbspace,作为缺省,该数据库或表建在rootdbs,因此要将库或表建立在某个 dbspace中,则必须在SQL语句中指定dbspace名字。
       建chunk或dbspace时,要指定原始磁盘设备名路径,所需磁盘空间大小,以及该块磁盘空间在原始磁盘设备中的偏移量。其中,偏移量非常关键,要小心设置,否则容易造成chunk块之间空间上的重叠与覆盖
例如:假定原始磁盘设备/dev/rdsk/0s2有500M空间其中rootdbs用去前100M如果要在/dev/rdsk/0s2中建立一个新的dbspace偏移量应大于100M。
l 使用onspaces命令建立dbspace和chunk
建立dbspace
语法:onspace -c -d 数据库名 -p 设备文件名(初始chunk的全路径) -o 偏移量 -s尺寸
建立chunk (即为dbsapce增加一个trunk)
onspace -a 数据库名 -p 设备文件名 -o偏移量 -s尺寸
选项:
-c 建立新的dbspace
-d dbspace名字
-a 为指定dbspace增加一个chunk
-p chunk全路径名/dev/rdsk/0s2
-o 偏移量,以K字节为单位
-s chunk的尺寸,以K字节为单位
例: 建立一新dbspace
    a. 以informix用户身份登录
        su Informix
    b.将目录切换至格式化的空间将驻留的目录
        cd /usr/data
    c. 建立mychunk文件
       cat /dev/null >my_chunk   
           or   touch my_chunk
   d. 设置权限
        chmod 660 my_chunk
   e. 保证组与文件所有者均设置到informix
        ls -l my_chunk -rw-rw---- 1 informix informix     0 Oct 12 13:43 my_chunk
   f. 用onspace 创建dbspace
        onspace -c -d workdbs -p /usr/data/my_chunk -o 0 -s 100000

   g. 为workdbs增加chunk时,须重复a~e,建立新文件my_chunk.1,再调用onspace指令
        onspace -a -d workdbs -p /usr/data/my_chunk.1 -o 0 -s 100000
 
 
转自 http://blog.csdn.net/vigarbuaa/article/details/6903064
原文地址:https://www.cnblogs.com/linsond/p/2516132.html