DB2 - Storagegroups

This chapter describes the Database Storagegroups.



A set of Storage paths to store database table or objects, is a storage group. You can assign the tablespaces to the storage group. When you create a database, all the tablespaces take default storagegorup. The default storage group for a database is ‘IBMSTOGROUP’. When you create a new database, the default storage group is active, if you pass the “AUTOMATIC STOGROUP NO” parameter at the end of “CREATE DATABASE” command. The database does not have any default storage groups.

Listing storagegroups

You can list all the storagegroups in the database.

Syntax: [To see the list of available storagegroups in current database]

db2 select * from syscat.stogroups

Example: [To see the list of available storagegorups in current database]

db2 select * from syscat.stogroups

Creating a storagegroup

Here is a syntax to create a storagegroup in the database:

Syntax: [To create a new stogroup. The ‘stogropu_name’ indicates name of new storage group and ‘path’ indicates the location where data (tables) are stored]

db2 create stogroup  on ‘path’

Example: [To create a new stogroup ‘stg1’ on the path ‘data1’ folder]

db2 create stogroup stg1 on ‘/data1’


DB20000I The SQL command completed succesfully 

Creating tablespace with stogroup

Here is how you can create a tablespace with storegroup:

Syntax: [To create a new tablespace using existed storage group]

db2 create tablespace <tablespace_name>  using stogroup <stogroup_name> 

Example: [To create a new tablespace named ‘ts1’ using existed storage group ‘stg1’]

db2 create tablespace ts1 using stogroup stg1 


DB20000I The SQL command completed succesfully 

Altering a storagegroup

You can alter the location of a storegroup by using following syntax:

Syntax: [To shift a storage group from old location to new location]

db2 alter stogroup  add ‘location’, ‘location’ 

Example: [To modify location path from old location to new location for storage group named ‘sg1’]

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

Dropping folder path of storagegroup

Before dropping folder path of storagegroup, you can add new location for the storagegroup by using alter command.

Syntax: [To drop old path from storage group location]

db2 alter stogroup  drop ‘/path’ 

Example: [To drop storage group location from ‘stg1’]

db2 alter stogroup stg1 drop ‘/path/data1’  

Rebalancing a tablespace

Rebalancing the tablespace is required when we create a new folder for storagegroup or tablespaces while the transactions are conducted on the database and the tablespace becomes full. Rebalancing updates database configuration files with new storagegroup.

Syntax: [To rebalance the tablespace from old storage group path to new storage group]

db2 alter tablspace <ts_name> rebalance   

Example: [To rebalance]

db2 alter tablespace ts1 rebalance   

Renaming a storagegroup

Syntax: [To modify the name of existing storage name]

db2 rename stogroup <old_stg_name> to <new_stg_name>   

Example: [To modify the name of storage group from ‘sg1’ to new name ‘sgroup1’]

db2 rename stogroup sg1 to sgroup1   

Dropping a storage group

Step 1: Before dropping any storagegroup, you can assign some different storagegroup for tablespaces.

Syntax: [To assign another storagegroup for table space.]

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

Example: [To change from one old stogroup to new stogroup named ‘sg2’ for tablespace ‘ts1’]

db2 alter tablespace ts1 using stogroup sg2   

Step 2:

Syntax: [To drop the existing stogroup]

db2 drop stogorup <stogroup_name>   

Example: [To drop stogroup ‘stg1’ from database]

db2 drop stogroup stg1  
Kickstart Your Career

Get certified by completing the course

Get Started