命令參照
|
|
|REORGCHK 命令
|在 REORGCHK 命令內使用的索引統計資料公式已修訂過了。
|新的公式及其說明如下:
|
|
|- 公式 F5:
|
|
100 * (KEYS * (ISIZE + LEAF_REC_OVERHEAD) + (CARD - KEYS)
| * DUPKEYSIZE )
| / ((NLEAF - NUM EMPTY LEAFS - 1) *
| (INDEXPAGESIZE - 96) > MIN(50, (100 - PCTFREE))
|其中
|LEAF_REC_OVERHEAD = 9 及 DUPKEYSIZE = 5。
|
|如果索引中有超過百分之 50 的可用空間,或索引中有超過 PCTFREE% 的可用空間 (如果 PCTFREE 大於 50 的話),
|建議重組。只在 NLEAF - NUM EMPTY LEAFS - 1 的值大於 0 時,才會檢查這個公式。
|(從 NLEAF 值減去 1 的原因是所配置的最後一個索引頁通常不會填滿。)
|- 公式 F6:
|
|
(100 - PCTFREE) *
| [ Floor((100 - min(10, PCTFREE)) / 100 * (INDEXPAGESIZE - 96)
| / (ISIZE + NONLEAF_REC_OVERHEAD)) ** (NLEVELS - 2)]
| * (INDEXPAGESIZE - 96) /
| (KEYS * (ISIZE + LEAF_REC_OVERHEAD)
| + (CARD - KEYS) * DUPKEYSIZE) < 100
|其中
|NONLEAF_REC_OVERHEAD = 12。
|
|判定重建索引是否將導致具有更少層的樹狀結構。
|這個公式會檢查索引樹狀結構 (比目前樹狀結構少一層) 中的空間數量與所需空間數量之間的比例。
|如果可以建立少一層的樹狀結構,但仍有 PCTFREE 可用,則建議重組。
|實際的索引項目數目應該超過 NLEVELS - 1 索引樹狀結構可以處理的項目數目的 90% (或 100 -
|PCTFREE) (只在 NLEVELS > 1 時才檢查)。
|
|
|註:
|所有公式都是以統計資料為基礎。來自這些公式的統計資料及結果只是估計值而已。
|您應該將這個資訊謹記於心來複查 REORGCHK 的結果。
|
|
|REORG INDEXES/TABLE 命令
|重組索引或表格
|REORG INDEXES ALL FOR TABLE 表格名稱選項會重組所有定義在表格的索引,
|方法為將索引資料重新建置為未片段化且實際連續的頁面。
|如果您指定索引選項的 CLEANUP ONLY 選項,將執行清除,但不重新建置索引。
|如果您嘗試對已宣告的暫時表格上的索引使用這個命令,
|將傳回 SQLSTATE 42995 錯誤。
|REORG TABLE 表格名稱選項會透過重新建構橫列來消除已片段化的資料,
|以及透過壓縮資訊,來重組表格。表格重組是以這兩種方法之一來完成:
|
|
|- 傳統
|- 在第一個重組階段只容許對資料具有有限的唯讀權。
|
|- 就地
|- 容許在整個重組中存取資料,但無法確保資料能完全照原來的順序排列。
|只在具有類型 2 索引且沒有擴充索引的表格上,才容許就地表格重組。
|
|
|當您選擇任一類型的重組時,在重組表格之後,就會重新建置表格的索引。
|不過,利用就地方法,將無法完全正確地重組索引,而且可能需要您稍後重組索引,
|以減少索引片段化並收回索引物件空間。
|
|範例
|若為傳統 (離線) REORG TABLE (如 DB2 Universal Database
|(UDB) 第 7 版中的預設值),請輸入下列命令
|
| db2 reorg table employee index empid allow no access indexscan
| longlobdata
|
|
|註:
|在 DB2 UDB 第 8 版中會有不同的預設值。
|
|用法注意事項
|DB2 UDB 提供兩種重組表格的方法:傳統及就地。
|通常,傳統表格重組較快,但只在您的應用程式在重組期間沒有表格的寫入權時,才應使用這種重組。如果您的環境不容許這個限制,
|雖然就地重組較慢,但是當正常資料存取繼續時,它可以在背景中進行。
|傳統表格重組提供最快的表格重組,尤其是在您不需要重組 LOB 或 LONG 資料的時候。
|此外,在重組表格之後,將按完全正確的次序重新建置索引。唯讀應用程式可以存取表格的原始複本,
|但最後重組階段期間除外,因為在這個期間,永久表格將置換表格的陰影複本,
|而且將重新建置索引。
|就地表格重組較慢,而且無法確保資料能完全照正確的順序排列,但是它可以容許應用程式在重組期間存取表格。
|此外,就地表格重組可以暫停,並在稍後可以由任何具有適當權限的使用者,利用綱目及表格名稱來回復重組。
|
|已更新的限制
|REORG 公用程式不支援使用暱稱。
|
|- 已宣告的暫時表格不支援 REORG TABLE 命令。
|- 無法在概略表上使用 REORG TABLE 命令。
|- 表格重組與範圍叢集化表格不相容,因為表格的範圍區域永遠保持叢集化。
|- 離線表格重組不容許啟動表格空間的線上備份作業,因為當發生重組時,表格位於這個表格空間。
|- SMS 表格的線上表格重組不容許啟動表格空間的線上備份作業,因為當發生重組時,表格位於這個表格空間。
|- DMS 表格的線上表格重組的確容許啟動表格空間的線上備份作業,因為當發生重組時,表格位於這個表格空間。
|在截斷階段期間,可能有重組作業的鎖定等待。
|- REORG TABLE 無法使用以索引擴充為基礎的索引。
|
|
|BACKUP DATABASE 命令
|
|用法注意事項
|請注意下列限制:
|
|
|- 當相同表格空間內的表格正在進行線上重組時,
|容許啟動 DMS 表格空間的線上備份作業。在截斷階段期間,
|可能有重組作業的鎖定等待。
|- 當相同表格空間內的表格正在進行線上重組時,
|不容許啟動 SMS 表格空間的線上備份作業。這兩個作業都需要專用鎖定。
移轉資料庫
限制
第 8 版文件含糊不清地陳述,如果資料庫已移轉至 DB2 UDB 第 8 版 FixPak 層次,
則不需要任何資料庫移轉。
明確的意思是一旦資料庫位於第 8 版層次 (8.1 或 8.2 版,或是後續的 fixpak),
則 fixpak 之間不需要資料庫移轉。
由於 8.2 版中的資料庫目錄檔結構發生變更,所以當您從第 7 版或 8.1 版移至 8.2 版時,
將會自動為您執行移轉。不過,如果您從 8.2 版回到 8.1 版,
則必須執行 db2demigdbd 來復置資料庫目錄檔結構。
如果失敗,則在嘗試存取資料庫時,將導致錯誤 SQL10004。
db2inidb - 起始設定鏡映的資料庫命令
請不要在發出 db2inidb database as
mirror 命令之前,發出 db2 connect to database 命令。
在起始設定分割的鏡映資料庫之前,若嘗試連接至這個資料庫,將消除 RollForward 回復所需的日誌檔。
此連接會將您的資料庫設回當您先前暫停資料庫時它的狀態。
如果資料庫在暫停時標示為一致,則 DB2 Universal Database(TM) 會斷定不需要損毀回復,因此會清空日誌以供未來使用。如果發生這種狀況,嘗試 RollForward 會導致 SQL4970 錯誤。
db2iupdt 命令的用法注意事項
從 8.2 版開始,當利用 db2iupdt 命令更新 DB2 Universal Database 實例時,首先您必須停止任何針對該實例執行的 DB2(R) 程序。
db2sqljcustomize 命令的新參數
db2sqljcustomize 命令具有新的參數。
db2sqljcustomize - DB2 SQLJ 設定檔自訂器命令
- -storebindoptions
- 將 -bindoptions 及 -staticpositioned 值儲存在已序列化的設定檔中。當呼叫 dbsqljbind 工具時,
如果未指定這些值,將使用已序列化的設定檔中所儲存的值。
當利用 .grp 檔呼叫「自訂器」時,值會儲存在每一個別的 .ser 檔中。您可以使用 db2sqljprint 工具來檢視這些儲存值。
sqlj 命令的新參數
sqlj 命令具有新的參數。
sqlj - DB2 SQLJ 轉換程式命令
- -db2optimize
- 指定 SQLJ 轉換程式為連線環境定義類別產生要對 DB2 Universal Database 最佳化的程式碼。這個選項是將使用者定義的環境定義的程式碼最佳化,而不是預設環境定義的程式碼。
當您利用這個選項執行 SQLJ 轉換程式時,DB2 Universal JDBC Driver 檔案 db2jcc.jar 必須位於 CLASSPATH,才能編譯所產生的 Java(TM) 應用程式。
監督及疑難排解命令 (db2pd) 更新
監督及疑難排解 DB2 命令 (db2pd) 可從 DB2 UDB 記憶體集擷取資訊。
db2pd 系統命令已利用下列方式來加強:
新的 -hadr 參數
已在 8.2 版 (相當於 8.1 版 FixPak 7) 中引進,-hadr 參數可報告「高可用性災禍回復」資訊。每一個報告的元素的說明都可以在 System Monitor Guide and Reference 的 High availability disaster recovery 一節中找到。
新的 -utilities 參數
已在 8.2 版 (相當於 8.1 版 FixPak 7) 中引進,-utilities 參數可報告「公用程式」資訊。每一個報告的元素的說明都可以在 System Monitor
Guide and Reference 的 Utilities 一節中找到。
新的 -activestatements 參數
已在 8.2.2 版 (相當於 8.1 版 FixPak 9) 中引進,-activestatements 參數可傳回作用中陳述式的相關資訊。傳回的資訊如下:
- AppHandl
- 使用作用中陳述式的應用程式控點,包括節點及索引。
- UOW-ID
- 對於與 AppHandl 相關的應用程式,這是陳述式將在其中變成作用中的工作單元 ID。
- StmtID
- 工作單元內的陳述式 ID。
- AnchID
- 資料包快取動態 SQL 雜湊錨點的 ID。
- StmtUID
- 雜湊錨點內資料包快取動態 SQL 陳述式獨有的 ID。
- EffISO
- 陳述式的有效隔離層次。
- EffLockTOut
- 陳述式的有效鎖定逾時值。
- EffDegree
- 陳述式的有效並行化程度。
- StartTime
- 陳述式的啟動時間。
- LastRefTime
- 應用程式上次參照陳述式的時間。
-locks 參數的新 wait 選項
從 8.2.2 版 (相當於 8.1 版 FixPak 9) 開始,您可以指定 wait 選項與 -locks 參數,來只傳回具有等待狀態的鎖定,以及正在等待的鎖定。
-applications 參數所傳回的新欄位
從 8.2.2 版 (相當於 8.1 版 FixPak 9) 開始,-applications 參數會傳回四個新的欄位:
- C-AnchID
- 這個新欄位是現行陳述式之資料包快取動態 SQL 雜湊錨點的 ID。
如果現行陳述式不存在,則這個欄位值為零。
只在應用程式正在執行與陳述式相關的要求 (如游標上的 FETCH 要求) 時,
才會移入現行雜湊錨點 ID。一旦完成要求處理程序,這些值便會設為 0。
靜態 SQL 陳述式的值也會設為 0。
- C-StmtUID
- 這個新欄位是資料包快取動態 SQL 陳述式唯一 ID,位於現行陳述式的雜湊錨點內。
如果現行陳述式不存在,則這個欄位值為零。
只在應用程式正在執行與陳述式相關的要求時,
才會移入現行陳述式唯一 ID。一旦完成要求執行,這些值便會設為 0。
靜態 SQL 陳述式的值也會設為 0。
- L-AnchID
- 這個新欄位是應用程式上次執行之陳述式的資料包快取動態 SQL 雜湊錨點 ID。
如果上次執行的陳述式不存在 (如在執行任何動態 SQL 陳述式之前),則這個欄位值為零。
靜態 SQL 陳述式的值也會設為 0。在完成每一個要求執行之後,就會移入上一個錨點雜湊 ID,
而且會一直存在,直到完成下一個相關的要求為止。
- L-StmtUID
- 這個新欄位是資料包快取動態 SQL 陳述式唯一 ID,位於應用程式上次執行之陳述式的雜湊錨點內。
如果上次執行的陳述式不存在,或如果上次執行的陳述式是靜態 SQL,則這個欄位值為零。
在完成現行要求之後,就會移入上一個陳述式 ID,而且會一直存在,直到完成下一個要求為止。
SET CLIENT 命令的更新
SET(TM) CLIENT 命令指定後端程序的連線設定。
從第 8 版開始,將忽略這個命令的命令參數 SYNCPOINT。
為了舊版相容性,將繼續併入 SYNCPOINT。
PRECOMPILE 命令的更新
PRECOMPILE 命令處理一個包含內嵌式 SQL 陳述式的應用程式來源檔。
已產生一個已修改的來源檔,其中包含 SQL 的主機語言呼叫,而且會依預設在資料庫中建立資料包。
從第 8 版開始,將忽略這個命令的命令參數 SYNCPOINT。為了舊版相容性,將繼續併入 SYNCPOINT。
UPDATE HISTORY FILE 命令的更新
更新歷程檔案項目中的位置、裝置類型或註解。
命令參數 STATUS 指定新的項目狀態。
舊版文件不正確地陳述 STATUS 命令參數可以具有 『I』 值,將項目標示為非作用中。有效值如下:
- A
- 將項目標示為作用中。
- E
- 將項目標示為到期。
EXPORT 與 IMPORT 命令的更新
EXPORT 與 IMPORT 命令的完整「必要的連線」子區段如下:
必要的連線
資料庫。如果啟用了隱含連接,將建立預設資料庫的連線。
Linux(TM)、UNIX(R)或 Windows(R) 資料庫伺服器從 Linux、UNIX 或 Windows 用戶端存取公用程式時,必須是透過引擎而不是透過 DB2 Connect(TM) 閘道或迴圈的直接連線。
LOAD 命令的更新
INDEXING MODE 參數的 AUTOSELECT 值的完整資訊如下:
INDEXING MODE
- AUTOSELECT
- 載入公用程式將自動在 REBUILD 或 INCREMENTAL 模式之間做出決定。
這個決定是以正要載入的資料量及索引樹狀結構的深度為基礎。與索引樹狀結構深度相關的資訊儲存在索引物件中。
不需要 RUNSTATS 即可移入此資訊。
AUTOSELECT 是預設檢索模式。
載入公用程式的檔案類型修飾元
已更新 『generatedoverride』 修飾元說明中的 SET INTEGRITY 命令。
同時,也已更新 『usedefaults』 修飾元的說明。
更新如下:
表 30. 適用於載入的有效檔案類型修飾元:所有檔案格式
修飾元 |
說明 |
generatedoverride |
對於表格中所有產生的直欄,這個修飾元指示載入公用程式接受使用者提供的資料
(與這些類型的直欄的正常規則相反)。當從另一個資料庫系統移轉資料,或在 ROLLFORWARD DATABASE 命令上使用 RECOVER
DROPPED TABLE 選項,從已回復的資料載入表格時,這很有用。當使用這個修飾元時,
所產生的直欄若不能有空值,則不含資料或為 NULL 資料的任何橫列都將遭到拒絕 (SQL3116W)。
註:
當使用這個修飾元時,表格將置於 CHECK PENDING 狀態。
若要從 CHECK PENDING 狀態取出表格,且不驗證使用者提供的值,請在載入作業後,
發出下列命令:
SET INTEGRITY FOR < table-name > GENERATED COLUMN
IMMEDIATE UNCHECKED 若要從 CHECK PENDING 狀態取出表格,並強制驗證使用者提供的值,請在載入作業後,
發出下列命令:
SET INTEGRITY FOR < table-name > IMMEDIATE CHECKED.
這個修飾元無法搭配 generatedmissing 或 generatedignore 修飾元使用。 |
usedefaults |
如果指定了目標表格直欄的來源直欄,但是它沒有一或多個橫列實例的資料,
將載入預設值。
遺漏資料的範例如下:
若沒有這個選項,則在來源直欄沒有橫列實例的資料時,將發生下列其中一種情況:
- 若為 DEL/ASC/WSF 檔案:如果直欄可為 NULL,將載入 NULL。如果直欄不可為 NULL,
公用程式將拒絕橫列。
|
匯入公用程式的檔案類型修飾元
『usedefaults』 與 『codepage=x』 修飾元的說明已更新如下:
表 31. 適用於匯入的有效檔案類型修飾元:所有檔案格式
修飾元 |
說明 |
usedefaults |
如果指定了目標表格直欄的來源直欄,但是它沒有一或多個橫列實例的資料,
將載入預設值。
遺漏資料的範例如下:
若沒有這個選項,則在來源直欄沒有橫列實例的資料時,將發生下列其中一種情況:
- 若為 DEL/ASC/WSF 檔案:如果直欄可為 NULL,將載入 NULL。如果直欄不可為 NULL,
公用程式將拒絕橫列。
|
表 32. 適用於匯入的有效檔案類型修飾元:ASCII 檔案格式 (ASC/DEL)
修飾元 |
說明 |
codepage=x |
x 是 ASCII 字串。此值會解譯為輸出資料集中之資料的字碼頁。
在匯入作業期間,來自這個字碼頁的字元資料會轉換為應用程式字碼頁。
將引用下列規則:
- 若為純 DBCS (圖形) 混合 DBCS 及 EUC,區隔字元將限制在 x00 至 x3F 的範圍內 (包括這兩個值)。
- nullindchar 必須在字碼點 x20 與 x7F 之間 (包括這兩個字碼點) 指定併入標準 ASCII 集的符號。
這代表 ASCII 符號及字碼點。
註:
- codepage 修飾元無法搭配 lobsinfile 修飾元使用。
- 當字碼頁從應用程式字碼頁轉換為資料庫字碼頁時,如果發生資料擴充,
則資料可能遭到截斷,而且資料可能流失。
|
ATTACH 命令
ATTACH 命令的 USER 參數指定鑑別 ID。
當連接至 Windows 作業系統上的 DB2 Universal Database UDB 實例時,
必須以與 Microsoft(R) Windows NT(R) Security Account Manager (SAM) 相容的格式指定使用者名稱。限定元必須是 NetBIOS 樣式名稱,
其最大長度為 15 個字元。例如,domainname\username。
RECOVER DATABASE 命令
在 8.2 版文件的「RECOVER DATABASE 命令」的「範例」一節中,
時間戳記的格式 yyyy:mm:dd:hh:mm:ss 是不正確的。
正確格式是 yyyy-mm-dd-hh.mm.ss
UPDATE HISTORY FILE 命令
UPDATE HISTORY FILE 命令更新歷程檔項目中的位置、裝置類型、註解或狀態。
更新的命令語法
![讀取語法圖表](c.gif)
>>-UPDATE HISTORY--+-FOR--object-part-+--WITH------------------->
'-EID--eid---------'
>--+-LOCATION--new-location--DEVICE TYPE--new-device-type-+----><
+-COMMENT--new-comment---------------------------------+
'-STATUS--new-status-----------------------------------'
更新的命令參數
- FOR object-part
- 指定要更新之歷程項目的 ID。它是時間戳記,含有從 001 至 999 的選用序號。
註:
無法用來更新項目狀態。若要更新項目狀態,
請改為指定 EID。
- STATUS new-status
- 指定項目的新狀態。僅備份項目才能更新其狀態。
有效值如下:
- A
- 作用中。大部份項目都是作用中。
- I
- 非作用中。不再位於現行日誌鏈的備份映像檔會變成非作用中。
- E
- 已到期。因為有 NUM_DB_BACKUPS 個以上的作用中映像檔而不再需要的備份映像檔會標示為已到期。
- D
- 不再能夠用於回復的備份映像檔應該標示為已刪除。
db2updv8 - 將資料庫更新為第 8 版現行層次的命令
這個命令會利用下列方法,更新資料庫中的系統型錄以支援現行層次:
- 引進現行資料庫管理程式隨附的新常式
- 編目 ODBC/CLI/JDBC 綱目程序作為信任程序,以增進效能及延展性
- 修正 SYSPROC.SNAPSHOT_QUIESCERS 表格函數的回覆參數中的兩個印刷錯誤:
- OUIESCER_TBS_ID 更正為 QUIESCER_TBS_ID
- OUIESCER_STATE 更正為 QUIESCER_STATE
- 修正 LOB 直欄的直欄描述子,以便「已記載」位元與型錄表格一致
- 建立 SYSIBM.SYSREVTYPEMAPPINGS 概略表
- 更新 SYSSTAT.COLUMNS 及 SYSSTAT.TABLES 的概略表定義
- 將 SYSCOLDIST.DISTCOUNT 直欄更新為可更新的直欄
- 更新 SYSINDEXES.TBSPACEID 直欄,以便不設定直欄旗標
- 修正 17 個表格函數的參數長度。請參閱 8.2 版版本注意事項的文件更新 | SQL 管理常式 一節中的 Snapshot UDF 的直欄擴充主題,
以取得完整的函數清單
- 將 33 個 SYSPROC Snapshot UDF 變更為 THREADSAFE:
- SNAPSHOT_DBM
- SNAPSHOT_FCM
- SNAPSHOT_FCMNODE
- SNAPSHOT_SWITCHES
- SNAPSHOT_APPL_INFO
- SNAPSHOT_APPL
- SNAPSHOT_STATEMENT
- SNAPSHOT_LOCKWAIT
- SNAPSHOT_AGENT
- SNAPSHOT_SUBSECT
- SNAPSHOT_DATABASE
- SNAPSHOT_BP
- SNAPSHOT_LOCK
- SNAPSHOT_TABLE
- SNAPSHOT_DYN_SQL
- SNAPSHOT_TBS
- SNAPSHOT_TBS_CFG
- SNAPSHOT_QUIESCERS
- SNAPSHOT_CONTAINER
- SNAPSHOT_RANGES
- SNAPSHOT_TBREORG
- HEALTH_DBM_INFO
- HEALTH_DBM_HI
- HEALTH_DBM_HI_HIS
- HEALTH_DB_INFO
- HEALTH_DB_HI
- HEALTH_DB_HI_HIS
- HEALTH_TBS_INFO
- HEALTH_TBS_HI
- HEALTH_TBS_HI_HIS
- HEALTH_CONT_INFO
- HEALTH_CONT_HI
- HEALTH_CONT_HI_HIS
必要的連線
資料庫。這個命令自動建立與指定之資料庫的連線。
命令語法
![讀取語法圖表](c.gif)
>>-db2updv8-- -d--database-name--------------------------------->
>--+----------------------------+--+-----+---------------------><
'- -u--userid-- -p--password-' '- -h-'
命令參數
- -d database-name
- 指定要更新之資料庫的名稱。
- -u userid
- 指定使用者 ID。
- -p password
- 指定使用者的密碼。
- -h
- 顯示說明資訊。當指定這個選項時,將忽略所有其它選項,
而且僅顯示說明資訊。
範例
在安裝現行層次 (FixPak 或新版本) 之後,發出下列命令來更新範例資料庫中的系統型錄:
db2updv8 -d sample
用法注意事項
- 僅在執行 DB2 Universal Database 8.1.2 版或更新版本的資料庫上才能使用這個命令。如果發出這個命令多次,將不會報告任何錯誤,而且每一個型錄更新僅套用一次。
- 若要啟用新的內建函數,所有應用程式都必須與資料庫中斷連線,而且如果已啟動資料庫,則必須停止它。
製作設陷檔案的格式 (Windows)
有一個新的工具 db2xprt.exe 可讓您製作設陷檔案 (*.TRP) 的格式。
這個工具可將 DB2 Universal Database 的二進位設陷檔案製作成一般人可讀取的 ASCII 檔案。
依預設,設陷檔案位於實例目錄 (DB2INSTPROF),或如果設定了
DIAGPATH 資料庫管理程式配置參數,則位於診斷資料目錄。
授權
您必須具有 DIAGPATH 目錄的存取權限。
命令語法
![讀取語法圖表](c.gif)
>>-db2xprt--+----------+--+----+--+----+--infile--+---------+--><
+-/p--path-+ '-/m-' '-/n-' '-outfile-'
'-/v-------'
命令參數
- /p path
- 分號 (;) 區隔的路徑,指向二進位檔案及 PDB 檔案所在的位置。
- /v
- 顯示版本資訊。
- /m
- 製作記憶體傾出的格式,以及設陷檔案其餘部份的格式。
- /n
- 製作資料的格式,不考慮行號資訊。
- infile
- 指定輸入檔。
- outfile
- 指定輸出檔。
[ 頁面頂端 |前一頁 | 下一頁 | 目錄 ]