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 的信息:
创建各种类型的表空间
从下面简化的输出中可以看到,创建数据库时自带的几个表空间都是AS类型的,且使用了IBMSTOGROUP。表空间rglrtbs1使用了自定义的storage group.
参考资料:
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 "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
相关文章推荐
- Oracle数据库的概念(权限、角色)以及各种操作(创建表空间、创建表、查询、更新、删除、插入)和常用函数
- Java 创建数组的方式, 以及各种类型数组元素的默认值
- 还原数据自动管理的概念和配置以及创建还原表空间
- Oracle创建表空间、创建用户以及授权、查看权限
- [数据库测试]强烈推荐一个python ODBC数据源插件,可支持Oracle,Db2,Mysql,Sql-server以及各种数据库版本,附例子和测试程序
- 不同类型的分区表的创建以及实际操作
- 使用“using”命令后,就可以无障碍地使用名称空间中的各种类型成员。
- [数据库测试]强烈推荐一个python ODBC数据源插件,可支持Oracle,Db2,Mysql,Sql-server以及各种数据库版本,附例子和测试程序
- 为命名空间(namespace)或类型创建别名
- SQL Server 2008 空间数据库 --- 空间索引概念及创建(取自帮助)
- oracle创建表空间,创建用户以及授权
- SQL Server 2008 空间数据库 --- 空间索引概念及创建(取自帮助)
- SQL Server 2008 空间数据库 --- 空间索引概念及创建(取自帮助)
- Android: 如何创建AVD以及选择合适target类型
- Oracle创建表空间、创建用户以及授权、查看权限
- (zt)AD站点的概念和创建以及作用
- SQL Server 2008 空间数据库 --- 空间索引概念及创建(取自帮助)
- 孙鑫VC学习笔记:第十一讲 (一) 坐标空间与各种转换的概念
- oracle创建表空间,创建用户以及授权