日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網營銷解決方案
關于Oracle數(shù)據(jù)庫閃回個性的詳細介紹

Oracle數(shù)據(jù)庫閃回個性為數(shù)據(jù)的迅速批復制某一對象的特定數(shù)據(jù)提供了方便。Oracle閃回的幾種個性,包括flashback database,flashback drop ,flashback query ,flashback table 等。本文主要介紹另外的兩種:Flashback Version與Flashback Transaction。接下來就讓我們來一起了解一下這部分內容。

公司主營業(yè)務:成都網站設計、網站制作、移動網站開發(fā)等業(yè)務。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網宣傳,提高企業(yè)的競爭能力。成都創(chuàng)新互聯(lián)公司是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。成都創(chuàng)新互聯(lián)公司推出市中免費做網站回饋大家。

一、Flashback Version Query(閃回版本查詢)

閃回版本查詢指的是Oracle能夠針對特定的對象來查詢某一特定段內該對象的改變的所有情形,能夠對此追尋該對象的改變情形。也能夠根據(jù)特定的必需來將該對象修正到特定的時刻。閃回版本查詢同閃回查詢,閃回表一樣,同樣是利用了UNDO段的數(shù)據(jù),即數(shù)據(jù)改變的多次鏡像,當UNDO段的數(shù)據(jù)由于空間壓力而被打掃,則發(fā)生無法閃回的情形。

1.閃回版本查詢語法,利用VERSIONS BETWEEN 關鍵字

 
 
 
  1. SELECT 
  2. FROM 
  3. VERSIONS BETWEEN SCN  AND  --基于SCN的版本查詢
  4. [WHERE ]
  5. [GROUP BY ]
  6. [HAVING 
  7. [ORDER BY ]
  8. SELECT 
  9. FROM 
  10. VERSIONS BETWEEN timestamp to_timestamp('start_timestamp') and to_timestamp('end_timestamp') --基于TIMESTAMP的版本查詢
  11. [WHERE ]
  12. [GROUP BY ]
  13. [HAVING 
  14. [ORDER BY ]

2.創(chuàng)立演示環(huán)境

--對表tb1作如下壟斷,插入empno為的登記后,更新其職務,然后再剔除該登記,最后再次插入該登記

 
 
 
  1. flasher@ORCL>create table tb1 tablespace users as select empno,ename,job,deptno from scott.emp; --創(chuàng)立表tb1
  2. flasher@ORCL> insert into tb1 values(1000,'Jack','Clerk',20); --插入登記
  3. flasher@ORCL> commit; --提交事務
  4. flasher@ORCL> update tb1 set job='Manager' where empno=1000; --將職務更新為Manager
  5. flasher@ORCL> commit; --提交事務
  6. flasher@ORCL> delete from tb1 where empno=1000; --剔除該登記
  7. flasher@ORCL> commit; --提交事務
  8. flasher@ORCL> insert into tb1 values(1000,海藍之謎'Jack','President',20); --重新插入該登記
  9. flasher@ORCL> commit; --提交事務

3.利用Version Query(閃回版本查詢)

--穿越利用versions關鍵字來獲得版本消息

 
 
 
  1. flasher@ORCL> select empno,ename,job,versions_xid xid,versions_startscn v_stcn,
  2. 2 versions_endscn v_edcn,versions_operation v_ops
  3. 3 from tb1 versions between scn minvalue and maxvalue where empno=1000;
  4. EMPNO ENAME JOB XID V_STCN V_EDCN V_OPS
  5. ----- -------- --------- ---------------- ---------- ---------- -----
  6. 1000 Jack President 0A000C007E010000 1124320 I
  7. 1000 Jack Manager 09000C00EE010000 1124301 D
  8. 1000 Jack Manager 0A0009007E010000 1124282 1124301 U
  9. 1000 Jack Clerk 06000E00A9010000 1124245 1124282 I

上面的示例穿越為表tb1中插入一條empno=1000登記,并更新其職務,接下來對該登記舉行剔除,最后再次增加empno=1000,且職務不同的登記,能夠看出對empno=1000所作的不同的修正被全副登記下來。

當心,一個事務中,萬一多次對該登記舉行了修正,則查詢中僅僅揭示最后順次提交的事態(tài),我們能夠穿越利用versions between關鍵字來查詢對該表中的某條特定登記修正的不同版本

察看不同的版本利用了相仿于rowid的偽列。

versions_xid --登記指定版本的事務的單一標識符。

versions_startscn --登記的起始SCN號。

versions_endscn --登記的終止SCN號。

versions_operation --登記的壟斷種類(DML壟斷,I表示插入,U表示更新,D表示剔除)。

versions_starttime --登記被修正的起始工夫。

versions_endtime --登記被修正的終止工夫。

--也能夠修正查詢的條件來獲得更多不同的版本,如下查詢則為查詢該登記一個小時以內的不同版本

 
 
 
  1. flasher@ORCL> select empno,ename,job,versions_xid xid,versions_startscn v_stcn,
  2. 2 versions_endscn v_edcn,versions_operation v_ops
  3. 3 from tb1 versions between timestamp
  4. 4 to_timestamp(systimestamp-1/24) and systimestamp where empno=1000;

二、Flashback Transaction Query(閃回事務查詢)

閃回事務查詢是對閃回版本查詢的伸展。從某種程度上來說,閃回版本查詢等閑用于更細粒度的查詢,如針對特定的登記。而閃回事務則是針對某一事務舉行閃回,是基于事務級別的。閃回事務查詢穿越查詢視圖flashback_transaction_query來獲得某個或多個特定事務消息,同時能夠依據(jù)該視圖中供給的undo_sql 列中的語句來反轉事務,從而保證數(shù)據(jù)的全面性。

查詢該視圖必需具有select any transaction權限,默認情形下sys用戶和DBA角色具有該權限。

下面演示基于事務的閃回示例:

 
 
 
  1. flasher@ORCL> create table tb2 tablespace users as select empno,ename,sal,deptno from scott.emp; --創(chuàng)立表tb2
  2. flasher@ORCL> insert into tb2 select 9999,'Robinson',3000,50 from dual; --插入新記登記
  3. flasher@ORCL> commit --提交事務一
  4. flasher@ORCL> select * from tb2 where empno=9999;
  5. EMPNO ENAME SAL DEPTNO
  6. ----- -------- --------- ------
  7. 9999 Robinson 3000.00 50
  8. flasher@ORCL> update tb2 set salsal=sal+500 where empno=9999; --更新登記
  9. flasher@ORCL> commit; --提交事務二
  10. flasher@ORCL> update tb2 set deptno=20 where empno=9999; --再次更新登記
  11. flasher@ORCL> commit; --提交事務三
  12. flasher@ORCL> select empno,ename,sal,deptno,versions_xid,versions_operation
  13. 2 from tb2 versions between scn minvalue and maxvalue --利用Version Query查詢從中看到了三個事務
  14. 3 where empno=9999;
  15. EMPNO ENAME SAL DEPTNO VERSIONS_XID V
  16. ---------- ---------- ---------- ---------- ---------------- -
  17. 9999 Robinson 3500 20 08000400C9010000 U
  18. 9999 Robinson 3500 50 09001600BE010000 U
  19. 9999 Robinson 3000 50 04002C00CA010000 I -- I為最早的事務
  20. flasher@ORCL> select operation,undo_sql from flashback_transaction_query
  21. 2 where xid=hextoraw('09001600BE010000'); --依據(jù)事務號獲得一個反轉該事務的DML語句
  22. OPERATION UNDO_SQL
  23. ---------- --------------------------------------------------------------------------------
  24. UPDATE update "FLASHER"."TB2" set "SAL" = '3000' where ROWID = 'AAANUPAAGAAAAAkAAN';
  25. flasher@ORCL> select operation,undo_sql from flashback_transaction_query
  26. 2 where xid=hextoraw('08000400C9010000'); --依據(jù)事務號獲得一個反轉該事務的DML語句
  27. OPERATION UNDO_SQL
  28. ---------- --------------------------------------------------------------------------------
  29. UPDATE update "FLASHER"."TB2" set "DEPTNO" = '50' where ROWID = 'AAANUPAAGAAAAAkAAN';

從上面的兩個查詢中能夠獲得反轉事務的DML語句,直接厲行相應的反轉語句,即可將事務改變到特定的事態(tài),有點相仿于回滾,但不是厲行了回滾壟斷。

三、歸納

1.Flashback Version 多用于察看某條特定登記所有已提交的版本,包括每個版本的創(chuàng)立工夫以及告終工夫。

2.Flashback Transaction Query 多用于察看某個事務內的特定對象,能夠穿越視圖flashback_transaction_query構造后退事務的DML語句。

3.閃回中不能對DDL語句舉行閃回,即閃回僅僅扶持DML語句。

關于Oracle數(shù)據(jù)庫的閃回個性的知識就介紹到這里了,希望本次的介紹能夠對您有所收獲!


本文題目:關于Oracle數(shù)據(jù)庫閃回個性的詳細介紹
網頁地址:http://www.5511xx.com/article/djiceoo.html