VM扩充、分区、创建裸设备及informix创建数据空间、分片表

来源:互联网 发布:看帧数的软件 编辑:程序博客网 时间:2024/06/04 18:27

一、VM(虚拟机)扩充:
    一般情况下VM在创建的时候分配的磁盘空间比较小,避免造成资源浪费。但是随着我们在VM上安装的东西和使用的越来越多,VM的容量可以被消耗殆尽,此时需要扩充我们的VM,方法如下:
    1.在运行中键入"cmd"进入命令提示符界面,通过cd命令进入自己的VM安装目录(一直到vmware-vdiskmanager.exe目录)为止;
    2.可以运行vmware-vdiskmanager.exe命令,查看其参数说明;
    3.根据提示,运行下面命令:vmware-vdiskmanager.exe -x 12Gb "D:/My Documents/My Virtual Machines/Red Hat Enterprise Linux 4/Red Hat Enterprise Linux 4.vmdk" 。(引号里面的是指定要操作的虚拟机磁盘的具体文件,可以在自己的VM中查看具体位置);
    4.重启虚拟机。
二、分区:
    做到这一步只能工作只完成了一半。调整磁盘大小的后果,相当于增加了原来物理磁盘的柱面容量。文件系统不会随着增加,很多网站都介绍可以通过第三方分区工具来完成分区,其实我们只要明白了如何操作,完全可以自己完成分区、格式化和挂载工作(以下是Linux)。
    1.运行"fdisk -l"命令,可以查看所有的分区情况,可以看到我的物理磁盘确实是12Gb了,"255heads,63sectors/track,1566cylinders",而在下面可以看到设备/dev/hda已经分区使用的有1044个cylinders(柱面),那么剩下的522个就是刚增加的或是未分区的。
    2.运行"fdisk /dev/hda"对磁盘进行分区,常用的参数有:m列出帮助列表;n增加一个分区(e为扩展分区,P为基本分区);t指定分区型。
    至此分区完成,此时分为两种情况,文件系统和裸设备。如果要做成文件系统,再进行格式化(常见的文件系统如ext3格式),然后通过mount挂载到某一个文件下面就可以使用了。还有一种直接是用裸设备,网上说裸设备简单的理解就是未格式化的设备,那么此时我刚分区的设备就可以直接作为裸设备使用,在网上看了一种创建裸设备的方法,通过raw绑定,但是操作过程中好像不行。最后我直接采用了ln建立软连接同样可以使用这些设备。
三、创建裸设备:
    为了在后面供用户在informix数据库上创建数据空间,我将/dev/hda4设置成了扩展分区,在此基础上又进行了分区,hda5~hda9。
    用informix用户登录,进行下面的操作:
    mkdir rawdbs                      //创建一个文件,存放数据空间位置
    su - root                             //切换至root用户
    chown informix.informix /dev/hda5 //将设备设置为informix组下的informix用户拥有
    chmod 660 /dev/hda5               //修改设备属性
    su - informix
    cd rawdbs
    ln -s /dev/hda5 datadbs           //建立从设备到文件的软链接
    同理,将其他的设备分别建立软链接至logdbs,blobdbs,phydbs,tempdbs。
    此时就可以利用这些设置存放我们的数据库文件了。

四、创建数据空间:
    informix数据库在创建数据库的时候需要先需要存放的dbspace(数据空间),刚才创建的裸设备就是供创建数据空间使用的。
    使用onspaces命令创建、修改及删除dbspace及trunk。如创建studbs:
    onspaces -c -d studbs -o 0 -p rawdbs/datadbs -s 100000 (d名字 o偏移量 p文件路径 s大小)
    为了在后面informix用户创建分区表(在不同的数据空间上存放表),创建4个studbs数据空间供以后使用,一般这些数据空间是分布在不同的设备中,由于我的rootdbs容量比较大,此次为了测试就将所有的dbspace放在这些,但此时就必须计算偏移量了,否则会造成trunk的重叠。大小均为100000,如下:
    onspaces -c -d studbs1 -o 100002 -p rawdbs/rootdbs -s 100000
    studbs2~studbs4的一样,偏移量分别是110004,120006,130008。
    通过命令"onstat -d"可以查看所有的dbspace及trunk情况。
五、创建分片表:
    分片表的作用就是数据分区管理,登录dbaccess,创建数据库db_stu_info;
    1.创建分片表tb_stu_info,具体SQL语句如下:
    CREATE TABLE tb_stu_info (id INTEGER PRIMARY KEY CONSTRAINT pk_stu_id,
                                               name VARCHAR(20) NOT NULL,
                                               grade FLOAT CHECK (grade >= 0  AND grade <= 100)
                                               )
                                               FRAGMENT BY EXPRESSION
                                               (grade >= 90) IN studbs1,
                                               (grade >= 75 AND grade < 90) IN studbs2,
                                               (grade >= 60 AND grade < 75) IN studbs3,
                                               (grade < 60) IN studbs4;
 
    2.通过下面SQL语句可以查看分片表的信息:
    SELECT * FROM SYSTABLES WHERE tabname = 'tb_stu_info';  //可以看到tb_stu_info的tabid为101
    SELECT * FROM SYSFRAGMENTS WHERE tabid = 101;
    通过插入大量数据,观察studbs1~studbs4的free容量,就知道数据是不是存到不同的数据空间里面去了。

    3.一般情况下,informix需要手动执行更新,因此在每次操作完成之后应执行更行:
    UPDATE STATISTICS HIGH FOR TABLE tb_stu_info

至此,所有工作完成。

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/cheng_fengming/archive/2010/08/21/5829055.aspx

原创粉丝点击