DB2表空間管理


1 介紹

1.1 表空間類型

存儲類型

表空間類型

注釋

DMS

All permanent data. Regular table space.

系統表空間

SMS

System Temporary data

系統臨時空間

DMS

All permanent data. Large table space

用戶表空間

DMS

User Temporary data

用戶臨時空間

SMS

All permanent data. Regular table space.

用戶表空間

1.2 存儲類型

表空間存儲類型:

  • 系統管理的空間(system managed space,SMS):由操作系統的文件系統管理器和管理空間。在DB2 V9之前,如果不帶任何參數創建數據庫或表空間,就會導致所有表空間作為SMS對象創建。
  • 數據庫管理的表空間(database managed space,DMS):由DB2數據庫管理程序控制存儲空間。表空間容器可使用文件系統或裸設備。需要更多的維護
  • DMS的自動存儲(automatic storage with DMS):自動存儲實際上不是一種單獨的表空間類型,而是一種處理DMS存儲的不同方式。

1.3 表空間介紹

表空間介紹:

TBSPACE

作用

SYSCATSPACE

系統目錄表空間,數據字典,系統信息不可更改和不可刪除

TEMPSPACE

臨時表空間,排序時需要額外空間的操作

USERSPACE

創建表時沒指定表空間,默認的用戶表空間

1.4 表空間存儲空間

表空間存儲空間上限:表空間存儲上限64GB到64TB。

表空間類型 4KB 8KB 16KB 32KB
SMS表空間 64GB 128GB 256GB 512GB
臨時SMS和臨時自動存儲器 8TB 16TB 32TB 64TB
DMS和非臨時自動存儲器表空間(常規) 64GB 128GB 256GB 512GB
DMS、臨時DMS和非臨時自動存儲器表空間(大型) 8TB 16TB 32TB 64TB

參考官方文檔:https://www.ibm.com/docs/zh/db2/10.5?topic=data-page-table-table-space-size

2 創建表空間

        DB2 V9版本以上創建的表空間默認是自動存儲器表空間。

        在DB2 V9.7版本之前,對於在最初沒有啟用自動存儲的數據庫,后期不能啟用自動存儲的特性;但在DB2 V9.7及以后的版本中,開啟未啟用自動存儲,后期可以轉換為自動存儲數據庫,同樣,現有的DMS表空間現在可轉換為使用自動存儲。使用alter database語句來為現有數據庫啟用自動存儲。

 

創建表空間語法:

>>-CREATE--+-----------------------+---------------------------->
           +-LARGE-----------------+   
           +-REGULAR---------------+   
           | .-SYSTEM-.            |   
           '-+--------+--TEMPORARY-'   
             '-USER---'                

>--TABLESPACE--tablespace-name---------------------------------->

>--+-----------------------------------------------------------+-->
   |     .-DATABASE PARTITION GROUP-.                          |   
   '-IN--+--------------------------+--db-partition-group-name-'   

>--+--------------------------+--------------------------------->
   '-PAGESIZE--integer--+---+-'   
                        '-K-'     

   .-MANAGED BY--AUTOMATIC STORAGE--| storage-group |--| size-attributes |--.   
>--+------------------------------------------------------------------------+-->
   '-MANAGED BY--+-SYSTEM--| system-containers |--------------------------+-'   
                 '-DATABASE--| database-containers |--| size-attributes |-'     

>--+---------------------------------+-------------------------->
   '-EXTENTSIZE--+-number-of-pages-+-'   
                 '-integer--+-K-+--'     
                            '-M-'        

>--+-----------------------------------+------------------------>
   '-PREFETCHSIZE--+-AUTOMATIC-------+-'   
                   +-number-of-pages-+     
                   '-integer--+-K-+--'     
                              '-M-'        

>--+-----------------------------+------------------------------>
   '-BUFFERPOOL--bufferpool-name-'   

>--+--------------------------------------+--------------------->
   '-OVERHEAD--+-number-of-milliseconds-+-'   
               '-INHERIT----------------'     

>--+------------------------+----------------------------------->
   +-NO FILE SYSTEM CACHING-+   
   '-FILE SYSTEM CACHING----'   

>--+------------------------------------------+----------------->
   '-TRANSFERRATE--+-number-of-milliseconds-+-'   
                   '-INHERIT----------------'     

>--+--------------------------------+--------------------------->
   '-DATA TAG--+-integer-constant-+-'   
               +-INHERIT----------+     
               '-NONE-------------'     

>--+---------------------------------+-------------------------><
   '-DROPPED TABLE RECOVERY--+-ON--+-'   
                             '-OFF-'     

storage-group

|--+-----------------------------------+------------------------|
   '-USING STOGROUP--storagegroup-name-'   

size-attributes

|--+---------------------+--+-----------------------------+----->
   '-AUTORESIZE--+-NO--+-'  '-INITIALSIZE--integer--+-K-+-'   
                 '-YES-'                            +-M-+     
                                                    '-G-'     

>--+------------------------------------+----------------------->
   '-INCREASESIZE--integer--+-PERCENT-+-'   
                            '-+-K-+---'     
                              +-M-+         
                              '-G-'         

>--+-----------------------------+------------------------------|
   '-MAXSIZE--+-integer--+-K-+-+-'   
              |          +-M-+ |     
              |          '-G-' |     
              '-NONE-----------'     

system-containers

   .----------------------------------------------------------------------.   
   |           .-,------------------.                                     |   
   V           V                    |                                     |   
|----USING--(----'container-string'-+--)--+-----------------------------+-+--|
                                          '-| on-db-partitions-clause |-'     

database-containers

   .--------------------------------------------------------------.   
   V                                                              |   
|----USING--| container-clause |--+-----------------------------+-+--|
                                  '-| on-db-partitions-clause |-'     

container-clause

      .-,---------------------------------------------------.      
      V                                                     |      
|--(----+-FILE---+--'container-string'--+-number-of-pages-+-+--)--|
        '-DEVICE-'                      '-integer--+-K-+--'        
                                                   +-M-+           
                                                   '-G-'           

on-db-partitions-clause

|--ON--+-DBPARTITIONNUM--+-------------------------------------->
       '-DBPARTITIONNUMS-'   

      .-,--------------------------------------------------.      
      V                                                    |      
>--(----db-partition-number1--+--------------------------+-+--)--|
                              '-TO--db-partition-number2-'        

 

創建SMS表空間

db2 "create [large] tablespace TBS_NAME managed by system using('path','path')"

 

創建DMS類型表空間

db2 “create [large] tablespace TBS_NAME managed by database using (file/device 'container string' number of pages K|M|G,file/device 'container string' number of pages K|M|G)”

 

創建pagesize為8K的表空間

db2 "create buffer buffer8k pagesize 8192"
db2 "create tablespace NAME pagesize 8192 managed by system using ('path') bufferpool buffer8k"

PS:DB2表空間默認的pagesize=4096(4k),創建pagesize=8192(8k)的表空間需要指定一個pagesize=8192的bufferpool。

 

創建系統表空間(存儲分組、排序、連接、重組、創建索引操作等中間結果)

db2 "create system temporary tablespace TBS_NAME managed by system using('path','path')"

 

創建用戶臨時表空間(用來批量插入、批量更新和批量刪除以加快速度)

db2 "create user temporary tablespace NAME managed by database using(file 'file' 5000)"

3 查看表空間

3.1 查看表空間信息

db2 list tablespaces show detail

[inst105]# db2 list tablespaces show detail

           Tablespaces for Current Database

 Tablespace ID                        = 0
 Name                                 = SYSCATSPACE
 Type                                 = Database managed space
 Contents                             = All permanent data. Regular table space.
 State                                = 0x0000
   Detailed explanation:
     Normal
 Total pages                          = 10240
 Useable pages                        = 10236
 Used pages                           = 9612
 Free pages                           = 624
 High water mark (pages)              = 9612
 Page size (bytes)                    = 16384
 Extent size (pages)                  = 4
 Prefetch size (pages)                = 4
 Number of containers                 = 1

 Tablespace ID                        = 1
 Name                                 = TEMPSPACE1
 Type                                 = System managed space
 Contents                             = System Temporary data
 State                                = 0x0000
   Detailed explanation:
     Normal
 Total pages                          = 1
 Useable pages                        = 1
 Used pages                           = 1
 Free pages                           = Not applicable
 High water mark (pages)              = Not applicable
 Page size (bytes)                    = 16384
 Extent size (pages)                  = 32
 Prefetch size (pages)                = 32
 Number of containers                 = 1

 Tablespace ID                        = 2
 Name                                 = USERSPACE1
 Type                                 = Database managed space
 Contents                             = All permanent data. Large table space.
 State                                = 0x0000
   Detailed explanation:
     Normal
 Total pages                          = 2048
 Useable pages                        = 2016
 Used pages                           = 224
 Free pages                           = 1792
 High water mark (pages)              = 288
 Page size (bytes)                    = 16384
 Extent size (pages)                  = 32
 Prefetch size (pages)                = 32
 Number of containers                 = 1

 Tablespace ID                        = 3
 Name                                 = SYSTOOLSPACE
 Type                                 = Database managed space
 Contents                             = All permanent data. Large table space.
 State                                = 0x0000
   Detailed explanation:
     Normal
 Total pages                          = 2048
 Useable pages                        = 2044
 Used pages                           = 88
 Free pages                           = 1956
 High water mark (pages)              = 88
 Page size (bytes)                    = 16384
 Extent size (pages)                  = 4
 Prefetch size (pages)                = 4
 Number of containers                 = 1

 

db2pd -db DBNAME -tablespaces

[inst105]# db2pd -db db01 -tablespaces

Database Member 0 -- Database DB01 -- Active -- Up 0 days 00:00:09 -- Date 2021-12-07-23.33.59.387305

Tablespace Configuration:
Address            Id    Type Content PageSz ExtentSz Auto Prefetch BufID BufIDDisk FSC NumCntrs MaxStripe  LastConsecPg RSE  Name
0x00002AC7BC78FD40 0     DMS  Regular 16384  4        Yes  4        1     1         Def 1        0          3            Yes  SYSCATSPACE
0x00002AC7BC79CEE0 1     SMS  SysTmp  16384  32       Yes  32       1     1         On  1        0          31           No   TEMPSPACE1
0x00002AC7BC7AA080 2     DMS  Large   16384  32       Yes  32       1     1         Def 1        0          31           Yes  USERSPACE1
0x00002AC7BC7B7220 3     DMS  Large   16384  4        Yes  4        1     1         Def 1        0          3            Yes  SYSTOOLSPACE

Tablespace Statistics:
Address            Id    TotalPgs   UsablePgs  UsedPgs    PndFreePgs FreePgs    HWM        Max HWM    State      MinRecTime NQuiescers PathsDropped TrackmodState    
0x00002AC7BC78FD40 0     10240      10236      9612       0          624        9612       9612       0x00000000 0          0          No           n/a              
0x00002AC7BC79CEE0 1     1          1          1          0          0          -          -          0x00000000 0          0          No           n/a              
0x00002AC7BC7AA080 2     2048       2016       224        0          1792       288        288        0x00000000 0          0          No           n/a              
0x00002AC7BC7B7220 3     2048       2044       88         0          1956       88         88         0x00000000 0          0          No           n/a              

Tablespace Autoresize Statistics:
Address            Id    AS  AR  InitSize             IncSize              IIP MaxSize              LastResize                 LRF
0x00002AC7BC78FD40 0     Yes Yes 33554432             -1                   No  None                 None                       No  
0x00002AC7BC79CEE0 1     Yes No  0                    0                    No  0                    None                       No  
0x00002AC7BC7AA080 2     Yes Yes 33554432             -1                   No  None                 None                       No  
0x00002AC7BC7B7220 3     Yes Yes 33554432             -1                   No  None                 None                       No  

Tablespace Storage Statistics:
Address            Id    DataTag  Rebalance SGID  SourceSGID
0x00002AC7BC78FD40 0     0        No        0     -                    
0x00002AC7BC79CEE0 1     0        No        0     -                    
0x00002AC7BC7AA080 2     -1       No        0     -                    
0x00002AC7BC7B7220 3     -1       No        0     -                    

Containers:
Address            TspId ContainNum Type    TotalPgs   UseablePgs PathID     StripeSet  Container 
0x00002AC7BC7898A0 0     0          File    10240      10236      0          0          /home/inst105/inst105/NODE0000/DB01/T0000000/C0000000.CAT
0x00002AC7BC7C5000 1     0          Path    1          1          0          0          /home/inst105/inst105/NODE0000/DB01/T0000001/C0000000.TMP
0x00002AC7B7134C00 2     0          File    2048       2016       0          0          /home/inst105/inst105/NODE0000/DB01/T0000002/C0000000.LRG
0x00002AC7BC76A8C0 3     0          File    2048       2044       0          0          /home/inst105/inst105/NODE0000/DB01/T0000003/C0000000.LRG

 

使用系統視圖查看

[inst105]# db2 "
> select 
> substr(TBSP_NAME,1,18) as TBSP_NAME,
> TBSP_TYPE,
> substr(TBSP_STATE,1,10) as TBSP_STATE,
> substr(TBSP_TOTAL_SIZE_KB,1,15) as TOTAL_KB,
> substr(TBSP_USABLE_SIZE_KB,1,15) as USABLE_KB,
> substr(TBSP_USED_SIZE_KB,1,15) as USED_KB,
> TBSP_UTILIZATION_PERCENT||'%' as PERCENT,
> TBSP_AUTO_RESIZE_ENABLED 
> from SYSIBMADM.TBSP_UTILIZATION
> "

TBSP_NAME          TBSP_TYPE  TBSP_STATE TOTAL_KB        USABLE_KB       USED_KB         PERCENT  TBSP_AUTO_RESIZE_ENABLED
------------------ ---------- ---------- --------------- --------------- --------------- -------- ------------------------
SYSCATSPACE        DMS        NORMAL     163840          163776          153792          93.90%                          1
TEMPSPACE1         SMS        NORMAL     16              16              16              100.00%                         -
USERSPACE1         DMS        NORMAL     32768           32256           3584            11.11%                          1
SYSTOOLSPACE       DMS        NORMAL     32768           32704           1408            4.30%                           1

TBSP_AUTO_RESIZE_ENABLED值:

  • 1:表示表空間是DMS自動擴展表空間。
  • -:表示表空間為SMS類型表空間由文件系統管理。
  • 0:表示表空間是DMS非自動擴展表空間。

3.2 表空間狀態

常見的表空間狀態:

狀態

解釋

0x1

停頓:SHARE                          

0x2

停頓:UPDATE

0x4

停頓:EXCLUSIVE

0x8

裝入暫掛

0x10

刪除暫掛

0x20

備份暫掛

0x40

正在前滾

0x80

前滾暫掛

0x100

復原暫掛

0x100

恢復暫掛(未使用)

0x200

禁用暫掛

0x400

正在重組

0x800

正在備份

0x1000

必須定義存儲器

0x2000

正在復原

0x4000

脫機並且不可訪問

0x8000

刪除暫掛

0x2000000

可以定義存儲器

0x4000000

存儲器定義處於“最終”狀態

0x8000000

在前滾之前已更改存儲器定義

0x10000000

DMS 重新平衡程序處於活動狀態

0x20000000

正在進行 TBS 刪除

0x40000000

正在進行 TBS 創建

 

表空間狀態解析:

[db2inst1]# db2tbst 0x2000
State = Restore in Progress

4 表空間管理

注意:

       SMS、自動存儲器表空間均不需要人工介入擴容,以下是基於DMS類型表空間擴容。

 

擴容某表空間所有容器

db2 “alter tablspace TBS_NAME extend (all,1000)”

 

縮容某表空間容器(不建議)

db2 “alter tablespace TBS_NAME reduce (file 'filename' size)”

提示:size是要縮容的值。

 

容器為LVM擴容

db2 “alter tablespace TBS_NAME resize (device '/dev/rLVM' pages)”

提示:pages為增長后的頁數。

 

容器為file擴容

db2 “alter tablespace TBS_NAME extend (file 'path' size)”

 

刪除表空間某個容器

db2 “alter tablespace TBS_NMAE drop (file 'path',device '/dev/rdisk1')”

 

切換offline表空間為online

db2 “alter tablespace TBS_NAME switch online”

 

轉換常規表空間為大型表空間

db2 “alter tablespace TBS_NAME convert to large”

提示:

       將常規表空間轉換為large表空間后,需要將表空間內表的索引重建或者對表進行離線reorg,要不然往表中插入數據可能會報錯SQL1236N、SQL1237W。

 

重命名表空間

db2 “rename tablespace TBS_NAME to TBS_NAME_NEW”

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM