2015-07-02 71 views
0

我有一個.csv文件,逗號分隔(位於C:/)。我正在使用DB2 LOAD實用程序將DB2文件中存在的數據加載到DB2表中。使用Load實用程序在DB2中加載文件問題

LOAD CLIENT FROM C:\Users\somepath\FileName.csv of del 
    MODIFIED BY NOCHARDEL COLDEL, insert into SchemaName.TABLE_NAME; 

CSV文件有25行。實用程序完成後,我收到了NOCHARDEL的錯誤消息。我的表格有正確加載的所有25行。現在,當我嘗試對該模式中存在的任何表執行插入/更新/刪除語句時,出現以下錯誤。

Lookup Error - DB2 Database Error: ERROR [55039] [IBM][DB2/AIX64] SQL0290N Table space access is not allowed.

可否請幫助我,無論我是否犯任何錯誤或缺少導致表鎖定的參數。

早些時候在加載發生類似情況的文件,其中DBA證實有問題的是,表空間處於「正在進行負荷」狀態

+0

您能給我們提供NOCHARDEL出現的完整信息(SQL代碼)嗎?此外,使用數據(格式)提取可能很有價值。 – AngocA

+1

表空間訪問不允許與LOAD機制相關(可能是備用掛起 - db2列表表空間) – AngocA

回答

2

由DB2 LOAD工具生成的更改不會記錄(的一個副作用其高性能)。如果數據庫在加載後立即崩潰,將無法恢復通過重放日誌記錄加載的表,因爲沒有這樣的記錄。由於這個原因,包含已加載表的表空間將自動置於BACKUP PENDING模式,迫使您對該表空間或整個數據庫進行備份以確保其完全可恢復。

有,你可以指定LOAD命令,可以幫助你避免這種情況在未來的選擇:

  • NONRECOVERABLE - 這個選項不表空間放入BACKUP PENDING模式,但是,顧名思義,如果發生崩潰,您加載的表將變爲不可恢復的,您在此情況下唯一的選擇是刪除並重新創建表。

  • COPY YES - 此選項在加載之前創建表的副本,可用於在發生崩潰時將表恢復到其預加載狀態。

如果你只裝25分的記錄,我建議你使用IMPORT工具,而不是 - 它沒有這些限制,因爲它是完全記錄(在性能較低的價格,這對於25個的記錄奪得」問題)。

0

感謝@mustaccio。我有6000萬行插入。我使用25作爲樣本來檢查結果。 爲了增加另一點,我們後來才知道這是一個已知的DB2錯誤,它使負載保持進行狀態(DB2無法確認負載已完成並且會話保持打開狀態),並將表空間置於備份狀態待處理狀態。 恢復是釋放表空間一旦處於掛起狀態的唯一選項。 根據DB2團隊(我們尚未部署和測試)在修訂包10中修復了此問題。意思是,雖然NONRECOVERABLE關鍵字對我們來說工作正常

相關問題