【閃回特性之閃回查詢】使用閃回查詢(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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- DM7閃回與閃回查詢
- Oracle 11G 閃回技術 閃回版本查詢和閃回事務查詢Oracle
- DM8 閃回查詢
- Oracle 11G 閃回技術 使用Oracle閃回事務查詢Oracle
- Oracle閃回技術 為Oracle閃回配置資料庫Oracle資料庫
- 2.6.3 指定閃回區
- flashback query閃回資料
- Oracle資料庫閃回Oracle資料庫
- MySQL工具之binlog2sql閃回操作MySql
- mysql閃回工具binlog2sqlMySql
- Oracle閃回技術--Flashback Version QueryOracle
- Oracle 閃回資料庫測試Oracle資料庫
- my2sql資料閃回SQL
- 【PDB】pdb閃回,Oracle還原點Oracle
- 【趙強老師】MySQL的閃回MySql
- 詳解oracle資料庫閃回Oracle資料庫
- Oracle 12.2新特性: PDB級閃回資料庫(Flashback PDB)Oracle資料庫
- Flashback Drop閃回刪除功能實踐
- dg_閃回資料庫實驗資料庫
- 工具分享丨資料閃回工具MyFlash
- [20180423]表空間閃回與snapshot standby
- Orcale利用閃回功能恢復資料
- 【RECO_ORACLE】Oracle閃回PDB的方法Oracle
- MySQL 覆蓋索引、回表查詢MySql索引
- rac使用預設閃回區歸檔空間滿
- 【Flashback】Flashback Drop閃回刪除功能實驗
- Oracle資料庫閃回區空間不足Oracle資料庫
- Oracle回收站表閃回機制研究Oracle
- MySQL使用binlog2sql閃回誤刪除資料MySql
- ORACLE 閃回檢視v$flashback_database_log/statOracleDatabase
- 利用binlog2sql閃回丟失資料SQL
- 【Flashback】Flashback Database閃回資料庫功能實驗Database資料庫
- 一個非常老但是很有用的功能-閃回
- GeminiDB Cassandra介面新特性FLASHBACK釋出:任意時間點秒級閃回
- 拉鍊表的建立、查詢和回滾
- Oracle查詢回滾大事務所需時間Oracle
- [20180419]關於閃回的一些問題.txt
- MySQL閃回技術之binlog2sql恢復binlog中的SQLMySql
- 【DB寶43】MySQL誤操作閃回恢復利器之my2sqlMySql