现在的位置: 首页 > 综合 > 正文

CUBRID Volume介绍

2013年12月11日 ⁄ 综合 ⁄ 共 3812字 ⁄ 字号 评论关闭

作者:黄军敬

 

1.       CUBRID Volume 概述

CUBRIDVolume是以文件形式存在的,当创建数据库后,会产生多个Volume文件。

如下图,标蓝色的文件为volume文件

[xdbms@NC-XQA-DEV5 databases]$ mkdir testdb

[xdbms@NC-XQA-DEV5 databases]$ cd testdb

[xdbms@NC-XQA-DEV5 testdb]$ cubrid createdb testdb

Creating database with 5000 pages.

 

CUBRID 2008 R3.0

 

[xdbms@NC-XQA-DEV5 testdb]$ ll

total 42168

-rw-------  1 xdbms xdbms 20480000 Dec 16 16:20 testdb

-rw-------  1 xdbms xdbms 20480000 Dec 16 16:20 testdb_lgar_t

-rw-------  1 xdbms xdbms 20480000 Dec 16 16:20 testdb_lgat

-rw-------  1 xdbms xdbms      207 Dec 16 16:20 testdb_lginf

-rw-------  1 xdbms xdbms      263 Dec 16 16:20 testdb_vinf

CUBRIDVolume是由page组成的,而page是由slot组成的,当使用默认值创建数据库时,每个volume包含的page数为5000页,而每个page默认大小为4K,所以使用默认值产生的volume大小为2M。而每个page内部有多少个slot而是由所存储的记录的大小来决定的。这也是CUBRID不同于其他数据库的一个特征,通过OIDObject Identifier)来标识数据存储位置(Physical OID =Volume ID + Page ID + Slot ID)

2.       CUBRID Volume 分类

我们先来看看下图:

 

 

 

 

从图中可以看出,根据存在方式CUBRID Volume 分为三类:Permanent Volume,Temporary Volume,Backup Volume

2.1   Permanent Volume

Permanent Volume 包含: Data Volume, Index Volume, Temp Volume, Generic Volume,

Log Volume

在对已经创建好的数据库添加Volume时,可以根据-p参数指定Volume类型

[xdbms@NC-XQA-DEV5 testdb]$ cubrid addvoldb -p 'DATA' testdb 5000

[xdbms@NC-XQA-DEV5 testdb]$ cubrid addvoldb -p 'INDEX' testdb 5000

[xdbms@NC-XQA-DEV5 testdb]$ cubrid addvoldb -p 'TEMP' testdb 5000

[xdbms@NC-XQA-DEV5 testdb]$ cubrid addvoldb -p 'GENERIC' testdb 5000

[xdbms@NC-XQA-DEV5 testdb]$ cubrid addvoldb -p 'GENERIC' -n 'gen_1' testdb 5000

[xdbms@NC-XQA-DEV5 testdb]$ ll

total 142300

-rw-------  1 xdbms xdbms 20480000 Dec 16 17:18 gen_1

-rw-------  1 xdbms xdbms 20480000 Dec 16 17:18 testdb

-rw-------  1 xdbms xdbms 20480000 Dec 16 17:18 testdb_lgar_t

-rw-------  1 xdbms xdbms 20480000 Dec 16 17:18 testdb_lgat

-rw-------  1 xdbms xdbms       33 Dec 16 17:10 testdb_lgat__lock

-rw-------  1 xdbms xdbms      207 Dec 16 16:20 testdb_lginf

-rw-------  1 xdbms xdbms      522 Dec 16 17:18 testdb_vinf

-rw-------  1 xdbms xdbms 20480000 Dec 16 17:15 testdb_x001

-rw-------  1 xdbms xdbms 20480000 Dec 16 17:16 testdb_x002

-rw-------  1 xdbms xdbms 20480000 Dec 16 17:17 testdb_x003

-rw-------  1 xdbms xdbms 20480000 Dec 16 17:18 testdb_x004

           i.              Data Volume: 用来存储表和数据

         ii.              Index Volume: 存放B+树索引, 从而能快速检索数据。

        iii.              Temp Volume: 用来存在关联查询,排序等所产生的临时数据,当数据库重启时,存在的数据会消失,但是它所占的物理空间大小是不变的。

        iv.              Generic Volume: 当添加Volume不指定类型使用默认值时,是以Generic形式存在的,它可以当作data, index, temp类型使用。

         v.              Log Volume又分为active logarchive log, 其中active log存储数据库最近期的操作,比如commit, aborted, active transaction。当数据库出现问题时,可以用它来进行还原。active log archive log的区分点是,当active log空间用完时,它的内容将会被拷贝并生成一个新的log文件,即archive log

如上图testdb_lgat active log

       testdb_lgar_tarchive log

2.2   Temporary Temp Volume

Temporary Temp VolumePermanent Volume是相对的,当所计算的数据超过了用户指定的Permanent Volume的空间大小时,数据库会在磁盘的空余空间创建Temporary Temp Volume,当数据库server进程处理完毕后,Temporary Temp Volume会被销毁掉。

通常在进行如下的大数据量查询时会创建Temporary Temp Volume

1)SQL语句包含GROUP BY ORDER BY

2)SQL语句包含子查询

3)关联查询

4)创建索引语句

 

2.3   Backup Volume

Backup Volume是对数据库进行备份时候,产生的文件, 其中{dbname}_bkvinf文件为记录存放Backup Volume明细的配置文件。

[xdbms@NC-XQA-DEV5 testdb]$ cubrid backupdb testdb

Backup Volume Label: Level: 0, Unit: 0, Database testdb, Backup Time: Thu Dec 16 18:44:20 2010

[xdbms@NC-XQA-DEV5 testdb]$ ll

total 285848

-rw-------  1 xdbms xdbms  20480000 Dec 16 18:44 gen_1

-rw-------  1 xdbms xdbms  20480000 Dec 16 18:44 testdb

-rw-------  1 xdbms xdbms 146813952 Dec 16 18:44 testdb_bk0v000

-rw-------  1 xdbms xdbms        57 Dec 16 18:44 testdb_bkvinf

-rw-------  1 xdbms xdbms  20480000 Dec 16 18:44 testdb_lgar000

-rw-------  1 xdbms xdbms  20475904 Dec 16 18:44 testdb_lgar_t

-rw-------  1 xdbms xdbms  20480000 Dec 16 18:44 testdb_lgat

-rw-------  1 xdbms xdbms        33 Dec 16 17:10 testdb_lgat__lock

-rw-------  1 xdbms xdbms       305 Dec 16 18:44 testdb_lginf

-rw-------  1 xdbms xdbms       522 Dec 16 17:18 testdb_vinf

-rw-------  1 xdbms xdbms  20480000 Dec 16 18:44 testdb_x001

-rw-------  1 xdbms xdbms  20480000 Dec 16 18:44 testdb_x002

-rw-------  1 xdbms xdbms  20480000 Dec 16 18:44 testdb_x003

-rw-------  1 xdbms xdbms  20480000 Dec 16 18:44 testdb_x004

 

 

参考内容http://www.cubrid.org/manual/intro/intro_arch_volume.htm

 

 

 

抱歉!评论已关闭.