【閃回特性之閃回查詢】使用閃回查詢(select as of)
Flashback Query可以提取較早時間的資料,該查詢可以指定時間點TIMESTAMP或者SCN,返回的是指定時間點(或SCN)的已提交資料。 閃回查詢的主要作用包括:恢復丟失資料或者撤銷錯誤、已提交的變化;比較當前資料與之前資料的差異;檢查特定時間事務資料的狀態等。
Flashback Query這一特性,最常被應用的就是修復誤操作的資料。注意,這並不是說Flashback Query能夠恢復資料。Flashback Query本身不會恢復任何操作或修改,也不能告訴你做過什麼操作或修改,實際上Flashback Query特性實際應用時,是基於標準SELECT的擴充套件,藉助該特效能夠讓使用者查詢到指定時間點的表中的記錄,相當於擁有了看到過去的能力,至於恢復,可以透過執行INSERT TABLE SELECT或CREATE TABLE AS SELECT來實現。
下面以scott使用者下emp表為例,演示一下閃回查詢功能。
1.首先,查詢系統當前時間和SCN號,以及當前時間點的emp表資料。
2.刪除員工號碼小於7600的員工,並提交;然後,查詢當前資料。
3.分別使用TIMESTAMP和SCN來進行閃回查詢,並且查詢當前資料,好做比較。
如上述示例中所示,AS OF TIMESTAMP方式的使用非常方便,但是在某些情況下,我們建議使用AS OF SCN的方式執行Flashback Query。如需要對多個相互有主外來鍵約束的表進行恢復時,如果使用AS OF TIMESTAMP的方式,可能會由於時間點不統一的緣故造成資料選擇或插入失敗,透過AS OF SCN方式則能夠確保記錄處理的時間點一致。
Flashback Query這一特性,最常被應用的就是修復誤操作的資料。注意,這並不是說Flashback Query能夠恢復資料。Flashback Query本身不會恢復任何操作或修改,也不能告訴你做過什麼操作或修改,實際上Flashback Query特性實際應用時,是基於標準SELECT的擴充套件,藉助該特效能夠讓使用者查詢到指定時間點的表中的記錄,相當於擁有了看到過去的能力,至於恢復,可以透過執行INSERT TABLE SELECT或CREATE TABLE AS SELECT來實現。
下面以scott使用者下emp表為例,演示一下閃回查詢功能。
1.首先,查詢系統當前時間和SCN號,以及當前時間點的emp表資料。
點選(此處)摺疊或開啟
-
SQL> select e.empno,e.ename from scott.emp e order by 1;
-
-
EMPNO ENAME
-
---------- ----------
-
7369 SMITH
-
7499 ALLEN
-
7521 WARD
-
7566 JONES
-
7654 MARTIN
-
7698 BLAKE
-
7782 CLARK
-
7788 SCOTT
-
7839 KING
-
7844 TURNER
-
7876 ADAMS
-
7900 JAMES
-
7902 FORD
-
7934 MILLER
-
-
14 rows selected.
-
-
SQL> select systimestamp from dual;
-
-
SYSTIMESTAMP
-
---------------------------------------------------------------------------
-
15-APR-15 03.27.35.121708 PM +08:00
-
-
SQL> select current_scn from v$database;
-
-
CURRENT_SCN
-
-----------
-
1154393
-
- SQL>
2.刪除員工號碼小於7600的員工,並提交;然後,查詢當前資料。
點選(此處)摺疊或開啟
-
SQL>
-
SQL> delete from scott.emp where empno<7600;
-
-
4 rows deleted.
-
-
SQL> commit;
-
-
Commit complete.
-
-
SQL>
-
SQL> select e.empno,e.ename from scott.emp e order by 1;
-
-
EMPNO ENAME
-
---------- ----------
-
7654 MARTIN
-
7698 BLAKE
-
7782 CLARK
-
7788 SCOTT
-
7839 KING
-
7844 TURNER
-
7876 ADAMS
-
7900 JAMES
-
7902 FORD
-
7934 MILLER
-
-
10 rows selected.
-
- SQL>
點選(此處)摺疊或開啟
-
SQL> select * from scott.emp
-
2 as of timestamp
-
3 to_timestamp(\'2015-04-15 03:27:35\',\'YYYY-MM-DD HH: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.
-
-
SQL>
-
SQL>
-
SQL> select * from scott.emp
-
2 as of scn 1154393;
-
-
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.
-
-
SQL>
-
SQL> select * from scott.emp;
-
-
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
-
----- ---------- --------- ---------- --------- ---------- ---------- ----------
-
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
-
-
10 rows selected.
-
-
SQL>
- SQL>
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30162081/viewspace-1578278/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 閃回查詢之閃回版本查詢
- 閃回查詢之閃回表查詢
- 閃回表、閃回查詢
- [閃回特性之閃回版本查詢]Flashback Version Query
- 閃回(關於閃回查詢)
- 閃回刪除、閃回查詢
- 閃回查詢
- 基本閃回查詢和閃回表
- 閃回技術一:閃回查詢
- DM7閃回與閃回查詢
- Oracle閃回查詢,閃回版本查詢與閃回事務查詢的使用區別總結Oracle
- 【閃回特性之閃回事務查詢】Flashback Transaction Query
- oracle閃回查詢Oracle
- 閃回查詢(轉)
- 閃回查詢(1)
- oracle 閃回查詢Oracle
- 閃回版本查詢與閃回事務查詢
- Oracle 11G 閃回技術 閃回版本查詢和閃回事務查詢Oracle
- oracle flashback特性(1.2)--閃回查詢之As of scnOracle
- 【備份恢復】閃回技術之閃回版本查詢
- Flashback Query閃回查詢
- oracle的閃回查詢Oracle
- oracle的回閃查詢Oracle
- 閃回查詢(undo sql)SQL
- 閃回版本查詢操作
- Oracle 11G 閃回技術 使用Oracle閃回查詢Oracle
- Oracle 11G 閃回技術 使用閃回版本查詢Oracle
- oracle flashback特性(1.1)--閃回查詢之As of timestampOracle
- oracle flashback特性(1.4)--閃回查詢之Transaction queryOracle
- DM8 閃回查詢
- 閃回版本查詢技術:
- (f)--閃回恢復區---實踐2---閃回表(閃回DML部分資料會用到閃回查詢)
- 10g新特性——閃回版本查詢
- 使用閃回查詢備份資料
- oracle flashback特性(1.5)--閃回查詢之制約因素Oracle
- 回閃查詢查詢刪除的資料
- oracle閃回版本查詢學習Oracle
- 閃回技術查詢資料