Db2

在 DB2 LUW V9.7 中刪除分離的分區時出現問題

  • July 26, 2018

最近在生產環境中,我們在刪除分離的分區時遇到了問題,它給出了這個錯誤

""" DB21034E 該命令已作為 SQL 語句處理,因為它不是有效的命令行處理器命令。在 SQL 處理期間它返回:SQL20285N 不允許該語句或命令,因為名為“schemaname.tablename_JAN1”的表已分離依賴項或非同步分區分離操作未完成。原因碼 = “2”。SQLSTATE=55057"""

我做了一些研究,可以從 IBM 找到這個,說我們需要重新啟動實例來解決問題。下面的連結我想你可能已經看到了我所描述的許多此類事件,請提前幫助我解決這個問題

http://www-01.ibm.com/support/docview.wss?uid=swg21515721

當您從表中分離一個分區時,分離操作會很快返回,但 DB2 隨後會啟動一個後台程序來清理所有全域索引。在此過程完成之前,您不能刪除包含已分離分區的表。

那麼,您是否驗證了在您發出之後發生的非同步清理ALTER TABLE ... DETACH實際上已經完成了?

作為一個建議,如果您將此類表的所有索引也“分區”,我會說這很好。分離分區時,db2 也很容易分離分區表中存在的行索引的分區。並且,還要避免為該表創建主鍵。首先為 PK 的列(或多個列)創建唯一索引,然後 alter table add constraint PK …. 下次,當您發出 alter table detach partition into 時,嘗試打開另一個會話以監視通過…因此,在另一個會話中發出命令: db2 list utility show detail …. 並看到分離仍在執行。(或 db2pd -db -utilities)希望它有所幫助……

引用自:https://dba.stackexchange.com/questions/56585