91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Oracle Study中數據恢復神器Flashback怎么用

發布時間:2021-11-25 09:55:58 來源:億速云 閱讀:199 作者:小新 欄目:關系型數據庫

這篇文章將為大家詳細講解有關Oracle Study中數據恢復神器Flashback怎么用,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

Flashback:

            Flashback 技術是以Undo segment中的內容為基礎的, 因此受限于UNDO_RETENTON參數。要使用flashback 的特性,必須啟用自動撤銷管理表空間。

            在Oracle 11g里又出了一個新特性:Oracle Flashback Data Archive. FDA通過將變化數據另外存儲到創建的閃回歸檔區(Flashback Archive)中,以和undo區別開來,這樣就可以為閃回歸檔區單獨設置存儲策略,使之可以閃回到指定時間之前的舊數據而不影響undo策略。

            在Oracle 10g中, Flash back家族分為以下成員: Flashback Database, Flashback Drop,Flashback Query(分Flashback Query,Flashback Version Query, Flashback Transaction Query 三種) 和Flashback Table。

用戶誤操作數據恢復

       對于用戶誤操作產生的數據丟失,傳統上都采用備份(邏輯備份)或物理備份(不完全恢復)來恢復數據;如果有邏輯備份,恢復相對較容易,如果沒有邏輯備份,通過物理備份進行不完全恢復,需要付出很大的成本才能恢復數據;而從Oracle 9i以來,Oracle推出了Flashback得工具,可以通過此工具快速恢復因用戶誤操作而丟失的數據。

    對于DML操作,Flashback可以通過Undo block來恢復用戶產生的誤操作。

1、Flashback  query 特性flashback可以通過undo block查詢過去時間點或scn的數據
2、Flashback  version query 特性可以得到特定的表在某一個時間段內的任何修改記錄
3、Flashback transaction query 特性可以限制用戶在某一個事務級別上檢查數據庫的修改操作,適用于診斷問題、分析性能、審計事務。
4、Flashback table 特性允許oracle通過flashback table語句,將表回滾到前一個時間點或者scn上。

一、Flashback Query

     Flashback 是ORACLE 自9i 就開始提供的一項特性,在9i 中利用oracle 查詢多版本一致的特點,實現從回滾段中讀取表一定時間內操作過的數據,可用來進行數據比對,或者修正意外提交造成的錯誤數據,該項特性也被稱為Flashback Query。

     正如前言中所提,Flashback Query 是利用多版本讀一致性的特性從UNDO 表空間讀取操作前的記錄數據!

什么是多版本讀一致性

      Oracle 采用了一種非常優秀的設計,通過undo 數據來確保寫不堵塞讀,簡單的講,不同的事務在寫數據時,會將數據的前映像寫入undo 表空間,這樣如果同時有其它事務查詢該表數據,則可以通過undo 表空間中數據的前映像來構造所需的完整記錄集,而不需要等待寫入的事務提交或回滾。

      flashback query 有多種方式構建查詢記錄集,記錄集的選擇范圍可以基于時間或基于scn,甚至可以同時查詢出記錄在undo 表空間中不同事務時的前映象。用法與標準查詢非常類似,要通過flashback query 查詢undo 中的撤銷數據,最簡單的方式只需要在標準查詢語句的表名后面跟上as of timestamp(基于時間)或as of scn(基于scn)即可。as of timestamp|scn 的語法是自9iR2 后才開始提供支持。

 案例分析:

1、基于時間點(As of Timestamp)

    利用在undo tablespace 里已經被提交的undo block(未被覆蓋),可以通過查詢的方式將表里面的記錄回到過去某個時間點。

1、構建測試環境
07:01:37 SQL> conn scott/tiger                                                                                                         
Connected.
07:01:41 SQL> select * from test;                                                                                                        
     EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM     DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
      7369 SMITH      CLERK           7902 17-DEC-80        800                    20
      7499 ALLEN      SALESMAN        7698 20-FEB-81       1600        300         30
      7521 WARD       SALESMAN        7698 22-FEB-81       1250        500         30
      7566 JONES      MANAGER         7839 02-APR-81       2975                    20
      7654 MARTIN     SALESMAN        7698 28-SEP-81       1250       1400         30
      7698 BLAKE      MANAGER         7839 01-MAY-81       2850                    30
      7782 CLARK      MANAGER         7839 09-JUN-81       2450                    10
      7788 SCOTT      ANALYST         7566 19-APR-87       3000                    20
      7839 KING       PRESIDENT            17-NOV-81       5000                    10
      7844 TURNER     SALESMAN        7698 08-SEP-81       1500          0         30
      7876 ADAMS      CLERK           7788 23-MAY-87       1100                    20
      7900 JAMES      CLERK           7698 03-DEC-81        950                    30
      7902 FORD       ANALYST         7566 03-DEC-81       3000                    20
      7934 MILLER     CLERK           7782 23-JAN-82       1300                    10
14 rows selected.

2、DML誤操作

07:01:45 SQL> delete from test ;                                                                                                        
14 rows deleted.
07:01:59 SQL> commit;                                                                                                                    
Commit complete.

07:02:03 SQL> select * from test;                                                                                                        
no rows selected

07:02:05 SQL> insert into test select * from emp where rownum <3;                                                                        
2 rows created.
07:02:35 SQL> select * from test;                                                                                                        
     EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM     DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
      7369 SMITH      CLERK           7902 17-DEC-80        800                    20
      7499 ALLEN      SALESMAN        7698 20-FEB-81       1600        300         30
07:02:37 SQL> commit;                                                                                                                    
Commit complete.

2、利用logminer工具查找誤操作的時間點(挖掘current redo或archive log)

07:03:03 SQL> select * from v$log;                                                                                                       
    GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIM
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- ---------
         1          1          0   52428800          1 YES UNUSED                       0
         2          1          1   52428800          1 NO  CURRENT                1261015 17-AUG-11
         3          1          0   52428800          1 YES UNUSED                       0
07:03:20 SQL> col member for a50                                                                                                         
07:03:23 SQL> select group#,member from v$logfile
    GROUP# MEMBER
---------- --------------------------------------------------
         3 /u01/app/oracle/oradata/prod/redo03.log
         2 /u01/app/oracle/oradata/prod/redo02.log
         1 /u01/app/oracle/oradata/prod/redo01.log

11:19:31 SQL> conn /as sysdba
Connected.
11:19:35 SQL> select * from v$log;
    GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIM
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- ---------
         1          1         12   52428800          2 YES INACTIVE                823116 29-SEP-11
         2          1         14   52428800          2 NO  CURRENT                 828692 29-SEP-11
         3          2          9   52428800          2 YES INACTIVE                824371 29-SEP-11
         4          2         11   52428800          2 NO  CURRENT                 828868 29-SEP-11
         5          1         13   52428800          2 YES INACTIVE                828670 29-SEP-11
         6          2         10   52428800          2 YES INACTIVE                828817 29-SEP-11
6 rows selected.

11:19:41 SQL> col member for a50
11:19:57 SQL> select group# ,member from v$logfile;
    GROUP# MEMBER
---------- --------------------------------------------------
         2 +DG1/prod/onlinelog/group_2.262.762877491
         2 +RECOVERY/prod/onlinelog/group_2.258.762877501
         1 +DG1/prod/onlinelog/group_1.261.762877473
         1 +RECOVERY/prod/onlinelog/group_1.257.762877479
         3 +DG1/prod/onlinelog/group_3.266.762877849
         3 +RECOVERY/prod/onlinelog/group_3.259.762877855
         4 +DG1/prod/onlinelog/group_4.267.762877859
         4 +RECOVERY/prod/onlinelog/group_4.260.762877867
         6 +DG1/prod/onlinelog/group_6.272.763037401
         6 +RECOVERY/prod/onlinelog/group_6.262.763037407
         5 +DG1/prod/onlinelog/group_5.271.763037441
    GROUP# MEMBER
---------- --------------------------------------------------
         5 +RECOVERY/prod/onlinelog/group_5.261.763037613
12 rows selected.

啟動數據庫附加日志:

11:19:58 SQL>Alter database add supplemental log data;

分析current redolog:

11:20:07 SQL> execute dbms_logmnr.add_logfile(logfilename=>'+DG1/prod/onlinelog/group_2.262.762877491',options=>dbms_logmnr.new);
PL/SQL procedure successfully completed.

11:20:57 SQL> alter session set nls_date_format='yyyy-mm-dd';
Session altered.
11:21:32 SQL> execute dbms_logmnr.start_logmnr(options=>dbms_logmnr.dict_from_online_catalog);
PL/SQL procedure successfully completed.

07:05:21 SQL>  execute dbms_logmnr.end_logmnr;                                                                                           
PL/SQL procedure successfully completed.

查看DML操作的時間點:
11:23:11 SQL> select username,scn,timestamp,sql_redo from v$logmnr_contents where seg_name='EMP1';
USERNAME                              SCN TIMESTAMP  SQL_REDO
------------------------------ ---------- ---------- --------------------------------------------------
                                   830293 2011-09-29 delete from "SCOTT"."EMP1" where "EMPNO" = '7369'
                                                     and "ENAME" = 'SMITH' and "JOB" = 'CLERK' and "MGR
                                                     " = '7902' and "HIREDATE" = TO_DATE('1980-12-17',
                                                     'yyyy-mm-dd') and "SAL" = '800' and "COMM" IS NULL
                                                      and "DEPTNO" = '20' and ROWID = 'AAAM01AAEAAAAGEA
                                                     AA';
3、flashback query基于時間點的查詢
 07:08:42 SQL> conn scott/tiger                                                                                                           
Connected.

07:08:48 SQL> select * from test as of timestamp to_timestamp('2011-08-17 07:01:59','yyyy-mm-dd hh34:mi:ss');                            
     EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM     DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
      7369 SMITH      CLERK           7902 17-DEC-80        800                    20
      7499 ALLEN      SALESMAN        7698 20-FEB-81       1600        300         30
      7521 WARD       SALESMAN        7698 22-FEB-81       1250        500         30
      7566 JONES      MANAGER         7839 02-APR-81       2975                    20
      7654 MARTIN     SALESMAN        7698 28-SEP-81       1250       1400         30
      7698 BLAKE      MANAGER         7839 01-MAY-81       2850                    30
      7782 CLARK      MANAGER         7839 09-JUN-81       2450                    10
      7788 SCOTT      ANALYST         7566 19-APR-87       3000                    20
      7839 KING       PRESIDENT            17-NOV-81       5000                    10
      7844 TURNER     SALESMAN        7698 08-SEP-81       1500          0         30
      7876 ADAMS      CLERK           7788 23-MAY-87       1100                    20
      7900 JAMES      CLERK           7698 03-DEC-81        950                    30
      7902 FORD       ANALYST         7566 03-DEC-81       3000                    20
      7934 MILLER     CLERK           7782 23-JAN-82       1300                    10
14 rows selected.

將查詢到的數據寫入到表中:

07:08:50 SQL> insert into test (select * from test as of timestamp to_timestamp('2011-08-17 07:01:59','yyyy-mm-dd hh34:mi:ss'));         
14 rows created.

07:09:10 SQL> select * from test;                                                                                                        
     EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM     DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
      7369 SMITH      CLERK           7902 17-DEC-80        800                    20
      7499 ALLEN      SALESMAN        7698 20-FEB-81       1600        300         30
      7369 SMITH      CLERK           7902 17-DEC-80        800                    20
      7499 ALLEN      SALESMAN        7698 20-FEB-81       1600        300         30
      7521 WARD       SALESMAN        7698 22-FEB-81       1250        500         30
      7566 JONES      MANAGER         7839 02-APR-81       2975                    20
      7654 MARTIN     SALESMAN        7698 28-SEP-81       1250       1400         30
      7698 BLAKE      MANAGER         7839 01-MAY-81       2850                    30
      7782 CLARK      MANAGER         7839 09-JUN-81       2450                    10
      7788 SCOTT      ANALYST         7566 19-APR-87       3000                    20
      7839 KING       PRESIDENT            17-NOV-81       5000                    10
      7844 TURNER     SALESMAN        7698 08-SEP-81       1500          0         30
      7876 ADAMS      CLERK           7788 23-MAY-87       1100                    20
      7900 JAMES      CLERK           7698 03-DEC-81        950                    30
      7902 FORD       ANALYST         7566 03-DEC-81       3000                    20
      7934 MILLER     CLERK           7782 23-JAN-82       1300                    10
16 rows selected.
---至此,數據恢復完成!

2、基于SCN(As of SCN)

 ---對于事務的scn亦可以通過logminer對日志分析得到!

07:09:13 SQL> conn /as sysdba                                                                                                            
Connected.
07:10:28 SQL> 
07:10:28 SQL> select current_scn from v$database;                                                                                        
CURRENT_SCN
-----------
    1263945
07:10:39 SQL> conn scott/tiger                                                                                                           
Connected.
07:13:44 SQL> delete from test;                                                                                                          
16 rows deleted.
07:13:51 SQL> commit;                                                                                                                    
Commit complete.

07:13:56 SQL> select * from test as of scn 1263945 ;                                                                                     
     EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM     DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
      7369 SMITH      CLERK           7902 17-DEC-80        800                    20
      7499 ALLEN      SALESMAN        7698 20-FEB-81       1600        300         30
      7369 SMITH      CLERK           7902 17-DEC-80        800                    20
      7499 ALLEN      SALESMAN        7698 20-FEB-81       1600        300         30
      7521 WARD       SALESMAN        7698 22-FEB-81       1250        500         30
      7566 JONES      MANAGER         7839 02-APR-81       2975                    20
      7654 MARTIN     SALESMAN        7698 28-SEP-81       1250       1400         30
      7698 BLAKE      MANAGER         7839 01-MAY-81       2850                    30
      7782 CLARK      MANAGER         7839 09-JUN-81       2450                    10
      7788 SCOTT      ANALYST         7566 19-APR-87       3000                    20
      7839 KING       PRESIDENT            17-NOV-81       5000                    10
      7844 TURNER     SALESMAN        7698 08-SEP-81       1500          0         30
      7876 ADAMS      CLERK           7788 23-MAY-87       1100                    20
      7900 JAMES      CLERK           7698 03-DEC-81        950                    30
      7902 FORD       ANALYST         7566 03-DEC-81       3000                    20
      7934 MILLER     CLERK           7782 23-JAN-82       1300                    10
      16 rows selected.

Oracle 事務timestamp和scn關系:

      每隔5 分鐘,系統產生一次系統時間標記與scn 的匹配并存入sys.smon_scn_time 表,該表中記錄了最近1440個系統時間標記與scn 的匹配記錄,由于該表只維護了最近的1440 條記錄,因此如果使用as of timestamp 的方式則只能flashback 最近5 天內的數據(假設系統是在持續不斷運行并無中斷或關機重啟之類操作的話)。

       注意理解系統時間標記與scn 的每5 分鐘匹配一次這句話,舉個例子,比如scn:339988,339989 分別匹配08-05-3013:52:00 和2008-13:57:00,則當你通過as of timestamp 查詢08-05-30 13:52:00 或08-05-30 13:56:59 這段時間點

內的時間時,oracle 都會將其匹配為scn:339988 到undo 表空間中查找,也就說在這個時間內,不管你指定的時間點是什么,查詢返回的都將是08-05-30 13:52:00 這個時刻的數據。

       查看SCN 和 timestamp 之間的對應關系:

select scn,to_char(time_dp,'yyyy-mm-dd hh34:mi:ss')from sys.smon_scn_time;

15:49:45 SYS@ test3 >select scn,to_char(time_dp,'yyyy-mm-dd hh34:mi:ss')from sys.smon_scn_time order by 2 desc;
       SCN TO_CHAR(TIME_DP,'YY
---------- -------------------
    623337 2015-01-13 07:45:26
    623229 2015-01-13 07:40:13
    623128 2015-01-13 07:35:28
    623009 2015-01-13 07:30:12
    622906 2015-01-13 07:25:24
    622799 2015-01-13 07:20:11
    622695 2015-01-13 07:15:12
    622580 2015-01-13 07:10:24
    622474 2015-01-13 07:05:11
    622390 2015-01-13 07:01:17
    622161 2015-01-13 06:56:04
    622063 2015-01-13 06:51:20
    621954 2015-01-13 06:46:04
    621855 2015-01-13 06:41:19

二、Flashback version query

        相對于Flashback Query只能看到某一點的對象狀態,Oracle 10g引入的Flashback Version Query可以看到過去某個時間段內,記錄如何變化的。根據這個變化的歷史,可以決斷數據是在什么時間點發生了錯誤。

        Oracle10g可以通過Flashback Version Query允許對不同時間段內數據表的不同版本進行查詢,查詢可以反映不同時間段內數據表的變更。
        Oracle Flashback Version Query特性,利用保存的回滾信息,可以看到特定的表在時間段內的任何修改,如電影的回放一樣,可以了解表在該期間的任何變化。Flashback version query一樣依賴于AUM,提供了一個查看行改變的功能,能找到所有已經提交了的行的記錄,分析出過去時間都執行了什么操作。Flashback version query采用VERSIONS BETWEEN語句來進行查詢,常用的方法:
·VERSIONS_SCN – 系統改變號
·VERSIONS_TIMESTAMP – 時間

#查看表EMP1的操作歷史

col versions_xid format a16 heading 'XID'
col versions_startscn format 99999999 heading 'Vsn|Start|SCN'
col versions_endscn  format 99999999 heading 'Vsn|End|SCN'
col versions_operation format a12  heading 'Operation'

select versions_xid, versions_startscn, versions_endscn,
     decode( versions_operation, 'I', 'Insert', 'U', 'Update', 'D', 'Delete', 'Original') "operation",
     empno, enamefrom emp1
     versions between scn minvalue and maxvalue;

            注意結果主從下向上看。Original代表最開始的數據。 

            3 相關的偽列

            1) ORA_ROWSCN記錄最后一次被修改時的SCN, 這里的修改是指"被提交的修改",如果沒有提交,那么這個偽列不會發生變化。ORA_ROWSCN 缺省是數據塊級別的,也就是一個數據塊內的所有記錄都是一個ORA_ROWSCN. 數據塊內的任意一條記錄被修改,這個數據塊內的所有記錄ORA_ROWSCN都會同時改變。通過在建表時使用關鍵字rowdependencies, 可以改變這咱缺省行為。使用這個關鍵字后,每條記錄都有自己的ORA_ROWSCN.

創建表時,如果沒有使用rowdependencies關鍵字,則ORA_ROWSCN使用的是數據塊頭的SCN,因此在一個數據塊內所有記錄的ORA_ROWSCN都一樣。如果使用了rowdependencies關鍵字,則每個記錄都有自己的ORA_ROWSCN。這個值來自于ITL或dscn字段。             2)VERSIONS_STARTSCN表示這行記錄獲得的值是在哪個SCN獲得的,如果為NULL,則表明這一行的值早于versions between scn MINVALUE and MAXVALUE中的MINVALUE。

          3) VERSIONS_STARTTIME同上

          4) VERSIONS_ENDSCN這行記錄的這個值是到哪個SCN過期的。

          5) VERSIONS_TIME同上

          6) VERSIONS_XID導致事務修改的事務號

          7) VERSIONS_OPERATION修改類型U: updateI: insertD: delete

          兩個函數:SCN_TO_TIMESTAMP(current_scn)

          select current_scn,scn_to_timestamp(current_scn) curr_time  from v$database;

TIMESTAMP_TO_SCN('yyyy-mm-dd hh34:mi:ss1')

Notes要使用Flashback Version Query, 用戶首先要有對象的Select, flashback權限,對表執行過DDL語句之后,就只能查看DDL語句之后的版本,也就是說Flashback Version Query 不會跨越DDL操作。

案例分析:

12:50:06 SYS@ test1 >conn scott/tiger
Connected.

12:50:14 SCOTT@ test1 >create table emp1 as select * from emp;
Table created.

12:50:32 SCOTT@ test1 >insert into emp1 select * from emp where empno=7788;
1 row created.

12:51:53 SCOTT@ test1 >commit;
Commit complete.

12:51:56 SCOTT@ test1 >update emp1 set sal=9000 where empno=7369;
1 row updated.

12:52:10 SCOTT@ test1 >commit;
Commit complete.

12:52:11 SCOTT@ test1 >delete from emp where empno=7788;
1 row deleted.

12:52:23 SCOTT@ test1 >rollback;
Rollback complete.


col versions_xid format a16 heading 'XID'
col versions_startscn format 99999999 heading 'Vsn|Start|SCN'
col versions_endscn  format 99999999 heading 'Vsn|End|SCN'
col versions_operation format a12  heading 'Operation'

select versions_xid, versions_startscn, versions_endscn,
decode( versions_operation, 'I', 'Insert', 'U', 'Update', 'D', 'Delete', 'Original') "operation",
empno, ename
from emp1
versions between scn minvalue and maxvalue;
Elapsed: 00:00:00.03
12:53:12 SCOTT@ test1 >select versions_xid, versions_startscn, versions_endscn,
12:54:33   2  decode( versions_operation, 'I', 'Insert', 'U', 'Update', 'D', 'Delete', 'Original') "operation",
12:54:33   3  empno, ename
12:54:33   4  from emp1
12:54:33   5  versions between scn minvalue and maxvalue;
                       Vsn       Vsn
                     Start       End
XID                    SCN       SCN operation                             EMPNO ENAME
---------------- --------- --------- -------------------------------- ---------- ----------
08001F007D260000  11966074           Update                                 7369 SMITH
                            11966074 Original                               7369 SMITH
                                     Original                               7499 ALLEN
                                     Original                               7521 WARD
                                     Original                               7566 JONES
                                     Original                               7654 MARTIN
                                     Original                               7698 BLAKE
                                     Original                               7782 CLARK
                                     Original                               7788 SCOTT
                                     Original                               7839 KING
                                     Original                               7844 TURNER
                                     Original                               7876 ADAMS
                                     Original                               7900 JAMES
                                     Original                               7902 FORD
                                     Original                               7934 MILLER
                       Vsn       Vsn
                     Start       End
XID                    SCN       SCN operation                             EMPNO ENAME
---------------- --------- --------- -------------------------------- ---------- ----------
0A0020006B260000  11966067           Insert                                 7788 SCOTT
16 rows selected.

三、Flashback transaction query

      Flashback Transaction Query 與Flashback Version Query類似,也是使用UNDO信息來實現,利用這個功能可以查看某個事務執行的所有變化。使用這個功能,需要訪問Flashback_transaction_query視圖

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

select xid, operation, commit_scn, undo_sql
      from flashback_transaction_query
          where xid in(select versions_xid 
                              from emp1 versions between scn minvalue and                                          maxvalue);

案例分析:

在使用flashback transaction query之前需要啟動Oracle附加日志(supplemental redo log)

啟動數據庫附加日志:

13:04:58 SQL>Alter database add supplemental log data;

13:06:14 SYS@ test1 >col undo_sql for a50
13:07:17 SYS@ test1 >select xid, operation, commit_scn, undo_sql
  2  from flashback_transaction_query
  3  where xid in(
  4  select versions_xid
  5  from scott.emp1
  6* versions between scn minvalue and maxvalue)
  
XID              OPERATION                        COMMIT_SCN UNDO_SQL
---------------- -------------------------------- ---------- --------------------------------------------------
0A0020006B260000 INSERT                             11966067 delete from "SCOTT"."EMP1" where ROWID = 'AAAEgIAA
                                                             JAAAAC3AAA';
0A0020006B260000 BEGIN                              11966067
08001F007D260000 UPDATE                             11966074 update "SCOTT"."EMP1" set "SAL" = '800' where ROWI
                                                             D = 'AAAEgIAAJAAAACzAAA';
08001F007D260000 BEGIN                              11966074

案例2:
13:08:40 SYS@ test1 >conn scott/tiger
Connected.
14:03:14 SCOTT@ test1 >insert into emp1 select * from emp where rownum=1;
1 row created.

14:03:30 SCOTT@ test1 >commit;
Commit complete.

14:03:45 SCOTT@ test1 >update emp set sal=9000 where empno=7788;
1 row updated.

14:03:55 SCOTT@ test1 >commit;
Commit complete.

14:03:57 SCOTT@ test1 >delete from emp where empno=7369;
0 rows deleted.

14:04:08 SCOTT@ test1 >commit;
Commit complete.
14:08:10 SYS@ test1 >col undo_sql for a50
14:08:24 SYS@ test1 >select xid, operation, commit_scn, undo_sql
  2  from flashback_transaction_query
  3  where xid in(
  4  select versions_xid
  5  from scott.emp1
  6   versions between timestamp
  7   to_timestamp('2015-01-14 14:00:00','yyyy-mm-dd hh34:mi:ss')
  8* and to_timestamp('2015-01-14 14:05:00','yyyy-mm-dd hh34:mi:ss'))

XID              OPERATION                        COMMIT_SCN UNDO_SQL
---------------- -------------------------------- ---------- --------------------------------------------------
04001B0028260000 INSERT                             11985210 delete from "SCOTT"."EMP1" where ROWID = 'AAAEgIAA
                                                             JAAAAC1AAA';

04001B0028260000 BEGIN                              11985210

關于“Oracle Study中數據恢復神器Flashback怎么用”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

许昌县| 博客| 安溪县| 嘉鱼县| 武定县| 新乡县| 将乐县| 灵武市| 永新县| 永和县| 贵定县| 兴化市| 万安县| 广州市| 麻江县| 唐山市| 和平县| 昭通市| 陇川县| 英德市| 廉江市| 浦江县| 怀来县| 集安市| 海淀区| 韩城市| 慈溪市| 汾阳市| 新田县| 呼伦贝尔市| 金寨县| 凤冈县| 饶河县| 赤水市| 大悟县| 乌鲁木齐市| 类乌齐县| 华容县| 泾源县| 上饶市| 遵义市|