首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> DB2 資料庫 >> DB2 教學

DB2 表空間管理實戰:DMS 建立語法與跨平台範例詳解(下)

     編輯:DB2 教學

DMS 表空間建立核心語法

資料庫管理空間(DMS)由資料庫引擎直接管理容器,空間預先分配,效能優於 SMS。基本建立語法如下:

CREATE TABLESPACE <名稱>
MANAGED BY DATABASE
USING (FILE '<路徑>' <大小>);

容器可為檔案或原始裝置,大小單位為頁(4KB/8KB/16KB/32KB),建立後須手動擴展或新增容器。

Windows 平台範例

範例一:SMS 表空間多目錄容器

CREATE TABLESPACE RESOURCE
MANAGED BY SYSTEM
USING ('d:\acc_tbsp','e:\acc_tbsp','f:\acc_tbsp');

三個目錄分布於不同磁碟,OS 自動管理空間增長,適合開發/測試環境。

範例二:DMS 檔案容器固定大小

CREATE TABLESPACE RESOURCE
MANAGED BY DATABASE
USING (FILE 'd:\db2data\acc_tbsp' 5000,
       FILE 'e:\db2data\acc_tbsp' 5000);

兩個 5000 頁(約 20MB)檔案容器,空間固定,生產環境常用。

UNIX/Linux 平台範例

範例三:原始裝置容器

CREATE TABLESPACE RESOURCE
MANAGED BY DATABASE
USING (DEVICE '/dev/rdblv6' 10000,
       DEVICE '/dev/rdblv7' 10000,
       DEVICE '/dev/rdblv8' 10000)
OVERHEAD 24.1
TRANSFERRATE 0.9;

使用邏輯卷作為原始裝置容器,各 10000 頁。OVERHEAD(磁頭移動毫秒數)與 TRANSFERRATE(讀取一頁毫秒數)為優化器提供 I/O 成本模型參數,提升查詢計畫品質。注意:裝置必須預先存在,實例擁有者與 SYSADM 群組需具寫入權限。

範例四:分區資料庫節點組指定容器

CREATE TABLESPACE PLANS
MANAGED BY DATABASE
USING (DEVICE '/dev/HDISK0' 10000, DEVICE '/dev/n1hd01' 40000) ON NODE 1
      (DEVICE '/dev/HDISK0' 10000, DEVICE '/dev/n3hd03' 40000) ON NODE 3
      (DEVICE '/dev/HDISK0' 10000, DEVICE '/dev/n5hd05' 40000) ON NODE 5;

針對 ODDNODEGROUP(節點 1、3、5)分別指定容器。所有節點共用 /dev/HDISK0 10000 頁,另各自擁有 40000 頁專屬裝置,實現存儲隔離與負載均衡。

範例五:8KB 頁大小 SMS 表空間

CREATE TABLESPACE SMS8K
PAGESIZE 8192
MANAGED BY SYSTEM
USING ('FSMS_8K_1')
BUFFERPOOL BUFFPOOL8K;

建立 8KB 頁面的 SMS 表空間,必須指定同頁面大小的緩衝池(BUFFPOOL8K)。表空間僅在緩衝池啟動後可用,適合大物件(LOB)或長行資料存儲。

表空間重命名與刪除操作

  • 重命名:RENAME TABLESPACE old_name TO new_name。會更新所有目錄記錄,但 SYSCATSPACE、處於前滾暫掛/前滾狀態的表空間不可重命名。
  • 刪除:DROP TABLESPACE ts_name。會刪除所有資料、釋放容器、移除目錄項,表空間內物件標記失效。若欲重用容器,必須先 COMMIT 該 DROP 指令。

掌握跨平台建立語法與生命週期管理,是 DBA 打造高可用、高效能 DB2 環境的基石。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved