【DB2】delete大表不记录日志的正确操作
一、原始方法
在刪除大表的時候,經常會由于數據量太大,造成日志文件滿了,接著無法刪除數據.
以下是刪除大表不記錄日志的具體步驟:
1.臨時設置自動提交關閉
(使用命令db2 list command options查看Auto-Commit參數狀態是否為OFF,如果不是則使用db2set DB2OPTIONS=+c永久關閉)
update command options using c off
2.設置不記錄日志
ALTER TABLE tabname ACTIVATE NOT LOGGED INITIALLY?
3.刪除數據
DELETE FROM tabname where …
4.手動提交
COMMIT
5.打開自動提交
(如果關閉使用使用db2set DB2OPTIONS=+c,則開啟使用db2set DB2OPTIONS=-c)
update command options using c on
Tips:
不記錄日志與刪除數據必須在同一事務進行才有效,若執行順序為:not logged → commit → delete.. 則not logged失效;
二、精簡方法
以下以表tmp為例子,往表插入大量數據并報日志滿了
那么如何解決這個問題呢?
1.首先連接好數據庫
db2 connect to qindb user db2inst1 user db2inst1
2.設置表不記錄日志
db2 +c "ALTER TABLE len.tmp activate NOT LOGGED initially"
3.插入表數據
db2 +c "insert into len.tmp select * from len.tmp"
4.提交
db2 commit;
以下是真實操作截圖
轉載于:https://www.cnblogs.com/OliverQin/p/10219108.html
總結
以上是生活随笔為你收集整理的【DB2】delete大表不记录日志的正确操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于代码效率提升的方法心路历程(购物车)
- 下一篇: firewalld防火墙简介