oracle 10g已刪除資料查詢的兩種方式
(1)as of timestamp
eg. www.2cto.com
sql**
select * from t_table as of timestamp(sysdate-1/24)
where ...
注意,不能給表起別名
(2)as of scn
sql**
sql>select dbms_flashback.get_system_change_number from dual;
get_system_change_number
------------------------
1859181
--如果不知道確切的scn,嘗試小些的
sql>select count(*) from t_table as of scn 1800000;
sql>insert into t_table select * from t_table as of scn 1800000;
www.2cto.com
-------------------------------------------
以下是轉的 引用
***基於時間的查詢(as of timestamp)
應用flashback query查詢過去的資料
flashback query這一特性,最常被應用的就是修復誤操作的資料了。注意,這並不是說flashback query能夠恢復資料。flashback query本身不會恢復任何操作或修改,也不能告訴你做過什麼操作或修改,實際上flashback query特性實際應用時,是基於標準select的擴充套件,借助該特性能夠讓使用者查詢到指定時間點的表中的記錄,相當於擁有了看到過去的能力,至於恢復,select的結果都出來了,難道還不懂如何執行insert table select或create table as select嗎?
11.1.1.1 基於時間的查詢(as of timestamp)
以前面建立的flash_tbl表為例,先來刪除幾條記錄並提交:
jsspre> delete flash_tbl where id<10;
9 rows deleted.
jsspre> commit;
commit complete.
jsspre> select * from flash_tbl;
id vl
---------- --
10 k
11 l
12 m
13 n
14 o
15 p
16 q
17 r
18 s
19 t
20 u
11 rows selected. www.2cto.com
這個時候flash_tb1表中id<10的記錄均已被刪除,假設過了一會兒使用者發現刪除操作執行有誤,仍需找回那些被誤刪的記錄該怎麼辦呢?通過備份恢復嗎,如果是在8i或之前版本,恐怕是需要這樣,自9i之後,使用flashback query的特性,我們可以很輕鬆地恢復記錄(注意並不是任何情況下都可以恢復喲,後面會講到制約flashback query的一些因素,這裡假設的都是在理想條件下)。
現在就演示應用flashback query,首先是找到它,假設當前距離刪除資料有5分鐘左右的時間,執行select查詢語句,並附加as of子句,例如:
jsspre> select * from flash_tbl as of timestamp sysdate-5/1440;
id vl
---------- --
1 a
2 b
3 c
4 d
5 e
6 f
7 g
8 h
9 i
10 k
11 l
12 m
13 n
14 o
15 p
16 q
17 r
18 s
19 t
20 u
20 rows selected.
jsspre>
提 示 www.2cto.com
sysdate-5/1440是啥意思,1440又是怎麼來的?
首先60(分)×24=1440,這樣就計算出一天擁有多少分鐘,sysdate是
系統函式,用來取得當前的系統時間(以天為單位),sysdate-5/1440,得出的就是距當前時間5分鐘前的記錄了。後面示例中需要計算之前的某個時段時,均是使用這一方法。
你看,我們通過增加as of timestamp的語法,查詢到的資料就是5分鐘之前的,基於這一結果,可以輕易並且快速地將記錄恢復:
jsspre> insert into flash_tbl
2 select * from flash_tbl as of timestamp sysdate-5/1440
3 where id<10;
9 rows created.
jsspre> commit;
commit complete.
成功插入9條記錄,查詢表中當前的記錄:
jsspre> select * from flash_tbl;
id vl
---------- --
10 k
11 l
12 m
13 n
14 o
15 p
16 q
17 r
18 s www.2cto.com
19 t
20 u
1 a
2 b
3 c
4 d
5 e
6 f
7 g
8 h
9 i
20 rows selected.
資料已被成功恢復。
如上述示例中所示,as of timestamp方式的使用非常方便,但是在某些情況下,我們建議使用as of scn的方式執行flashback query。如需要對多個相互有主外來鍵約束的表進行恢復時,如果使用as of timestamp的方式,可能會由於時間點不統一的緣故造成資料選擇或插入失敗,通過as of scn方式則能夠確保記錄處理的時間點一致。
摘自紅黑聯盟
oracle 10g已刪除資料查詢的兩種方式
oracle 10g已刪除資料查詢的兩種方式 1 as of timestamp eg.sql select from t table as of timestamp sysdate 1 24 where 注意,不能給表起別名 2 as of scn sql sql select dbms flas...
oracle10g 解除安裝
1 oracle 10g解除安裝軟體環境 1 windows xp oracle 10g2 oracle 安裝路徑為 d oracle 實現方法 1 開始 設定 控制面板 管理工具 服務停止所有 oracle 服務 2 開始 程式 oracle oradb 10g home1 oracle inst...
Oracle10g解除安裝
一 軟體解除安裝 1 windows xp oracle 10g 2 oracle安裝路徑為 d oracle 1 如果資料庫配置了自動儲存管理 asm 應該先刪除聚集同步服務css cluster synchronization services 刪除css服務的方法是在dos命令列中執行如下命令...