刪除表后,可以采用如下操作:
福田網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),福田網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為福田數(shù)千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站制作要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的福田做網(wǎng)站的公司定做!
在 user_recyclebin中找到最近操作過(guò)的表名稱,然后用閃回(只能用于10G及以上版本)。
FLASH BACK TABLE TABLE_NAME TO BEFORE DROP;
如果是刪了或修改里面的數(shù)據(jù),可以先建立一個(gè)快表將刪除修改之前狀態(tài)的數(shù)據(jù)找回到這個(gè)表中:
CREATE TABLE QUICK_TABLE AS
SELECT * FROM TABLE_NAME AS OF TIMESTAMP SYSDATE-1/24 (一小時(shí)前的),減去的時(shí)間可以自己定 如:select * from TABLE_NAME AS OF TIMESTAMP (SYSTIMESTAMP - INTERVAL '1' MINUTE)
oracle數(shù)據(jù)庫(kù)恢復(fù),主要包括(1)系統(tǒng)崩潰只剩下數(shù)據(jù)文件的情況下的恢復(fù),甚至沒(méi)有system表空間而只有數(shù)據(jù)表空間的情況下的恢復(fù).只要提供數(shù)據(jù)文件就可恢復(fù).(2)undosystem表空間損壞數(shù)據(jù)恢復(fù).(3)非歸檔或者歸檔模式下誤delete數(shù)據(jù)的恢復(fù)、誤刪除表空間的恢復(fù)、droptruncate表的恢復(fù).(4)數(shù)據(jù)庫(kù)中有大量CLOBBLOB對(duì)象數(shù)據(jù)恢復(fù)等情況以及各種ora-錯(cuò)誤的修復(fù).(5)DMP文件損壞導(dǎo)致文件不能導(dǎo)入數(shù)據(jù)庫(kù)的數(shù)據(jù)恢復(fù)(6)oracle數(shù)據(jù)庫(kù)中數(shù)據(jù)文件出現(xiàn)壞塊情況下的恢復(fù).(7)oracle數(shù)據(jù)庫(kù)無(wú)數(shù)據(jù)文件但有日志的情況下的恢復(fù).(8)UNIX、WINDOWS下ORACLE數(shù)據(jù)文件被誤刪除情況下的數(shù)據(jù)庫(kù)恢復(fù).(9)Oracle10G、Oracle11G的ASM損壞的數(shù)據(jù)庫(kù)恢復(fù).(10)Oracle10G、Oracle11GBIFGILETABLESPACE大文件表空間損壞數(shù)據(jù)恢復(fù)(11)Oracle9i、Oracle10G、Oracle11G壓縮表壓縮表空間損壞數(shù)據(jù)恢復(fù)(12)Oracle10GOracle11GExpdp導(dǎo)出Impdp導(dǎo)入DMP文件錯(cuò)誤數(shù)據(jù)恢復(fù)恢復(fù)成功率高達(dá)90%以上,在數(shù)據(jù)恢復(fù)領(lǐng)域處于國(guó)內(nèi)領(lǐng)先的地位。具體案例見(jiàn)廣州拓飛官方網(wǎng)站
1、首先新建一張測(cè)試表TEST,里面輸入記錄。由于刪除/更新/插入恢復(fù)步驟相同,這里僅演示刪除數(shù)據(jù)的情況。
2、刪除其中1條記錄,查看表中記錄情況,由下圖可見(jiàn),記錄2被刪除了。
3、恢復(fù)之前先確定要恢復(fù)到的時(shí)間點(diǎn),下圖可以看出2018-03-07 15:33:00數(shù)據(jù)是正確的。
SELECT *
FROM TEST AS OF TIMESTAMP TO_TIMESTAMP('2018-03-07 15:33:00', 'YYYY-MM-DD HH24:MI:SS');
4、下面進(jìn)行表數(shù)據(jù)恢復(fù)。
FLASHBACK TABLE TEST TO TIMESTAMP TO_TIMESTAMP('2018-03-07 15:33:00', 'YYYY-MM-DD HH24:MI:SS');
可以看到報(bào)錯(cuò)了,原因是沒(méi)有開(kāi)啟行移動(dòng)。
5、開(kāi)啟該表的行移動(dòng)。
ALTER TABLE TEST ENABLE ROW MOVEMENT;
6、再次執(zhí)行數(shù)據(jù)恢復(fù)。
FLASHBACK TABLE TEST TO TIMESTAMP TO_TIMESTAMP('2018-03-07 15:33:00', 'YYYY-MM-DD HH24:MI:SS');
然后查看數(shù)據(jù)情況,可以看到已經(jīng)恢復(fù)了。
刪除表后,可以采用如下操作:
在 user_recyclebin中找到最近操作過(guò)的表名稱,然后用閃回(只能用于10G及以上版本)。
FLASH BACK TABLE TABLE_NAME TO BEFORE DROP;
如果是刪了或修改里面的數(shù)據(jù),可以先建立一個(gè)快表將刪除修改之前狀態(tài)的數(shù)據(jù)找回到這個(gè)表中:
CREATE TABLE QUICK_TABLE AS
SELECT * FROM TABLE_NAME AS OF TIMESTAMP SYSTEM-1/24 (一小時(shí)前的),減去的時(shí)間可以自己定。如樓上F_253那位老兄的寫(xiě)法就不錯(cuò),能自由定制時(shí)間
1、如果你沒(méi)有刪除數(shù)據(jù)庫(kù)文件:
我的是放在[D:\oracle\product\10.1.0\oradata]這個(gè)下面,你的肯定也是在[oradata]這個(gè)文件夾下面,看看有沒(méi)有被刪除,如果沒(méi)有被刪除的話,看看這么文件夾里面的文件夾叫什么名字,并把里面的那個(gè)文件夾備份一份。
2、重新安裝數(shù)據(jù)庫(kù),再重新建一個(gè)[oradata]下面文件夾名字相同的數(shù)據(jù)庫(kù)實(shí)例。
3、安裝完畢后,停止oracle相關(guān)的所有服務(wù),把你備份的那個(gè)文件夾覆蓋到新的[oradata]下面,重新啟動(dòng)數(shù)據(jù)庫(kù)服務(wù)即可完成恢復(fù)。
補(bǔ)充:如果數(shù)據(jù)庫(kù)文件被你刪除了,用EasyRecovery
Professional
恢復(fù)一下再按照上面的步驟恢復(fù)一下即可。
---
以上,希望對(duì)你有所幫助。
分為兩種方法:scn和時(shí)間戳兩種方法恢復(fù)。
一、通過(guò)scn恢復(fù)刪除且已提交的數(shù)據(jù)
1、獲得當(dāng)前數(shù)據(jù)庫(kù)的scn號(hào)
select current_scn from v$database; (切換到sys用戶或system用戶查詢)
查詢到的scn號(hào)為:1499223
2、查詢當(dāng)前scn號(hào)之前的scn
select * from 表名 as of scn 1499220; (確定刪除的數(shù)據(jù)是否存在,如果存在,則恢復(fù)數(shù)據(jù);如果不是,則繼續(xù)縮小scn號(hào))
3、恢復(fù)刪除且已提交的數(shù)據(jù)
flashback table 表名 to scn 1499220;
二、通過(guò)時(shí)間恢復(fù)刪除且已提交的數(shù)據(jù)
1、查詢當(dāng)前系統(tǒng)時(shí)間
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
2、查詢刪除數(shù)據(jù)的時(shí)間點(diǎn)的數(shù)據(jù)
select * from 表名 as of timestamp to_timestamp('2013-05-29 15:29:00','yyyy-mm-dd hh24:mi:ss'); (如果不是,則繼續(xù)縮小范圍)
3、恢復(fù)刪除且已提交的數(shù)據(jù)
flashback table 表名 to timestamp to_timestamp('2013-05-29 15:29:00','yyyy-mm-dd hh24:mi:ss');
注意:如果在執(zhí)行上面的語(yǔ)句,出現(xiàn)錯(cuò)誤??梢試L試執(zhí)行 alter table 表名 enable row movement; //允許更改時(shí)間戳