Db2 简明教程

DB2 - Storagegroups

本章描述了数据库存储组。

storage

Introduction

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

Listing storagegroups

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

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

db2 select * from syscat.stogroups

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

db2 select * from syscat.stogroups

Creating a storagegroup

以下是数据库中创建存储组的语法:

Syntax : [创建一个新的 stogroup。“stogropu_name”表示新存储组的名称,“path”表示存储数据(表)的位置]

db2 create stogroup  on ‘path’

Example : [在路径“data1”文件夹上创建一个新的 stogroup “stg1”]

db2 create stogroup stg1 on ‘/data1’

Output:

DB20000I The SQL command completed succesfully

Creating tablespace with stogroup

以下是使用 storegroup 创建表空间的方法:

Syntax : [使用已存在的存储组创建一个新的表空间]

db2 create tablespace <tablespace_name>  using stogroup <stogroup_name>

Example : [使用已存在的存储组“stg1”创建一个名为“ts1”的新表空间]

db2 create tablespace ts1 using stogroup stg1

Output:

DB20000I The SQL command completed succesfully

Altering a storagegroup

您可以使用以下语法更改 storegroup 的位置:

Syntax : [将存储组从旧位置移动到新位置]

db2 alter stogroup  add ‘location’, ‘location’

Example : [针对名为“sg1”的存储组,修改位置从旧位置到新位置的路径]

db2 alter stogroup sg1 add ‘/path/data3’, ‘/path/data4’

Dropping folder path of storagegroup

在删除存储组的文件夹路径之前,您可以使用 alter 命令为存储组添加新位置。

Syntax : [从存储组位置中删除旧路径]

db2 alter stogroup  drop ‘/path’

Example : [从“stg1”中删除存储组位置]

db2 alter stogroup stg1 drop ‘/path/data1’

Rebalancing a tablespace

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

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

db2 alter tablspace <ts_name> rebalance

Example :[重新配置]

db2 alter tablespace ts1 rebalance

Renaming a storagegroup

Syntax :[修改现有存储名称的名称]

db2 rename stogroup <old_stg_name> to <new_stg_name>

Example :[将存储组的名称从“sg1”修改为新名称“sgroup1”]

db2 rename stogroup sg1 to sgroup1

Dropping a storage group

Step 1 :在删除任何存储组之前,您可以为表空间分配其他不同的存储组。

Syntax :[为表空间指定另一个存储组]

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

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

db2 alter tablespace ts1 using stogroup sg2

Step 2:

Syntax :[删除现有存储组]

db2 drop stogorup <stogroup_name>

Example :[从数据库中删除存储组“stg1”]

db2 drop stogroup stg1