GBase 8s数据库的空间管理

GBase 8s数据库的空间管理

当使用GBase 8s的GBaseInit_gbasedbt.sh脚本创建数据库实例时,有一些参数无法指定,只能用于学习。真正的生产需要根据服务器的配置,规划并创建适合业务场景的数据库空间,以进行存储优化。

下面通过演示,介绍如何进行数据库的空间管理。

数据库空间简介

数据库空间是一个逻辑概念,有多个称为Chunk的物理文件组成,用于存储表或索引的数据。

不同的数据库空间可以使用不同的页大小,以便于进行存储性能优化。

可以使用onstat -d信息,列出数据库实例的当前各个数据库空间信息。

[gbasedbt@devsvr ~]$ onstat -d
Your evaluation license will expire on 2022-09-15 00:00:00
On-Line -- Up 03:34:00 -- 597864 Kbytes

Dbspaces
address          number   flags      fchunk   nchunks  pgsize   flags    owner    name
46feb028         1        0x70001    1        1        2048     N  BA    gbasedbt rootdbs
484c8110         2        0x60001    2        1        2048     N  BA    gbasedbt llogdbs
484c8340         3        0x70001    3        1        2048     N  BA    gbasedbt plogdbs
484c8570         4        0x68001    4        1        2048     N SBA    gbasedbt sbspace1
484c87a0         5        0x42001    5        1        16384    N TBA    gbasedbt tmpdbs1
484c89d0         6        0x42001    6        1        16384    N TBA    gbasedbt tmpdbs2
484c8c00         7        0x42001    7        1        16384    N TBA    gbasedbt tmpdbs3
484ca028         8        0x60001    8        1        16384    N  BA    gbasedbt datadbs1
484ca258         9        0x60001    9        1        16384    N  BA    gbasedbt datadbs2
484ca488         10       0x60001    10       1        16384    N  BA    gbasedbt datadbs3
484ca6b8         11       0x60001    11       1        16384    N  BA    gbasedbt datadbs4
484ca8e8         12       0x60001    12       1        16384    N  BA    gbasedbt datadbs5
 12 active, 2047 maximum

Chunks
address          chunk/dbs     offset     size       free       bpages     flags pathname
46feb258         1      1      0          102400     91514                 PO-B-D /opt/gbase/gbaseserver_dbs/rootdbs
484cb028         2      2      0          102400     2347                  PO-B-D /opt/gbase/gbaseserver_dbs/llogdbs
484cc028         3      3      0          102400     2947                  PO-B-D /opt/gbase/gbaseserver_dbs/plogdbs
484cd028         4      4      0          51200      47678      47678      POSB-D /opt/gbase/gbaseserver_dbs/sbspace1
                                 Metadata 3469       2581       3469    
484ce028         5      5      0          12800      12747                 PO-B-- /opt/gbase/gbaseserver_dbs/tmpdbs1
484d4028         6      6      0          12800      12747                 PO-B-- /opt/gbase/gbaseserver_dbs/tmpdbs2
484d5028         7      7      0          12800      12747                 PO-B-- /opt/gbase/gbaseserver_dbs/tmpdbs3
484d6028         8      8      0          6400       5817                  PO-BED /opt/gbase/gbaseserver_dbs/datadbs1_1
484d7028         9      9      0          6400       6347                  PO-BED /opt/gbase/gbaseserver_dbs/datadbs2_1
484d8028         10     10     0          6400       6347                  PO-BED /opt/gbase/gbaseserver_dbs/datadbs3_1
484d9028         11     11     0          6400       6347                  PO-BED /opt/gbase/gbaseserver_dbs/datadbs4_1
484da028         12     12     0          6400       6347                  PO-BED /opt/gbase/gbaseserver_dbs/datadbs5_1
 12 active, 32766 maximum

NOTE: The values in the "size" and "free" columns for DBspace chunks are
      displayed in terms of "pgsize" of the DBspace to which they belong.


Expanded chunk capacity mode: always

[gbasedbt@devsvr ~]$ 

解析:

通过上面的命令输出结果,我们可以得知数据库空间信息的保存路径为/opt/gbase/gbaseserver_dbs,该路径下有12个文件,分析对应12个数据库空间。

目前的数据库空间比较简单,这个实例一共创建了12个数据库空间,共有12个Chunk文件,每个数据库空间有一个Chunk文件。Chunk输出信息中有size信息,这个信息是Chunk的页的数据,不是文件的字节大小。要得到Chunk的文件字节大小,需要用这个size乘以Chunk文件对应的数据库空间的pgsize。

如datadbs1_1文件的size是6400,它对应的dbs号码为8,Dbspaces信息中number为8的数据库空间大小为16384,所以这个文件的操作系统中的大小为6400 * 16384 = 104857600

当前GBase 8s 数据库实例将文件保存在/opt/gbase/gbaseserver_dbs中,可以通过ll命令查看操作系统中文件的大小(字节大小)。

[gbasedbt@devsvr ~]$ ll /opt/gbase/gbaseserver_dbs/
total 1843200
-rw-rw----. 1 gbasedbt gbasedbt 104857600 Sep 15 08:06 datadbs1_1
-rw-rw----. 1 gbasedbt gbasedbt 104857600 Sep 15 08:03 datadbs2_1
-rw-rw----. 1 gbasedbt gbasedbt 104857600 Sep 15 08:03 datadbs3_1
-rw-rw----. 1 gbasedbt gbasedbt 104857600 Sep 15 08:03 datadbs4_1
-rw-rw----. 1 gbasedbt gbasedbt 104857600 Sep 15 08:03 datadbs5_1
-rw-rw----. 1 gbasedbt gbasedbt 209715200 Sep 15 11:50 llogdbs
-rw-rw----. 1 gbasedbt gbasedbt 209715200 Sep 15 11:50 plogdbs
-rw-rw----. 1 gbasedbt gbasedbt 209715200 Sep 15 11:50 rootdbs
-rw-rw----. 1 gbasedbt gbasedbt 104857600 Sep 15 08:03 sbspace1
-rw-rw----. 1 gbasedbt gbasedbt 209715200 Sep 15 08:03 tmpdbs1
-rw-rw----. 1 gbasedbt gbasedbt 209715200 Sep 15 08:03 tmpdbs2
-rw-rw----. 1 gbasedbt gbasedbt 209715200 Sep 15 08:03 tmpdbs3
[gbasedbt@devsvr ~]$ 

实验目标

  1. 在当前数据库实例中,创建一个新的数据库空间,名称为datadbs_dw,用于保存用于分析的数据。
  2. 在这个数据库空间中,创建两个数据文件,第一个大小为50M,第二个大小为100M。

操作演示

GBase 8s推荐将服务器的多个磁盘,根据业务特征,分为多个逻辑磁盘,并进行不同类型的业务数据存储。

我们下面假设将dw业务的数据,保存在挂载到/home/gbasedbt/data_dw位置的磁盘上。

创建数据库空间需要的设备路径

[gbasedbt@devsvr ~]$ pwd
/home/gbasedbt
[gbasedbt@devsvr ~]$ mkdir data_dw

将实际的磁盘,挂载到/home/gbasedbt/data_dw目录,将来的数据就可以保存在我们期望的磁盘设备上。

关于磁盘的操作,请参考网上相关说明。我们这里只创建一个目录,进行演示,这样的处理不影响我们的演示结果。

创建数据库空间的Chunk文件

要创建实际的Chunk,我们需要先创建一个空文件,并设置好相应的权限。

[gbasedbt@devsvr ~]$ cd data_dw/
[gbasedbt@devsvr data_dw]$ touch datadbs_dw1
[gbasedbt@devsvr data_dw]$ touch datadbs_dw2
[gbasedbt@devsvr data_dw]$ ll
total 0
-rw-rw-r--. 1 gbasedbt gbasedbt 0 Sep 15 12:08 datadbs_dw1
-rw-rw-r--. 1 gbasedbt gbasedbt 0 Sep 15 12:08 datadbs_dw2
[gbasedbt@devsvr data_dw]$ chmod 660 datadbs_dw*
[gbasedbt@devsvr data_dw]$ ll
total 0
-rw-rw----. 1 gbasedbt gbasedbt 0 Sep 15 12:08 datadbs_dw1
-rw-rw----. 1 gbasedbt gbasedbt 0 Sep 15 12:08 datadbs_dw2
[gbasedbt@devsvr data_dw]$ 

创建新数据库空间

使用onspaces命令,创建我们需要的数据库空间。

onspaces -c -d  -k (kb)> -p  -o  -s (kb)>
[gbasedbt@devsvr data_dw]$ onspaces -c -d datadbs_dw -k 8 -p /home/gbasedbt/data_dw/datadbs_dw1 -o 0 -s 51200
Your evaluation license will expire on 2022-09-15 00:00:00
Verifying physical disk space, please wait ...
Space successfully added.

** WARNING **  A level 0 archive of Root DBSpace will need to be done.
[gbasedbt@devsvr data_dw]$

检查目录中的文件信息。

[gbasedbt@devsvr data_dw]$ pwd
/home/gbasedbt/data_dw
[gbasedbt@devsvr data_dw]$ ll
total 63744
-rw-rw----. 1 gbasedbt gbasedbt 52428800 Sep 15 12:51 datadbs_dw1
-rw-rw----. 1 gbasedbt gbasedbt        0 Sep 15 12:08 datadbs_dw2
[gbasedbt@devsvr data_dw]$ 

查看当前数据库空间信息。

[gbasedbt@devsvr data_dw]$ onstat -d
Your evaluation license will expire on 2022-09-15 00:00:00
On-Line -- Up 04:49:18 -- 680324 Kbytes

Dbspaces
address          number   flags      fchunk   nchunks  pgsize   flags    owner    name
46feb028         1        0x70001    1        1        2048     N  BA    gbasedbt rootdbs
......
484ca8e8         12       0x60001    12       1        16384    N  BA    gbasedbt datadbs5
496e6028         13       0x60001    13       1        8192     N  BA    gbasedbt datadbs_dw
 13 active, 2047 maximum

Chunks
address          chunk/dbs     offset     size       free       bpages     flags pathname
46feb258         1      1      0          102400     91512                 PO-B-D /opt/gbase/gbaseserver_dbs/rootdbs
......
484da028         12     12     0          6400       6347                  PO-BED /opt/gbase/gbaseserver_dbs/datadbs5_1
496e6258         13     13     0          6400       6347                  PO-B-D /home/gbasedbt/data_dw/datadbs_dw1
 13 active, 32766 maximum

NOTE: The values in the "size" and "free" columns for DBspace chunks are
      displayed in terms of "pgsize" of the DBspace to which they belong.


Expanded chunk capacity mode: always

[gbasedbt@devsvr data_dw]$ 

在Dbspaces部分最后,新增了一个name为datadbs_dw的记录,即我们新增加的数据库空间。在Chunks部分最后,新增加了一行数据,路径为我们在创建时指定的路径。

在数据库空间中增加新的Chunk文件

onspaces -a  -p  -o  -s (kb)>
[gbasedbt@devsvr data_dw]$ onspaces -a datadbs_dw -p /home/gbasedbt/data_dw/datadbs_dw2 -o 0 -s 102400
Your evaluation license will expire on 2022-09-15 00:00:00
Verifying physical disk space, please wait ...
Chunk successfully added.
[gbasedbt@devsvr data_dw]$ 

查看文件信息。

[gbasedbt@devsvr data_dw]$ ll
total 153600
-rw-rw----. 1 gbasedbt gbasedbt  52428800 Sep 15 12:51 datadbs_dw1
-rw-rw----. 1 gbasedbt gbasedbt 104857600 Sep 15 12:59 datadbs_dw2
[gbasedbt@devsvr data_dw]$ 

查看当前数据库的数据库空间信息。

[gbasedbt@devsvr data_dw]$ onstat -d
Your evaluation license will expire on 2022-09-15 00:00:00
On-Line -- Up 04:56:26 -- 680324 Kbytes

Dbspaces
address          number   flags      fchunk   nchunks  pgsize   flags    owner    name
46feb028         1        0x70001    1        1        2048     N  BA    gbasedbt rootdbs
......
496e6028         13       0x60001    13       2        8192     N  BA    gbasedbt datadbs_dw
 13 active, 2047 maximum

Chunks
address          chunk/dbs     offset     size       free       bpages     flags pathname
46feb258         1      1      0          102400     91512                 PO-B-D /opt/gbase/gbaseserver_dbs/rootdbs
......
484da028         12     12     0          6400       6347                  PO-BED /opt/gbase/gbaseserver_dbs/datadbs5_1
496e6258         13     13     0          6400       6347                  PO-B-D /home/gbasedbt/data_dw/datadbs_dw1
4962d028         14     13     0          12800      12797                 PO-B-D /home/gbasedbt/data_dw/datadbs_dw2
 14 active, 32766 maximum

NOTE: The values in the "size" and "free" columns for DBspace chunks are
      displayed in terms of "pgsize" of the DBspace to which they belong.


Expanded chunk capacity mode: always

[gbasedbt@devsvr data_dw]$ 

在Chunks部分的最后两行,为新创建的数据库空间对应的两个Chunk文件。

你可能感兴趣的:(Gbase,8s,数据库,database)