Oracle資料表被drop後的恢復

2021-09-06 19:06:42 字數 1020 閱讀 2925

對於被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_recyclebint;

spool off

那麼會把改動表名的語句存放在bak.txt

中,我們能夠略微調整一下直接執行這個指令碼或者是拷貝的

sqlplus

中執行也能夠

由於考慮到資料的合併,對於 count(*

)大於0 

的資料須要進行資料的合併,否則能夠不用管它

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

spool bak2.txt

select

' flashback table  '

||t.original_name

|| ' to before drop'

from

user_recyclebint;

spool off

執行這個bak2.txt

中儲存的指令碼,能夠進行資料的還原

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

須要注意的有的資料是直接insert to 

就能夠,可是有的本來是計時器的功能,僅僅須要對數量進行累加就能夠,還有的資料時由於沒有重建了乙份一樣的資料,對於這種資料就不須要管他

4 重建索引 

oracle恢復被drop掉的表

以前只知道windows有個 站,今天聽說oracle也有個 站!在oracle中可能不小心會drop掉乙個表,如果沒有定期做備份的話,將會帶來很大的麻煩。如果有的情況下,每天的資料都很重要,而定期備份的週期又稍長,情況恐怕也不容樂觀!不過還好oracle有個 站,概念就跟windows裡的 站一模...

在Oracle中恢復被DROP掉的表

在oracle中可能不小心會drop掉乙個表,如果沒有定期做備份的話,將會帶來很大的麻煩。如果有的情況下,每天的資料都很重要,而定期備份的週期又稍長,情況恐怕也不容樂觀 以前只知道windows有個 站,今天聽說oracle也有個 站 不過還好oracle有個 站,概念就跟windows裡的 站一模...

在Oracle中恢復被DROP掉的表

在oracle中可能不小心會drop掉乙個表,如果沒有定期做備份的話,將會帶來很大的麻煩。如果有的情況下,每天的資料都很重要,而定期備份的週期又稍長,情況恐怕也不容樂觀 以前只知道windows有個 站,今天聽說oracle也有個 站 不過還好oracle有個 站,概念就跟windows裡的 站一模...