VM擴充、分區、創建裸設備及informix創建數據空間、分片表

一、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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章