我現在要把歷史資料轉到磁帶或光盤上﹐是不是首先采用exp 把所有資料 導出來 dmp 格式 放到光盤上, 然后再去數據庫
里面用delete 語法刪除一部份資料。   請問有沒有什么好一點的辦法 ,我只是刪除一部份資料 比如只刪除  2009 年以前的資料

解决方案 »

  1.   

    你写个存储过程。。直接删除就OK了啊。。
    但是你要循环所有的表
    在Oracle里面有可以直接获取所有的表的。。
    保存在UserTable里面。
      

  2.   

    先要對外鍵和Trigger 屏蔽吧, 不能按userTable 里面刪除,因為有此表里面是沒有日期和
    只能一個一個的刪除吧, 
      

  3.   

    我寫了下處理步驟  請各位高手指點一下  謝謝第一步  整理資料
    1.1 按用戶找出需要整理的Table ﹐目前只處理 大于 30M的Table第二步:  導出資料
      2.1 按 owner 通過exp 把資料導入成dmp 格式    第三步  處理數據資料
      3.1 修改owner 連接密碼(不讓其它用戶連接 修改數據)    
      3.2 屏蔽owner 所有Trigger 和Foreign 
      3.3 按整理出來的Table 刪除以前資料(具體刪除多久以前的資料還待確認) 
      3.4 使用 alter table table_name move 整理表碎片空間
      3.5 重建 index
      3.6 恢復 Trigger 和Foreign 
      3.7 重新改回密碼第四步  處理歷史資料
      4.1 按 owner 把dmp 文件刻在光盤上,同時備份到硬盤上.