您的位置:首页 > 数据库

DB2中storage group的概念,以及创建各种类型的表空间

2017-02-25 12:45 260 查看
DB2的表空间根据是否是自动存储类型的,可以分为两种,Automatic Storage(AS)和非Automatic Storage,如果是Automatic Storage类型的,创建时不能指定容器的路径,那么DB2是怎么知道它存放的位置的呢?这里要引申出一个概念:Storage Group, 一个Storage Group定义了一个或者多个路径,示例如下:

db2 "CREATE STOGROUP storage_group_name ON 'path1', ..., 'pathn'" 

当然,db2已经创建好了一个storage group,叫IBMSTOGROUP,它是默认的storage group,如果创建AS类型的表空间的时候,不指定‘USING STOGROUP',那就会使用IBMSTOGROUP storage group.

下面看一个实例,创建一个数据库,并自定义一个storage group, 查看storage group 的信息:

$ db2 "create db test"

$ db2 "connect to test"

$ db2 "create STOGROUP MQSGROUP ON '/home/db2users/e105q6a/conpath1', '/home/db2users/e105q6a/conpath2'"

$db2 "SELECT VARCHAR(STORAGE_GROUP_NAME, 30) AS STOGROUP, STORAGE_GROUP_ID, VARCHAR(DB_STORAGE_PATH, 40) AS STORAGE_PATH FROM TABLE(ADMIN_GET_STORAGE_PATHS('',-1)) AS T"

STOGROUP                       STORAGE_GROUP_ID STORAGE_PATH
------------------------------ ---------------- ----------------------------------------
IBMSTOGROUP                                   0 /home/db2users/e105q6a
MQSGROUP                                      1 /home/db2users/e105q6a/conpath1
MQSGROUP                                      1 /home/db2users/e105q6a/conpath2

3 record(s) selected.


创建各种类型的表空间  

a)AS类型的SMS: $ db2 "create user temporary tablespace usrtmp1 managed by automatic storage"
b)AS类型的DMS: $ db2 "create regular tablespace rglrtbs1 managed by automatic storage USING STOGROUP MQSGROUP"
c)非AS类型的SMS: $ db2 "create tablespace tbs1 managed by system using ('/home/db2users/e105q6a/path1')"
d)非AS类型的DMS: $ db2 "create tablespace tbs2 managed by database using (file 'con2' 4000)"


从下面简化的输出中可以看到,创建数据库时自带的几个表空间都是AS类型的,且使用了IBMSTOGROUP。表空间rglrtbs1使用了自定义的storage group.

$ db2pd -db test -tab

Database Member 0 -- Database TEST -- Active -- Up 0 days 00:16:02 -- Date 2017-02-25-10.28.54.331489

Tablespace Configuration:
Address            Id   AS  AR  Type Content  SGID  Name
0x070000005D9687E0 0    Yes Yes DMS  Regular  0     SYSCATSPACE
0x070000005D975980 1    Yes No  SMS  SysTmp   0     TEMPSPACE1
0x070000005D982B20 2    Yes Yes DMS  Large    0     USERSPACE1
0x0700000061E48FC0 3    Yes Yes DMS  Large    0     SYSTOOLSPACE
0x0700000064080200 4    Yes No  SMS  UsrTmp   0     USRTMP1
0x070000006408D3A0 5    Yes Yes DMS  Regular  1     RGLRTBS1
0x070000006409A540 6    No  No  SMS  Regular  -     TBS1
0x07000000640B4960 7    No  No  DMS  Large    -     TBS2

Containers:
Address            TspId  Type   Container
0x07000000552EFD60 0      File   /home/db2users/e105q6a/e105q6a/NODE0000/TEST/T0000000/C0000000.CAT
0x070000005D990000 1      Path   /home/db2users/e105q6a/e105q6a/NODE0000/TEST/T0000001/C0000000.TMP
0x070000005122FAC0 2      File   /home/db2users/e105q6a/e105q6a/NODE0000/TEST/T0000002/C0000000.LRG
0x0700000061E58000 3      File   /home/db2users/e105q6a/e105q6a/NODE0000/TEST/T0000003/C0000000.LRG
0x0700000061E1B000 4      Path   /home/db2users/e105q6a/e105q6a/NODE0000/TEST/T0000004/C0000000.UTM
0x0700000061E22000 5      File   /home/db2users/e105q6a/conpath1/e105q6a/NODE0000/TEST/T0000005/C0000000.USR
0x0700000061E22230 5      File   /home/db2users/e105q6a/conpath2/e105q6a/NODE0000/TEST/T0000005/C0000001.USR
0x0700000061E245C0 6      Path   /home/db2users/e105q6a/path1
0x07000000640C2E80 7      File   /home/db2users/e105q6a/e105q6a/NODE0000/SQL00001/con2


参考资料:
https://www.ibm.com/support/knowledgecenter/SSEPGG_11.1.0/com.ibm.db2.luw.sql.rtn.doc/doc/r0055331.html
https://www.ibm.com/support/knowledgecenter/SSEPGG_11.1.0/com.ibm.db2.luw.sql.ref.doc/doc/r0000929.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  DB2 数据库
相关文章推荐