DB2 - 存储组

  • 简述

    本章介绍数据库存储组。
    贮存
  • 介绍

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

    您可以列出数据库中的所有存储组。
    语法: [查看当前数据库中可用存储组的列表]
    
    db2 select * from syscat.stogroups
    
    实例: [查看当前数据库中可用存储组的列表]
    
    db2 select * from syscat.stogroups
    
  • 创建存储组

    这是在数据库中创建存储组的语法:
    语法: [创建一个新的 stogroup。“stogropu_name”表示新存储组的名称,“path”表示存储数据(表)的位置]
    
    db2 create stogroup  on ‘path’
    
    实例: [在路径 'data1' 文件夹上创建一个新的 stogroup 'stg1']
    
    db2 create stogroup stg1 on ‘/data1’
    
    输出:
    
    DB20000I The SQL command completed succesfully 
    
  • 使用 stogroup 创建表空间

    以下是使用 storegroup 创建表空间的方法:
    语法: [使用现有存储组创建新表空间]
    
    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’ 
    
  • 删除 storagegroup 的文件夹路径

    在删除 storagegroup 的文件夹路径之前,您可以使用 alter 命令为 storagegroup 添加新位置。
    语法:[从存储组位置删除旧路径]
    
    db2 alter stogroup  drop ‘/path’ 
    
    实例: [从 'stg1' 删除存储组位置]
    
    db2 alter stogroup stg1 drop ‘/path/data1’  
    
  • 重新平衡表空间

    当我们为存储组或表空间创建新文件夹时,需要重新平衡表空间,同时在数据库上执行事务并且表空间已满。重新平衡使用新的存储组更新数据库配置文件。
    语法: [将表空间从旧存储组路径重新平衡到新存储组]
    
    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   
    
  • 删除存储组

    步骤 1:在删除任何存储组之前,您可以为表空间分配一些不同的存储组。
    语法: [为表空间分配另一个存储组。]
    
    db2 alter tablspace <ts_name> using stogroup <another sto_group_name>    
    
    实例: [将表空间 'ts1' 从一个旧的 stogroup 更改为名为 'sg2' 的新 stogroup]
    
    db2 alter tablespace ts1 using stogroup sg2   
    
    步骤 2:
    语法: [删除现有的 stogroup]
    
    db2 drop stogorup <stogroup_name>   
    
    实例: [从数据库中删除 stogroup 'stg1']
    
    db2 drop stogroup stg1