成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

關于Oracle數據庫閃回個性的詳細介紹

數據庫 Oracle
本文我們主要介紹了Oracle數據庫的閃回個性的知識,包括Flashback Version Query(閃回版本查詢)和Flashback Transaction Query(閃回事務查詢),希望能夠對您有所幫助。

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

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

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

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

 

  1. SELECT <columns> 
  2.  
  3. FROM <schema_name.table_name> 
  4.  
  5. VERSIONS BETWEEN SCN <minimum_scn> AND <maximum_scn> --基于SCN的版本查詢  
  6.  
  7. [WHERE <column_filter>]  
  8.  
  9. [GROUP BY <non-aggregated_columns>]  
  10.  
  11. [HAVING <group filter> 
  12.  
  13. [ORDER BY <position_numbers_or_column_names>]  
  14.  
  15. SELECT <columns> 
  16.  
  17. FROM <schema_name.table_name> 
  18.  
  19. VERSIONS BETWEEN timestamp to_timestamp('start_timestamp') and to_timestamp('end_timestamp') --基于TIMESTAMP的版本查詢  
  20.  
  21. [WHERE <column_filter>]  
  22.  
  23. [GROUP BY <non-aggregated_columns>]  
  24.  
  25. [HAVING <group filter> 
  26.  
  27. [ORDER BY <position_numbers_or_column_names>

 

2.創立演示環境

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

 

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

 

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

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

 

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

 

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

當心,一個事務中,萬一多次對該登記舉行了修正,則查詢中僅僅揭示最后順次提交的事態,我們能夠穿越利用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.  
  3. 2 versions_endscn v_edcn,versions_operation v_ops  
  4.  
  5. 3 from tb1 versions between timestamp  
  6.  
  7. 4 to_timestamp(systimestamp-1/24) and systimestamp where empno=1000

 

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

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

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

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

 

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

 

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

三、歸納

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

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

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

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

【編輯推薦】

  1. 簡單介紹一下Oracle數據庫的三個進程
  2. MySQL數據庫如何恰到好處地使用索引?
  3. PHP的MySQL庫之Pdo-Mysql與Mysqli性能對比
  4. MySQL數據庫打開文件太多導致mysqldump出錯的解決
  5. MySQL數據庫.frm文件、.MYD文件和.MYI文件的修復方法
責任編輯:趙鵬 來源: 新浪博客
相關推薦

2011-07-26 16:53:29

MongoDB數據庫自動分片技術

2011-09-01 09:30:27

Oracle數據庫控制語句

2010-04-15 11:33:39

Oracle數據庫

2011-07-27 11:08:49

Oracle數據庫EM Console重

2017-10-18 19:12:24

數據庫Oracle安全管理

2011-05-26 13:29:30

ORACLE數據庫升級

2011-08-11 16:29:49

Oracle數據庫AWRASH

2010-04-15 13:01:25

Oracel數據庫

2011-08-23 15:16:54

OracleMySQL

2015-10-28 14:45:35

ORACLE AIO異步IO

2015-10-28 17:39:04

ORACLE AIO異步IO

2011-03-21 13:21:23

數據庫開發規范

2010-05-07 17:39:02

Oracle數據庫性能

2010-04-02 12:23:30

Oracle數據庫

2010-04-20 11:41:55

Oracle數據庫

2010-04-23 14:32:01

Oracle數據庫

2010-04-23 16:05:50

Oracle數據庫

2010-04-07 09:31:02

Oracle數據庫

2011-05-17 13:43:23

Oracle數據庫

2010-03-18 09:28:14

Oracle數據庫遷移
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成人精品毛片 | 福利久久 | 国产一级片 | 超碰在线网站 | 91色视频在线观看 | 久在线 | 亚洲欧美综合网 | 成人在线观看免费 | 精品美女久久久久久免费 | 在线免费av电影 | 日韩在线观看一区 | yiren22综合网成人 | 中文字幕高清 | 99热国产在线播放 | 一级免费视频 | 久久精品久久精品久久精品 | 久久久久久久久久久久久9999 | 激情 亚洲| 中文字幕在线观 | 免费观看黄a一级视频 | 成人中文字幕在线观看 | 中文字幕av在线播放 | 国产成人精品久久 | 人人种亚洲 | 国产精品伦理一区 | 97精品一区二区 | 男女午夜激情视频 | 本道综合精品 | 成人国产精品 | 成人精品一区亚洲午夜久久久 | 欧美精品一区二区三区在线播放 | 国产精品视频网 | 亚洲午夜网 | 国产 日韩 欧美 制服 另类 | 欧美精品区 | 久久大香 | 久久成人精品一区二区三区 | 羞羞的视频在线 | 中文字幕一区在线观看视频 | 日韩av一区二区在线观看 | 亚洲情综合五月天 |