Oracle資料表被drop後的恢複

來源:互聯網
上載者:User

標籤:style   color   使用   for   sp   資料   on   ef   bs   

對於被drop的表和索引,都會存放在資源回收筒中(所以對於生產的資料庫必須設定好資源回收筒功能)

 

因為本次產生環境在drop掉已有的表後,重新建立了許多的表,所有直接還原的話會提示原有對象存在,表名重複。其中解決方案是:先重新命名已經存在的表名,讓後還原刪除的表,最後進行資料合併

 

1 重新命名已經存在的表

 

spool bak.txt

select ‘alter table ‘||t.original_name||‘ rename to ‘||t.original_name||‘_bak;‘,‘ select count(*) from ‘||t.original_name||‘_bak;‘ from user_recyclebin t;

spool off

 

那麼會把修改表名的語句存放在bak.txt中,我們可以稍微調整一下直接運行這個指令碼或者是拷貝的sqlplus中執行也可以

 

因為考慮到資料的合并,對於 count(*)大於0 的資料需要進行資料的合并,否則可以不用管它

 

2 使用還原資料庫的命令進行資料還原

spool bak2.txt

select ‘ flashback table  ‘||t.original_name|| ‘ to before drop‘  from user_recyclebin t;

spool off

 

執行這個bak2.txt中儲存的指令碼,可以進行資料的還原

 

 

3 進行資料庫中表資料的合并()

 

需要注意的有的資料是直接insert to 就可以,但是有的本來是計時器的功能,只需要對數量進行累加就可以,還有的資料時因為沒有重建了一份一樣的資料,對於這樣的資料就不需要管他

 

4 重建索引 

Oracle資料表被drop後的恢複

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.