oracle回滾命令 oracle數(shù)據(jù)表恢復(fù)到某個(gè)時(shí)間點(diǎn)?
oracle數(shù)據(jù)表恢復(fù)到某個(gè)時(shí)間點(diǎn)?如果開啟閃回可以使用閃回表。select log_mode,flashback_on from v$database如果是下面結(jié)果則開了閃回LOG_MODE
oracle數(shù)據(jù)表恢復(fù)到某個(gè)時(shí)間點(diǎn)?
如果開啟閃回可以使用閃回表。select log_mode,flashback_on from v$database如果是下面結(jié)果則開了閃回LOG_MODE FLASHBACK_ON------------ ------------------ARCHIVELOG YES可以執(zhí)行以下命令alter table 表名 enable row movement --開啟表行移動(dòng)flashback table 表名 to timestamp to_timestamp("20130813 14:00:00","yyyymmdd hh24:mi:ss")--閃回到2013年8月13日14點(diǎn)你要是沒開啟,有邏輯備份可以使用imp命令導(dǎo)入數(shù)據(jù)。如果沒用邏輯備份,開啟歸檔模式,有物理備份,能夠停機(jī)、數(shù)據(jù)丟失的話,可以采用不完全恢復(fù)用rman登陸rman target /執(zhí)行以下命令run{shutdown immediatestartup mountset until time = "to_date("20130813 14:00:00","yyyymmdd hh24:mi:ss")"restore databaserecover databasealter database open resetlogs}切記!做以上任何操作前做好備份,否則出了問(wèn)題后悔莫及。而且建議你聯(lián)系你們數(shù)據(jù)庫(kù)管理員處理這個(gè)問(wèn)題。
oracle提交之后怎么回滾?
execute執(zhí)行后 可以回滾
commit提交后 不可以回滾
其實(shí)Oracle提交數(shù)據(jù)是分兩步操作的,第一步execute執(zhí)行,第二步commit提交。對(duì)應(yīng)的PLSQL也是要先點(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ù)