1、Flashback Database(利用閃回日志恢復(fù))
成都創(chuàng)新互聯(lián)服務(wù)項目包括田家庵網(wǎng)站建設(shè)、田家庵網(wǎng)站制作、田家庵網(wǎng)頁制作以及田家庵網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,田家庵網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到田家庵省份的部分城市,未來相信會繼續(xù)擴大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
Oracle Flashback Database特性允許通過SQL語句Flashback Database語句,讓數(shù)據(jù)庫前滾到當前的前一個時間點或者SCN,而不需要做時間點的恢復(fù)。閃回數(shù)據(jù)庫可以迅速將數(shù)據(jù)庫回到誤操作或人為錯誤的前一個時間點,如Word中的"撤消"操作,可以不利用備份就快速的實現(xiàn)基于時間點的恢復(fù)。Oracle通過創(chuàng)建新的Flashback Logs(閃回日志),記錄數(shù)據(jù)庫的閃回操作。如果希望能閃回數(shù)據(jù)庫,需要設(shè)置如下參數(shù):DB_RECOVER_FILE_DEST日志的存放位置,DB_RECOVER_FILE_DEST_SIZE恢復(fù)區(qū)的大小。在創(chuàng)建數(shù)據(jù)庫的時候,Oracle將自動創(chuàng)建恢復(fù)區(qū),但默認是關(guān)閉的,需要執(zhí)行alter database flashback on命令。
例:執(zhí)行Flashback Database命令格式。
SQLflashback database to time to_timestamp(xxx);
SQLflashback database to scn xxx
2、Flashback Table(利用UNDO保留信息恢復(fù))
Oracle Flashback Table特性允許利用Flashback Table語句,確保閃回到表的前一個時間點。與Oracle 9i中的Flashback Query相似,利用回滾段信息來恢復(fù)一個或一些表到以前的一個時間點(一個快照)。要注意的是,F(xiàn)lashback Table不等于Flashback Query,F(xiàn)lashback Query僅僅是查詢以前的一個快照點而已,并不改變當前表的狀態(tài),而Flashback Table將改變當前表及附屬對象一起回到以前的時間點。
語法:
flashback table tablename to timestamp xxx或
flashback table tablename to scn xxx
注意:如果需要閃回一個表,需要以下條件:
需要有flashback any table的系統(tǒng)權(quán)限或者是該表的flashback對象權(quán)限;
需要有該表的select,insert,delete,alter權(quán)限;
必須保證該表row movement。
例:執(zhí)行將test表閃回到2011年5月7日下午3點。
SQLflashback table test to timestamp to_timestamp(’2011-05-07 15:00:00’,’yyyy-mm-dd hh24:mi:ss’);
3、Flashback Drop(利用回收站功能恢復(fù))
注:由于目前的環(huán)境為了實現(xiàn)OGG的DDL同步,關(guān)閉了回收站功能,故這個功能不可用。
4、Flash Version Query(利用UNDO保留信息恢復(fù))
Oracle Flashback Version Query特性,利用保存的回滾信息,可以看到特定的表在時間段內(nèi)的任何修改,如電影的回放一樣,可以了解表在該期間的任何變化。Flashback version query一樣依賴于AUM,提供了一個查看行改變的功能,能找到所有已經(jīng)提交了的行的記錄,分析出過去時間都執(zhí)行了什么操作。Flashback version query采用VERSIONS BETWEEN語句來進行查詢,常用的方法:
·VERSIONS_SCN - 系統(tǒng)改變號
·VERSIONS_TIMESTAMP - 時間
例如:在test表中,時間1插入一條記錄,時間2刪除了這條記錄,對于時間3執(zhí)行select * from test當然查詢不到這條記錄,只能看到該表最后的提交記錄。這時如果利用Flash Table或者是Flash Query,只能看到過去的某一時間點的一個快照,而利用Flashback Version Query,能夠把時間1、時間2的操作給記錄下來,并詳細的查詢出對表進行的任何操作。
基于SCN的閃回查詢:
SQL select count(*) from lm_mtrp_syn_channelinfo as of scn 708000000;
COUNT(*)
----------
21
基于時間段的閃回查詢:
SQLselect versions_starttime,versions_endtime, versions_xid,versions_operation,id
from test versions
between timestamp minvalue and maxvalue
order by versions_starttime;
5,Flashback Transaction Query(利用UNDO保留信息恢復(fù))
Oracle Flashback Transaction Query特性確保檢查數(shù)據(jù)庫的任何改變在一個事務(wù)級別,可以利用此功能進行診斷問題、性能分析和審計事務(wù)。它其實是Flashback Version Query查詢的一個擴充,F(xiàn)lashback Version Query說明了可以審計一段時間內(nèi)表的所有改變,但是也僅僅是能發(fā)現(xiàn)問題,對于錯誤的事務(wù),沒有好的處理辦法。而Flashback Transaction Query提供了從FLASHBACK_TRANSACTION_QUERY視圖中獲得事務(wù)的歷史以及Undo_sql(回滾事務(wù)對應(yīng)的sql語句),也就是說審計一個事務(wù)到底做了什么,甚至可以回滾一個已經(jīng)提交的事務(wù)。
例:Flashback Transaction Query的操作實例。
(1)在test表中刪除記錄,獲得事務(wù)的標識XID,然后提交。
SQLdelete from test where id=2;
SQLselect xid from v$transaction;
XID
----------------
04001200AE010000
SQLcommit;
在測試中方便起見,在事務(wù)沒有提交的時候,獲得事務(wù)的XID為04001F0035000000。實際情況下,不可能去跟蹤每個事務(wù),想要獲得已提交事務(wù)的XID,就必須通過上面的Flashback Version Query。
(2)進行Flashback Transaction Query
SQLselect * from FLASHBACK_TRANSACTION_QUERY
where xid=’04001F0035000000’;
UNDO_SQL
insert into "FLASHTEST"."TEST"("ID") values (’2’);
注意:這個刪除語句對應(yīng)的是1個Insert語句,如果想回滾這個事務(wù),執(zhí)行這個Insert語句即可。
可以看到,F(xiàn)lashback Transaction Query主要用于審計一個事務(wù),并可以回滾一個已經(jīng)提交的事務(wù)。如果確定出錯的事務(wù)是最后一個事務(wù),我們利用Flashback Table或者Flashback Query就可以解決問題。但是,如果執(zhí)行了一個錯誤的事務(wù)之后,又執(zhí)行了一系列正確的事務(wù),那么上面的方法就無能為力,利用Flashback Transaction Query可以查看或回滾這個錯誤的事務(wù)。
另:ORACLE 11G還多了一個閃回數(shù)據(jù)歸檔的功能,即可將UNDO的信息進行歸檔,這個功能對于一些比較重要的表,
開啟和關(guān)閉閃回模式必須處于mount模式下,命令如下:
SQLalter database flashback on;
SQLalter database flashback off;
開啟閃回的時候首先要開啟歸檔,而且歸檔只能在mount模式下開啟,Alter database archivelog; 開啟歸檔之后就可以開啟閃回:alter database flashback_on,然后在兩者都開啟之后可以進行查看,查看閃回select flashback_on from v$database;查看歸檔的語句是archives log list;讓它處于on狀態(tài),
如果需要關(guān)閉閃回輸入alter database flash_off
新聞標題:oracle閃回如何關(guān)閉,oracle 回閃
文章位置:http://jinyejixie.com/article2/hsogic.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、定制開發(fā)、搜索引擎優(yōu)化、定制網(wǎng)站、網(wǎng)站策劃、網(wǎng)站營銷
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)