oracle如何用閃回 oracle 回閃

oracle開啟閃回,怎么操作啊

創(chuàng)新互聯(lián)服務項目包括瑪曲網(wǎng)站建設、瑪曲網(wǎng)站制作、瑪曲網(wǎng)頁制作以及瑪曲網(wǎng)絡營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關系等,向廣大中小型企業(yè)、政府機構等提供互聯(lián)網(wǎng)行業(yè)的解決方案,瑪曲網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務的客戶以成都為中心已經(jīng)輻射到瑪曲省份的部分城市,未來相信會繼續(xù)擴大服務區(qū)域并繼續(xù)獲得客戶的支持與信任!

首先查看是否開啟閃回:

SQL select flashback_on from V$database;

FLASHBACK_ON

------------------

NO

如果已經(jīng)開啟了閃回,無須執(zhí)行下面的操作。

cd /u01

mkdir flashback(生成閃回目錄)

SQL alter system set db_recovery_file_dest_size=30G scope=both;

SQL alter system set db_recovery_file_dest='/u01/flashback' scope=both;

SQL shutdown immediate

SQL startup mount

SQL alter database archivelog;

SQL alter database flashback on;

SQL alter database open;

再進行確認:

SQL select flashback_on from V$database;

FLASHBACK_ON

------------------

YES

求教Oracle11g中的閃回技術

1、Flashback Database(利用閃回日志恢復)

Oracle Flashback Database特性允許通過SQL語句Flashback Database語句,讓數(shù)據(jù)庫前滾到當前的前一個時間點或者SCN,而不需要做時間點的恢復。閃回數(shù)據(jù)庫可以迅速將數(shù)據(jù)庫回到誤操作或人為錯誤的前一個時間點,如Word中的"撤消"操作,可以不利用備份就快速的實現(xiàn)基于時間點的恢復。Oracle通過創(chuàng)建新的Flashback Logs(閃回日志),記錄數(shù)據(jù)庫的閃回操作。如果希望能閃回數(shù)據(jù)庫,需要設置如下參數(shù):DB_RECOVER_FILE_DEST日志的存放位置,DB_RECOVER_FILE_DEST_SIZE恢復區(qū)的大小。在創(chuàng)建數(shù)據(jù)庫的時候,Oracle將自動創(chuàng)建恢復區(qū),但默認是關閉的,需要執(zhí)行alter database flashback on命令。

例:執(zhí)行Flashback Database命令格式。

SQLflashback database to time to_timestamp(xxx);

SQLflashback database to scn xxx

2、Flashback Table(利用UNDO保留信息恢復)

Oracle Flashback Table特性允許利用Flashback Table語句,確保閃回到表的前一個時間點。與Oracle 9i中的Flashback Query相似,利用回滾段信息來恢復一個或一些表到以前的一個時間點(一個快照)。要注意的是,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)權限或者是該表的flashback對象權限;

需要有該表的select,insert,delete,alter權限;

必須保證該表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(利用回收站功能恢復)

注:由于目前的環(huán)境為了實現(xiàn)OGG的DDL同步,關閉了回收站功能,故這個功能不可用。

4、Flash Version Query(利用UNDO保留信息恢復)

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保留信息恢復)

Oracle Flashback Transaction Query特性確保檢查數(shù)據(jù)庫的任何改變在一個事務級別,可以利用此功能進行診斷問題、性能分析和審計事務。它其實是Flashback Version Query查詢的一個擴充,F(xiàn)lashback Version Query說明了可以審計一段時間內(nèi)表的所有改變,但是也僅僅是能發(fā)現(xiàn)問題,對于錯誤的事務,沒有好的處理辦法。而Flashback Transaction Query提供了從FLASHBACK_TRANSACTION_QUERY視圖中獲得事務的歷史以及Undo_sql(回滾事務對應的sql語句),也就是說審計一個事務到底做了什么,甚至可以回滾一個已經(jīng)提交的事務。

例:Flashback Transaction Query的操作實例。

(1)在test表中刪除記錄,獲得事務的標識XID,然后提交。

SQLdelete from test where id=2;

SQLselect xid from v$transaction;

XID

----------------

04001200AE010000

SQLcommit;

在測試中方便起見,在事務沒有提交的時候,獲得事務的XID為04001F0035000000。實際情況下,不可能去跟蹤每個事務,想要獲得已提交事務的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’);

注意:這個刪除語句對應的是1個Insert語句,如果想回滾這個事務,執(zhí)行這個Insert語句即可。

可以看到,F(xiàn)lashback Transaction Query主要用于審計一個事務,并可以回滾一個已經(jīng)提交的事務。如果確定出錯的事務是最后一個事務,我們利用Flashback Table或者Flashback Query就可以解決問題。但是,如果執(zhí)行了一個錯誤的事務之后,又執(zhí)行了一系列正確的事務,那么上面的方法就無能為力,利用Flashback Transaction Query可以查看或回滾這個錯誤的事務。

另:ORACLE 11G還多了一個閃回數(shù)據(jù)歸檔的功能,即可將UNDO的信息進行歸檔,這個功能對于一些比較重要的表,

如何執(zhí)行Oracle數(shù)據(jù)庫閃回查詢

可按以下步驟配置閃回數(shù)據(jù)庫:(確保數(shù)據(jù)庫處于ARCHIVELOG 模式。)

1. 配置快速恢復區(qū)。

2. 使用初始化參數(shù)DB_FLASHBACK_RETENTION_TARGET 設置保留目標??芍付?/p>

一個上限(以分鐘為單位),指示數(shù)據(jù)庫能夠閃回到多長時間以前。本示例使用

了 2880 分鐘,相當于兩天。此參數(shù)只是一個目標,并不提供任何保證。閃回時間

間隔取決于快速恢復區(qū)中保留的閃回數(shù)據(jù)量的大小。

3. 使用以下命令啟用閃回數(shù)據(jù)庫:

ALTER DATABASE FLASHBACK ON;

必須先配置數(shù)據(jù)庫以進行歸檔,且必須在 MOUNT EXCLUSIVE 模式下啟動數(shù)據(jù)庫

后,才能發(fā)出此命令來啟用閃回數(shù)據(jù)庫。

可以使用以下查詢來確定是否已啟用閃回數(shù)據(jù)庫:

SELECT flashback_on FROM v$database;

可以使用ALTER DATABASE FLASHBACK OFF 命令禁用閃回數(shù)據(jù)庫。這樣,會自動刪

除所有現(xiàn)有的閃回數(shù)據(jù)庫日志。

注:僅當在獨占模式下裝載(而不是打開)數(shù)據(jù)庫時才能啟用閃回數(shù)據(jù)庫。

1.確認當前模式

SYS AS SYSDBA on 29-MAR-05 select flashback_on from v$database;

FLA

---

NO

2.檢查/修改恢復區(qū)設置

SYS AS SYSDBA on 29-MAR-05 show parameter db_recovery_file_dest

NAME TYPEVALUE

------------------------------------ ----------- ------------------------------

db_recovery_file_deststring /u01/app/oracle/flash_recovery_areadb_recovery_file_dest_size big integer 10G

SYS AS SYSDBA on 29-MAR-05 alter system set db_recovery_file_dest='/u01/app/oracle/flash_recovery_area';

SYS AS SYSDBA on 29-MAR-05 alter system set db_recovery_file_dest_size=15G;

3.檢查/修改閃回時間設置

SYS AS SYSDBA on 29-MAR-05 show parameter db_flashback_retention_target

NAME TYPEVALUE

------------------------------------ ----------- ------------------------------

db_flashback_retention_targetinteger 60

SYS AS SYSDBA on 29-MAR-05 alter system set db_flashback_retention_target=1440;--分鐘

System altered.

如何設置flash recovery area

(1).db_recovery_file_dest:指定閃回恢復區(qū)的位置

(2).db_recovery_file_dest_size:指定閃回恢復區(qū)的可用空間大小

(3).db_flashback_retention_target:指定數(shù)據(jù)庫可以回退的時間,單位為分鐘,默認1440分鐘,也就是一天。當然,實際上可回退的時間還決定于閃回恢復區(qū)的大小,因為里面保存了回退所需要的 flash log。所以這個參數(shù)要和db_recovery_file_dest_size配合修改。

alter system set db_flashback_retention_target=1440;

alter system set db_recovery_file_dest='/u01/app/oracle/flash_recovery_area';

alter system set db_recovery_size=15G;

4.重新啟動數(shù)據(jù)庫到Mount狀態(tài)

啟動flashback database選項。

SYS AS SYSDBA on 29-MAR-05 shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.

SYS AS SYSDBA on 29-MAR-05 startup mount exclusive;

ORACLE instance started.

Total System Global Area 314572800 bytes

Fixed Size 1301704 bytes

Variable Size 261890872 bytes

Database Buffers 50331648 bytes

Redo Buffers1048576 bytes

Database mounted.

SYS AS SYSDBA on 29-MAR-05 alter database flashback on;

Database altered.

SYS AS SYSDBA on 29-MAR-05 alter database open;

Database altered.

oracle 怎樣利用閃回功能恢復數(shù)據(jù)

1,只需要執(zhí)行以下個腳本即可。

2,查看utl_file_dir設置

3, 可以通過命令行修改此參數(shù),也可以通過修改pfile文件設置此參數(shù)。

4,該參數(shù)為靜態(tài)參數(shù),需重啟數(shù)據(jù)庫后生效,創(chuàng)建LOGMNR數(shù)據(jù)字典。

5,添加需要分析的歸檔日志。

6,開始日志挖掘,分析日志。

7,查看日志信息,就可以了。

標題名稱:oracle如何用閃回 oracle 回閃
分享URL:http://muchs.cn/article46/hhegeg.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供域名注冊定制網(wǎng)站、網(wǎng)站改版微信公眾號、企業(yè)建站網(wǎng)站設計

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁設計