朋友:
10年積累的做網(wǎng)站、成都網(wǎng)站制作經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問(wèn)題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站設(shè)計(jì)后付款的網(wǎng)站建設(shè)流程,更有岐山免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
oracle中有兩樣?xùn)|西是用來(lái)記錄歷史的
一、重做日志 REDO(作用就是當(dāng)你8點(diǎn)做了很多事情,到10點(diǎn)由于數(shù)據(jù)庫(kù)8點(diǎn)到10點(diǎn)操作的某個(gè)文件壞了,那么8點(diǎn)到10點(diǎn)的的東西全都不見(jiàn)了,但是REDO還在。你就可以用REDO來(lái)做重做你8點(diǎn)到10點(diǎn)所做的事,REDO就是記錄了這樣的事!)
二、回滾段 UNDO (作用就是當(dāng)你后悔做了某些事之后就可以回到以前,但是在人間可是沒(méi)有后悔要賣的哦。如你無(wú)意刪除一個(gè)表,你就可以用rollback命令來(lái)回滾,它利用的就是oracle 的撤消表空間記錄的內(nèi)容。當(dāng)然這個(gè)表空間滿了的時(shí)候也就不能回滾到它沒(méi)記錄的內(nèi)容了。)
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)在這種情況下做這件事的.
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ù)
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ù)
在沒(méi)有做過(guò)commit或者其他會(huì)導(dǎo)致隱式提交的語(yǔ)句之前(如DDl語(yǔ)言), 可以執(zhí)行rollback.
提交過(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ù)