Db2

將列從 NOT LOGGED 更改為 LOGGED

  • May 25, 2016

我有一個在 DB2 版本 10.5 上執行的數據庫 DAT1。我想為表 TAB1 的所有 CLOB 和 BLOB 列啟用日誌記錄。該表最初是使用這些列創建的,NOT LOGGED但現在我需要將其更改為LOGGED.

我知道有ALTOBJ的程序

那應該能夠改變這個屬性。但是,我從文件中了解到此過程執行以下操作:

該過程備份正在更改的表的數據,然後刪除原始表並使用 DDL 語句創建一個新版本;最後一步將儲存的數據載入回新表中。

我需要修改很多表,每個表的大小通常達到 10GB 左右甚至更多。這意味著此操作可能需要大量可用磁碟空間以及創建新表和複製回數據所需的時間。

我想知道是否也可以使用ALTER TABLE不涉及創建或複制新數據的簡單命令或其他命令來實現此操作。

您不能更改LOGGEDLOB 列的屬性。但是,您可以通過添加新的 LOB 列來更改表,LOGGED從現有列更新新列,然後刪除原始列。它可能需要較少浪費的磁碟空間,但不太可能比使用ALTOBJ.

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