在沒(méi)有做過(guò)commit或者其他會(huì)導(dǎo)致隱式提交的語(yǔ)句之前(如DDl語(yǔ)言), 可以執(zhí)行rollback.
創(chuàng)新互聯(lián)公司服務(wù)項(xiàng)目包括漾濞網(wǎng)站建設(shè)、漾濞網(wǎng)站制作、漾濞網(wǎng)頁(yè)制作以及漾濞網(wǎng)絡(luò)營(yíng)銷策劃等。多年來(lái),我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,漾濞網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到漾濞省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
提交過(guò)只能用閃回或者從備份中恢復(fù)了
execute執(zhí)行后
可以回滾
commit提交后
不可以回滾
其實(shí)Oracle提交數(shù)據(jù)是分兩步操作的,第一步execute執(zhí)行,第二步commit提交。對(duì)應(yīng)的PL\SQL也是要先點(diǎn)execute執(zhí)行,執(zhí)行后再點(diǎn)commit提交。
但是
commit提交后
可以用閃回查詢恢復(fù)原來(lái)的數(shù)據(jù)
因?yàn)閛racle會(huì)將近期的數(shù)據(jù)保存到快照中
如:
SELECT
*
FROM
TABLE_1
AS
OF
TIMESTAMP
TO_TIMESTAMP('20080606
20:00:00','YYYYMMDD
HH24:MI:SS');
這里'20080606
20:00:00'就是你想恢復(fù)數(shù)據(jù)到哪個(gè)時(shí)間狀態(tài)
TABLE_1是數(shù)據(jù)庫(kù)的表名
這樣查詢到的數(shù)據(jù)就是執(zhí)行更新操作之前的數(shù)據(jù)
Oracle缺省用的是專用服務(wù)器模式,也就是說(shuō)一個(gè)用戶連接進(jìn)程對(duì)應(yīng)一個(gè)服務(wù)器的進(jìn)程.
記得某大醫(yī)院剛啟用的時(shí)候,我們?cè)?jīng)試過(guò)MTS.因?yàn)槁?tīng)說(shuō)MTS在不增加內(nèi)存和CPU的情況下連接更多的客戶端,結(jié)果并不是我們預(yù)期的那樣.
因?yàn)槲覀儗?duì)MTS不了解,并不是它有問(wèn)題,而是它不是用來(lái)在這種情況下做這件事的.
就三條回滾了
第二條:
INSERT INTO nn values('abc','aaa');
第三條:
INSERT INTO nn values('def','ddd');
第四條:
INSERT INTO nn values('ghi','ggg');
因?yàn)閏reate table想回滾也回滾不了
當(dāng)上邊這條未提交,直接回滾的話,就相當(dāng)于數(shù)據(jù)庫(kù)沒(méi)有寫入
刪除表后,可以采用如下操作:
在 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那位老兄的寫法就不錯(cuò),能自由定制時(shí)間
execute執(zhí)行后
可以回滾
commit提交后
不可以回滾
其實(shí)oracle提交數(shù)據(jù)是分兩步操作的,第一步execute執(zhí)行,第二步commit提交。對(duì)應(yīng)的pl\sql也是要先點(diǎn)execute執(zhí)行,執(zhí)行后再點(diǎn)commit提交。
但是
commit提交后
可以用閃回查詢恢復(fù)原來(lái)的數(shù)據(jù)
因?yàn)閛racle會(huì)將近期的數(shù)據(jù)保存到快照中
如:
select
*
from
table_1
as
of
timestamp
to_timestamp('20080606
20:00:00','yyyymmdd
hh24:mi:ss');
這里'20080606
20:00:00'就是你想恢復(fù)數(shù)據(jù)到哪個(gè)時(shí)間狀態(tài)
table_1是數(shù)據(jù)庫(kù)的表名
這樣查詢到的數(shù)據(jù)就是執(zhí)行更新操作之前的數(shù)據(jù)