ALTER STOGROUP 陳述式

ALTER STOGROUP 陳述式用來變更儲存體群組的定義。

呼叫

此陳述式可以內嵌在應用程式中,或以互動方式發出。 它是可執行的陳述式,只有在 DYNAMICRULES 執行行為對套件有效時才能動態準備 (SQLSTATE 42509)。

授權

陳述式授權 ID 所保留的專用權必須包括 SYSCTRL 或 SYSADM 權限。

語法

Read syntax diagramSkip visual syntax diagramALTERSTOGROUPstoragegroup-name ADD,'storage-path'DROP,'storage-path'OVERHEADnumber-of-millisecondsDEVICE READ RATEnumber-megabytes-per-secondDATA TAGinteger-constantNONESET AS DEFAULT1
Notes:
  • 1 Each clause can be specified only once.

說明

storagegroup-name
識別要變更的儲存體群組; storagegroup-name 必須識別存在於現行伺服器上的儲存體群組 (SQLSTATE 42704)。 這是一個單部分名稱。
ADD
指定要將一個以上新的儲存體路徑新增至指定的儲存體群組。
storage-path
字串常數,指定儲存器要建立自動儲存體表格空間的位置。 字串的格式視作業系統而定,如下表所示:
作業系統 儲存體路徑字串的格式
Linux®
AIX®

絕對路徑
Windows 磁碟機的字母名稱

字串可以包括資料庫分割區表示式,以在儲存體路徑中指定資料庫分割區號碼資訊。 為了可預測效能,請確保新增至儲存體群組的儲存體路徑具有類似的媒體性質。

儲存體路徑的長度上限為 175 個字元 (SQLSTATE 54036)。

根據路徑的命名規則,要新增的儲存體路徑必須有效,且必須可存取 (SQLSTATE 57019)。 同樣地,在分割的資料庫環境中,儲存體路徑必須存在且可在每個資料庫分割區上存取 (SQLSTATE 57019)。
DROP
指定要從給定儲存體群組中移除一個以上儲存體路徑。 如果表格空間正在使用正在捨棄的儲存體路徑,則儲存體路徑的狀態會從「使用中」變更為「捨棄擱置中」,並防止未來使用儲存體路徑。

Db2® pureScale ® 環境中不支援 DROP storage-path 子句 (SQLSTATE 56038)。

storage-path
字串常數,指定要從中捨棄儲存體群組的儲存體路徑。 字串的格式視作業系統而定,如下表所示:
作業系統 儲存體路徑字串的格式
Linux
AIX

絕對路徑
Windows 磁碟機的字母名稱

字串可以包括資料庫分割區表示式,以在儲存體路徑中指定資料庫分割區號碼資訊。

正在捨棄的儲存體路徑目前必須存在於儲存體群組中 (SQLSTATE 57019) ,且不能已處於「捨棄擱置」狀態 (SQLSTATE 55073)。

額外負擔 毫秒數
指定 I/O 控制器使用情形及磁碟探查和延遲時間。 此值是用來決定查詢最佳化期間的 I/O 成本。 number-of-milliseconds 的值是任何數值文字 (整數、小數或浮點數)。 如果所有儲存體路徑的此值不同,請將此值設為數值文字,其代表屬於儲存體群組之所有儲存體路徑的平均值。
裝置讀取率 數-每秒 MB 數
代表每秒讀取傳送速率的裝置規格 (MB)。 此值是用來決定查詢最佳化期間的 I/O 成本。 number-megabytes-per-second 的值是任何數值文字 (整數、小數或浮點數)。 如果所有儲存體路徑的此值不同,請將此值設為數值文字,其代表屬於儲存體群組之所有儲存體路徑的平均值。
DATA TAG integer-constant 或 DATA TAG NONE
指定給定儲存體群組中資料的標籤。 此值可以作為工作類別定義中 WLM 配置的一部分,或在臨界值定義內參照。 如需相關資訊,請參閱 CREATE WORK CLASS SET、ALTER WORK CLASS SET、CREATE THRESHOLD 及 ALTER THRESHOLD 陳述式。
整數常數
integer-constant 的有效值為 1 至 9 之間的整數。
NONE
如果指定 NONE ,則沒有資料標籤。
設為預設值
指定要變更的儲存體群組指定為預設儲存體群組。 只能有一個指定為預設儲存體群組的儲存體群組。 不會影響使用該儲存體群組的現有表格空間。 如果在建立表格空間時未指定儲存體群組,且在重新導向還原期間將資料庫受管理表格空間轉換為受管理自動儲存體,則自動儲存體表格空間會使用指定的預設儲存體群組。

規則

  • 儲存體群組必須至少有一個儲存體路徑。 不允許捨棄儲存體群組中的所有儲存體路徑 (SQLSTATE 428HH)。
  • 新增資料庫分割區伺服器時,無法執行 ALTER STOGROUP 陳述式 (SQLSTATE 55071)。
  • 儲存體群組最多可以有 128 個已定義的儲存體路徑 (SQLSTATE 5U009)。
  • 每個儲存體群組最多可以有一個 ALTER STOGROUP 陳述式。 如果是預設儲存體群組,則預設儲存體群組上最多只能有一個 ALTER DATABASE 陳述式或一個 ALTER STOGROUP 陳述式 (SQLSTATE 25502)。

注意事項

  • 新增儲存體路徑: 新增儲存體路徑時:
    • 使用此儲存體群組的現有 REGULAR 及 LARGE 表格空間將不會起始使用這些新路徑。 只有在發生空間不足狀況時,資料庫管理程式才會選擇在這些路徑上建立新的表格空間儲存器。 您可以針對現有表格空間發出 ALTER TABLESPACE REBALANCE 陳述式,將它們分段在新增的儲存體路徑上。
    • 由自動儲存體管理的現有暫存表格空間不會自動使用新的儲存體路徑。 必須正常停止資料庫,然後重新啟動這些表格空間中的儲存器,以使用新的儲存體路徑。 作為替代方案,可以捨棄並重建暫存表格空間。 建立時,這些表格空間會自動使用具有足夠可用空間的所有儲存體路徑。
  • 計算可用空間: 計算資料庫分割區上儲存體路徑的可用空間時,資料庫管理程式會檢查儲存體路徑內是否存在下列目錄或裝載點,並將使用找到的第一個目錄或裝載點。
    <storage path>/<instance name>/NODE####/<database name>
    <storage path>/<instance name>/NODE####
    <storage path>/<instance name>
    <storage path>
    其中:
    • <storage path> 是與資料庫相關聯的儲存體路徑。
    • <instance name> 是資料庫所在的實例。
    • NODE#### 對應於資料庫分割區號碼 (例如, NODE0000 或 NODE0001)。
    • <database name> 是資料庫的名稱。
  • 隔離一個儲存體路徑下的多個資料庫分割區: 檔案系統可以裝載在儲存體路徑下的某個點,而且資料庫管理程式將辨識出表格空間儲存器可用的實際空間量可能不是與儲存體路徑目錄本身相關聯的相同數量。

    假設有一個範例,其中一個實體電腦上有兩個邏輯資料庫分割區,且有單一儲存體路徑 (/dbdata)。 每一個資料庫分割區都將使用此儲存體路徑,但您可能想要將資料與其本身檔案系統內的每一個分割區隔離。 在此情況下,可以為每一個分割區建立個別檔案系統,並且可以在 /dbdata/<instance>/NODE####中裝載該檔案系統。 在儲存體路徑上建立儲存器並判定可用空間時,資料庫管理程式不會擷取 /dbdata的可用空間資訊,而是會針對對應的 /dbdata/<instance>/NODE#### 目錄來擷取它。

  • 捨棄一個以上表格空間使用中的儲存體路徑: 捨棄一個以上表格空間使用中的儲存體路徑時,路徑狀態會從「使用中」變更為「捨棄擱置」。 路徑上的未來成長將不會發生。

    在可以從儲存體群組完全移除路徑之前,必須重新平衡每一個受影響的表格空間 (使用 ALTER TABLESPACE 陳述式的 REBALANCE 子句) ,以便將其儲存器資料移出儲存體路徑。 僅 REGULAR 及 LARGE 表格空間支援重新平衡。 捨棄並重建暫存表格空間,以從捨棄的路徑中移除其儲存器。 當任何表格空間不再使用該路徑時,就會從資料庫中實際移除該路徑。

    對於分割的資料庫環境,會在每一個分割區上獨立維護路徑。 當給定資料庫分割區上不再使用某個路徑時,會從該分割區實際移除該路徑。 其他分割區可能仍會將路徑顯示為處於「捨棄擱置」狀態。 可以透過發出下列 SQL 陳述式來判定使用捨棄擱置儲存體路徑的自動儲存體表格空間清單:
    SELECT DISTINCT TBSP_NAME, TBSP_ID, TBSP_CONTENT_TYPE
      FROM TABLE(MON_GET_TABLESPACE(NULL,-2)) AS T
      WHERE TBSP_PATHS_DROPPED = 1
  • 捨棄已多次新增至儲存體群組的儲存體路徑: 給定的儲存體路徑可以多次新增至儲存體群組。 使用 DROP 子句時,指定特定路徑一次將捨棄儲存體群組中路徑的所有實例。

範例

  1. 將磁碟機 D 和 E 新增至名為 COMPLIANCE 的儲存體群組。
    ALTER STOGROUP COMPLIANCE ADD 'D:\', 'E:\'
  2. 將儲存體路徑新增至名為 COMPLIANCE 的儲存體群組。
    ALTER STOGROUP COMPLIANCE ADD '/db/filesystem3', '/db/filesystem4'
  3. 變更 OPERATIONAL 儲存體群組的資料標籤,並將它指定為預設儲存體群組。
    ALTER STOGROUP OPERATIONAL DATA TAG 3 SET AS DEFAULT 
  4. 新增使用資料庫分割區表示式的儲存體路徑,以區分每一個資料庫分割區上的儲存體路徑。
    ALTER STOGROUP TESTDATA ADD '/dataForPartition $N' 
  5. 從儲存體群組 TESTDATA 中移除路徑 /db/filesystem1/db/filesystem2
    ALTER STOGROUP TESTDATA DROP '/db/filesystem1', '/db/filesystem2'