教程 > DB2 教程 > DB2 基础 阅读:46

DB2 存储组

本章介绍数据库存储组。

DB2 存储组

简介

一组存储数据库表或对象的存储路径,是一个存储组。我们可以将表空间分配给存储组。 当你创建一个数据库时,所有的表空间都采用默认的 storagegorup。 数据库的默认存储组是“IBMSTOGROUP”。 创建新数据库时,如果在 CREATE DATABASE 命令末尾传递 AUTOMATIC STOGROUP NO 参数,则默认存储组处于活动状态。 数据库没有任何默认存储组。


列出存储组

我们可以列出数据库中的所有存储组。

语法

查看当前数据库中可用存储组的列表

db2 select * from syscat.stogroups

示例

查看当前数据库中可用存储组的列表

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 

使用 stogroup 创建表空间

以下是如何使用存储组创建表空间:

语法

使用现有存储组创建新表空间

db2 create tablespace <tablespace_name>  using stogroup <stogroup_name>

示例

使用现有存储组“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’  

重新平衡表空间

当我们为 storagegroup 或表空间创建新文件夹时,当在数据库上进行事务并且表空间已满时,需要重新平衡表空间。 重新平衡使用新的存储组更新数据库配置文件。

语法

将表空间从旧存储组路径重新平衡到新存储组

db2 alter tablspace <ts_name> rebalance

示例

重新平衡

db2 alter tablespace ts1 rebalance

重命名存储组

语法

修改现有存储名称的名称

db2 rename stogroup <old_stg_name> to <new_stg_name>

示例

将存储组名称从“sg1”修改为新名称“sgroup1”

db2 rename stogroup sg1 to sgroup1

删除存储组

第一步:在删除任何存储组之前,我们可以为表空间分配一些不同的存储组。

语法

为表空间分配另一个存储组。

db2 alter tablspace <ts_name> using stogroup <another sto_group_name>  

示例

为表空间“ts1”从一个旧存储组更改为名为“sg2”的新存储组

db2 alter tablespace ts1 using stogroup sg2

第二步

语法

删除现有的 stogroup

db2 drop stogorup <stogroup_name>

示例

从数据库中删除 stogroup ‘stg1’

db2 drop stogroup stg1

查看笔记

扫码一下
查看教程更方便