📅  最后修改于: 2020-11-28 13:21:05             🧑  作者: Mango
本章介绍数据库存储组。
一组用于存储数据库表或对象的存储路径是一个存储组。您可以将表空间分配给存储组。创建数据库时,所有表空间都采用默认的storagegorup。数据库的缺省存储组是“ IBMSTOGROUP”。创建新数据库时,如果在“ CREATE DATABASE”命令的末尾传递“ AUTOMATIC STOGROUP NO”参数,则默认存储组处于活动状态。该数据库没有任何默认存储组。
您可以列出数据库中的所有存储组。
语法:[要查看当前数据库中可用存储组的列表]
db2 select * from syscat.stogroups
示例:[查看当前数据库中可用的storagegorups列表]
db2 select * from syscat.stogroups
这是在数据库中创建存储组的语法:
语法:[创建新的存储组。 “ stogropu_name”指示新存储组的名称,“ path”指示存储数据(表)的位置]
db2 create stogroup on ‘path’
示例:[在路径“ data1”文件夹上创建新的存储组“ stg1”]
db2 create stogroup stg1 on ‘/data1’
输出:
DB20000I The SQL command completed succesfully
这是如何使用storegroup创建表空间:
语法:[使用现有存储组创建新表空间]
db2 create tablespace using stogroup
示例:[使用现有存储组’stg1’创建一个名为’ts1’的新表空间]
db2 create tablespace ts1 using stogroup stg1
输出:
DB20000I The SQL command completed succesfully
您可以使用以下语法来更改存储组的位置:
语法:[将存储组从旧位置转移到新位置]
db2 alter stogroup add ‘location’, ‘location’
示例:[将名为“ sg1”的存储组的位置路径从旧位置修改为新位置)
db2 alter stogroup sg1 add ‘/path/data3’, ‘/path/data4’
在删除存储组的文件夹路径之前,可以使用alter命令为存储组添加新位置。
语法:[要从存储组位置删除旧路径]
db2 alter stogroup drop ‘/path’
示例:[从’stg1’删除存储组位置]
db2 alter stogroup stg1 drop ‘/path/data1’
当我们在数据库上进行事务并且表空间已满时,当我们为存储组或表空间创建新文件夹时,需要重新平衡表空间。重新平衡使用新的存储组更新数据库配置文件。
语法:[将表空间从旧存储组路径重新平衡到新存储组]
db2 alter tablspace rebalance
示例:[重新平衡]
db2 alter tablespace ts1 rebalance
语法:[修改现有存储名称的名称]
db2 rename stogroup to
示例:[将存储组的名称从’sg1’修改为新名称’sgroup1′]
db2 rename stogroup sg1 to sgroup1
步骤1 :在删除任何存储组之前,可以为表空间分配一些不同的存储组。
语法:[为表空间分配另一个存储组。]
db2 alter tablspace using stogroup
示例:[将表空间“ ts1”的旧存储组更改为名为“ sg2”的新存储组]
db2 alter tablespace ts1 using stogroup sg2
第2步:
语法:[删除现有的存储组]
db2 drop stogorup
示例:[从数据库中删除stogroup’stg1′]
db2 drop stogroup stg1