關於flashback table的問題

2021-12-29 22:32:54 字數 2399 閱讀 7388

關於flashback table的問題

flashback  table 是使用undo tablespace 中的資料來實現 資料的回退的,如果要對錶進行flashback ,必須永許表 row movement。否則會出錯。

下面做個實驗驗證一下:

先檢視scott.dd表是否可以 row movement

[sql] 

sql> select row_movement from dba_tables where owner='scott' and table_name='dd';  

row_move  

--------  

disabled  

我們發現dd表row movement 不可用。在row movement 不可用的情況下,看是否能 flashback table。

[sql] 

sql> select current_scn from v$database;  

current_scn  

-----------  

7514420  

sql> delete from scott.dd;  

已刪除 1 行。  

sql> commit;  

提交完成。  

sql> flashback table scott.dd to scn 7514420;  

flashback table scott.dd to scn 7514420  

*  第 1 行出現錯誤:  

ora-08189: 因為未啟用行移動功能, 不能閃回表  

sql>  

經驗證:如果要對錶進行flashback ,必須永許表 row movement。

讓我們重新來一遍:

[sql] 

sql> select * from scott.dd;  

未選定行  

sql> insert into scott.dd values(2);  

已建立 1 行。  

sql> /  

已建立 1 行。  

sql> /  

已建立 1 行。  

sql> /  

已建立 1 行。  

[sql] 

sql> select * from scott.dd;  

h  ----------  

2  2  

2  2  

sql>  

先將dd表永許 row movement

[sql] 

sql> alter table scott.dd enable row movement;  

表已更改。  

sql> select row_movement from dba_tables where owner='scott' and table_name='dd';  

row_move  

--------  

enabled  

sql>  

重新驗證是否可以閃回dd表中的資料:

[sql] 

sql> select current_scn from v$database;  

current_scn  

-----------  

7515150  

sql> delete from scott.dd;  

已刪除4行。  

sql> commit;  

提交完成。  

sql> select * from scott.dd;  

未選定行  

sql> flashback table scott.dd to scn 7515150;  

閃回完成。  

查詢dd表中資料:

[sql] 

sql> select * from scott.dd;  

h  ----------  

2  2  

2  2  

sql>  

成功閃回

flashback table 命令支援同時操作多個表,表名以逗號分隔。

由於flashback table是基於undo的表恢復,因此對於truncate操作無法flashback  table。

補充:1:因為flashback table是基於undo進行的回退,因此受undo_retention引數的影響。為了保證能成功回退資料,在undo表空間中,你必須有足夠的資訊用於回退。

2:語法

[sql] 

flashback table tablename to timestamp to_timestamp('2013-04-24 11:13:48','yyyy-mm-dd hh24:mi:ss');  

flashback table gdf to scn 123456;  

關於程式關於世界

首先,在學了1年多的軟體設計的基礎上,問下自己 程式是什麼?業務需求是什麼?程式有什麼用?什麼是演算法?什麼是資料庫?或許每個人的理解不同,會給出不同的答案。那麼自己的理解 程式是乙個讓計算機工作的流程,在程式寫好之後,計算機就會按照,程式設計師定義好流程在執行。其實很多時候,乙個程式的好壞,在於乙...

關於血液關於軟體

1 自然沉降法 將血袋垂直吊掛於4 2 冰箱內,使紅細胞自然下沉1 3d,或將血袋呈70 80 角立於冰箱,需用時,用一次性分漿器分出血漿,制得濃縮紅細胞。2 洗滌法 一般用生理鹽水反覆洗滌3 6次。經洗滌的紅細胞,除白細胞和血小板減少外,血漿蛋白也極少,紅細胞中殘存的血漿蛋白含量約為原總蛋白的1 ...

關於冷漠,關於愛情

我不知道為什麼今天又莫名其妙開始思考愛情這件事,隨之就解決了我一直無法面對冷漠這件事 被冷漠是我始終無法消化的一件事,每當遇見冷漠時,我總會覺得就像一團火把自己燒得面目全非,但對方卻毫無傷害。但我突然懂了,遇到冷漠時,體面的離開即可 在乎你的人一定會在你離開後,找到你跟你解釋為什麼 連解釋都來不及,...