Oracle 9i閃回測試。
最近讀了eygle的新作,實踐了一下閃回:
os:windows xp
db:oracle 9.2.0.1
關於閃回功能的測試,如果是正常存在的一個表,刪除部分資料,可以保證資料的閃回。
C:Documents and Settingszero>sqlplus "/ as sysdba"
SQL*Plus: Release 9.2.0.1.0 - Production on 星期一 12月 10 11:28:10 2007
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
連線到:
Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production
SQL> conn test/1
已連線。
SQL> select count(1) from test;
COUNT(1)
----------
9
SQL> select systimestamp from dual;
SYSTIMESTAMP
---------------------------------------------------------------------------
10-12月-07 11.29.05.765000 上午 +08:00
SQL> delete from test where rownum <3;
已刪除2行。
SQL> commit;
提交完成。
SQL> select count(1) from test;
COUNT(1)
----------
7
SQL> col scn for 999999999999;
SQL> select dbms_flashback.get_system_change_number scn from dual;
SCN
-------------
1352535
SQL> select count(1) from test as of scn 1352530;
COUNT(1)
----------
7
SQL> select count(1) from test as of scn 1352520;
COUNT(1)
----------
9
SQL> create table test_rec as select *from test as of scn 1352520;
表已建立。
SQL> select count(1) from test_rec;
COUNT(1)
----------
9
SQL> delete from test;
已刪除7行。
SQL> commit;
提交完成。
SQL> insert into test select *from test_rec;
已建立9行。
SQL> commit;
提交完成。
SQL>
如果是之前進行drop過表,就無法恢復:
SQL> create table zero as select *from test;
create table zero as select *from test
*
ERROR 位於第 1 行:
ORA-00955: 名稱已由現有物件使用
SQL> drop table zero;
表已丟棄。
SQL> create table zero as select *from test;
表已建立。
SQL> insert into zero select *from test;
已建立9行。
SQL> commit;
提交完成。
SQL> select count(1)from zero;
COUNT(1)
----------
18
SQL> delete from zero where rownum <8;
已刪除7行。
SQL> commit;
提交完成。
SQL> select count(1) from zero;
COUNT(1)
----------
11
SQL> col scn for 999999999999;
SQL> select dbms_flashback.get_system_change_number scn from dual;
SCN
-------------
1352901
SQL> select count(1) from zero as of scn 1352850;
select count(1) from zero as of scn 1352850
*
ERROR 位於第 1 行:
ORA-01466: 無法讀資料 - 表定義已更改
SQL>
如果修改一下表結構呢?
SQL> alter table TEST rename column COL to COL1;
表已更改。
SQL> alter table TEST add col2 number;
表已更改。
SQL> update test set col2 = col1;
已更新9行。
SQL> commit;
提交完成。
SQL> select dbms_flashback.get_system_change_number scn from dual;
SCN
-------------
1352972
SQL> select * from test as of scn 1352965;
select * from test as of scn 1352965
*
ERROR 位於第 1 行:
ORA-01466: 無法讀資料 - 表定義已更改
SQL>
改了表結構也無法恢復被刪除的資料。
9i的閃回功能還是少一些。有機會再實踐一下10g的閃回。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/79499/viewspace-440/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle 9i 閃回Oracle
- Oracle 閃回資料庫測試Oracle資料庫
- Oracle 9I FlashBack 測試Oracle
- oracle閃回Oracle
- oracle 閃回Oracle
- 關於 oracle 9i 閃回的一個錯誤補Oracle
- 關於oracle 9i的閃回的一個錯誤Oracle
- Oracle閃回原理測試(三)(r12筆記第16天)Oracle筆記
- Oracle 9i RAC enqueue等待測試OracleENQ
- oracle 閃回 flashbackOracle
- oracle閃回特性Oracle
- Oracle閃回技術 為Oracle閃回配置資料庫Oracle資料庫
- Oracle Flashback 閃回查詢功能操作範例(9i and 10g)Oracle
- Oracle閃回技術之閃回資料庫Oracle資料庫
- Oracle 11G 閃回技術 使用Oracle閃回查詢Oracle
- oracle閃回查詢Oracle
- Oracle閃回刪除Oracle
- Oracle閃回詳解Oracle
- 清空 oracle 閃回區Oracle
- Oracle 之 閃回操作Oracle
- oracle 閃回查詢Oracle
- 閃回資料庫測試之一 :關閉閃回的表空間是否可以開啟資料庫
- 閃回資料庫測試之二 :通過read only檢視閃回的結果資料庫
- Oracle 閃回技術 概覽 資料庫閃回功能Oracle資料庫
- Oracle -- 閃回恢復區---實踐1---閃回庫Oracle
- Oracle資料庫閃回Oracle資料庫
- Oracle閃回資料庫Oracle資料庫
- Oracle閃回恢復區Oracle
- oracle的閃回查詢Oracle
- oracle的回閃查詢Oracle
- Oracle 閃回特性(FLASHBACK DATABASE)OracleDatabase
- Oracle 閃回區(Oracle Flash recovery area)Oracle
- Oracle 11G 閃回技術 使用閃回版本查詢Oracle
- 某開發者上架 bundle應用測試閃退被駁回
- 閃回原理測試(二)(r11筆記第23天)筆記
- Oracle12.1閃回功能Oracle
- Oracle閃回資料歸檔Oracle
- Oracle閃回誤刪的表Oracle