影響flashback table的操作!
14:32:24 SQL> create table tt(id int) rowdependencies tablespace users;
表已建立。
14:32:57 SQL> insert into tt values(1);
已建立 1 行。
14:33:12 SQL> insert into tt values(2);
已建立 1 行。
14:33:14 SQL> insert into tt values(3);
已建立 1 行。
14:33:16 SQL> commit;
提交完成。
14:33:18 SQL> select id ,ora_rowscn from tt;
ID ORA_ROWSCN
---------- ----------
1 1739405
2 1739405
3 1739405
14:33:32 SQL> update tt set id=100;
已更新3行。
14:33:40 SQL> commit;
提交完成。
14:33:42 SQL> select id ,ora_rowscn from tt;
ID ORA_ROWSCN
---------- ----------
100 1739414
100 1739414
100 1739414
14:33:44 SQL> flashback table tt to scn 1739405;
flashback table tt to scn 1739405
*
第 1 行出現錯誤:
ORA-08189: 因為未啟用行移動功能, 不能閃回表
14:34:12 SQL> select id ,ora_rowscn,rowid from tt;
ID ORA_ROWSCN ROWID
---------- ---------- ------------------
100 1739414 AAACi2AAEAAAAAcAAA
100 1739414 AAACi2AAEAAAAAcAAB
100 1739414 AAACi2AAEAAAAAcAAC
14:34:24 SQL> select row_movement,table_name from user_tables;
ROW_MOVE TABLE_NAME
-------- ------------------------------
DISABLED TT
14:34:43 SQL> alter table tt enable row movement;
表已更改。
14:35:38 SQL> select row_movement,table_name from user_tables;
ROW_MOVE TABLE_NAME
-------- ------------------------------
ENABLED TT
14:35:41 SQL> flashback table tt to scn 1739405;
閃回完成。
14:35:46 SQL> select id ,ora_rowscn,rowid from tt;
ID ORA_ROWSCN ROWID
---------- ---------- ------------------
1 1739478 AAACi2AAEAAAAAcAAD
2 1739478 AAACi2AAEAAAAAcAAE
3 1739478 AAACi2AAEAAAAAcAAF
14:35:58 SQL> flashback table tt to scn 1739405;
閃回完成。
14:41:01 SQL> select id ,ora_rowscn,rowid from tt;
ID ORA_ROWSCN ROWID
---------- ---------- ------------------
1 1739596 AAACi2AAEAAAAAcAAA
2 1739596 AAACi2AAEAAAAAcAAB
3 1739596 AAACi2AAEAAAAAcAAC
--flashback table之後rowid發生了變化
14:41:02 SQL> alter table tt add name varchar2(10) default 'a';
表已更改。
14:41:29 SQL> desc tt
名稱 是否為空? 型別
----------------------------------------- -------- ----------------------------
ID NUMBER(38)
NAME VARCHAR2(10)
14:41:32 SQL> select * from tt;
ID NAME
---------- ----------
1 a
2 a
3 a
--給表增加欄位不影響flashback
14:41:35 SQL> flashback table tt to scn 1739405;
閃回完成。
14:41:46 SQL> select id ,ora_rowscn,rowid from tt;
ID ORA_ROWSCN ROWID
---------- ---------- ------------------
1 1739629 AAACi2AAEAAAAAcAAD
2 1739629 AAACi2AAEAAAAAcAAE
3 1739629 AAACi2AAEAAAAAcAAF
14:41:47 SQL> alter table tt drop column name;
表已更改。
14:42:13 SQL> select id ,ora_rowscn,rowid from tt;
ID ORA_ROWSCN ROWID
---------- ---------- ------------------
1 1739629 AAACi2AAEAAAAAcAAD
2 1739629 AAACi2AAEAAAAAcAAE
3 1739629 AAACi2AAEAAAAAcAAF
14:42:16 SQL> flashback table tt to scn 1739405;
flashback table tt to scn 1739405
*
第 1 行出現錯誤:
ORA-01466: 無法讀取資料 - 表定義已更改
--增加columns不影響flashback,再次drop column之後影響flashback
14:42:18 SQL> desc tt
名稱 是否為空? 型別
----------------------------------------- -------- ----------------------------
ID NUMBER(38)
14:48:20 SQL> desc tt
名稱 是否為空? 型別
----------------------------------------- -------- ----------------------------
ID NUMBER
14:50:36 SQL> select * from tt;
ID
----------
1
2
3
14:50:55 SQL> alter table tt add name varchar2(10) default 'a';
表已更改。
14:51:06 SQL> select *from tt;
ID NAME
---------- ----------
1 a
2 a
3 a
14:51:09 SQL> select id,name ora_rowscn from tt;
ID ORA_ROWSCN
---------- ----------
1 a
2 a
3 a
14:51:17 SQL> select id,name ,ora_rowscn from tt;
ID NAME ORA_ROWSCN
---------- ---------- ----------
1 a 1739837
2 a 1739837
3 a 1739837
14:51:56 SQL> insert into tt values(4,'b');
已建立 1 行。
14:52:01 SQL> commit;
提交完成。
14:52:02 SQL> select id,name ,ora_rowscn from tt;
ID NAME ORA_ROWSCN
---------- ---------- ----------
4 b 1739915
1 a 1739837
2 a 1739837
3 a 1739837
14:52:04 SQL> flashback table tt to scn 1739837;
閃回完成。
14:52:26 SQL> select id,name ,ora_rowscn from tt;
ID NAME ORA_ROWSCN
---------- ---------- ----------
1 a 1739936
2 a 1739936
3 a 1739936
14:52:29 SQL> insert into tt values(4,'b');
已建立 1 行。
14:52:37 SQL> commit;
提交完成。
14:52:38 SQL> select id,name ,ora_rowscn from tt;
ID NAME ORA_ROWSCN
---------- ---------- ----------
1 a 1739936
2 a 1739936
3 a 1739936
4 b 1739941
14:52:40 SQL> alter table tt modify name varchar2(20);
表已更改。
14:52:55 SQL> select id,name ,ora_rowscn from tt;
ID NAME ORA_ROWSCN
---------- -------------------- ----------
1 a 1739936
2 a 1739936
3 a 1739936
4 b 1739941
14:53:00 SQL> flashback table tt to scn 1739837;
flashback table tt to scn 1739837
*
第 1 行出現錯誤:
ORA-01466: 無法讀取資料 - 表定義已更改
14:53:10 SQL>
--修改column寬度影響flashback table操作
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/19602/viewspace-1022631/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- alter table新增欄位操作究竟有何影響?(上篇)
- alter table新增欄位操作究竟有何影響?(下篇)
- 【Flashback】Flashback Table功能實踐
- flashback技術之---flashback table
- 壓縮table and index 對 space 的影響testIndex
- shrink 操作對索引的影響索引
- Update操作對索引的影響索引
- oracle flashback特性(2.1)--Flashback Table之RECYCLEBINOracle
- table_open_cache引數對mysql效能的影響MySql
- 關於drop操作對role的影響
- 應用oracle flashback--Flashback Table之RECYCLEBINOracle
- 批操作效能影響診斷
- Flashback database與flashback table使用條件區別Database
- 【徵文】應用oracle flashback(2.1)--Flashback Table之RECYCLEBINOracle
- reverse index 對於 MAX/MIN操作的影響Index
- Oracle10g中FLASHBACK TABLE語句恢復DML誤操作Oracle
- 分割槽表的不同操作對索引的影響索引
- flashback drop/query/table/database/archiveDatabaseHive
- 全面學習oracle flashback特性(2.1)--Flashback Table之RECYCLEBINOracle
- oracle點陣圖索引對DML操作的影響Oracle索引
- mysql刪除和更新操作對效能的影響MySql
- Nologging操作對standby的影響 (zt)
- DDL,DML操作對結果快取的影響快取
- CONTEXT索引對COMMIT操作的影響 (ZT)Context索引MIT
- oracle flashback特性(2.2)--Flashback Table之從UNDO中恢復Oracle
- 【徵文】應用oracle flashback(2.3)--Flashback Table之注意事項Oracle
- oracle flashback特性(3.2)--Flashback Database操作示例OracleDatabase
- mysql的DDL操作對業務產生影響測試MySql
- 深度評測丨 GaussDB(for Redis) 大 Key 操作的影響Redis
- 操作分割槽表對global和local索引的影響索引
- 全面學習oracle flashback特性(2.3)--Flashback Table之注意事項Oracle
- 【徵文】應用oracle flashback(2.2)--Flashback Table之從UNDO中恢復Oracle
- 對列進行連線操作會影響索引的使用索引
- 【徵文】應用oracle flashback(3.2)--Flashback Database操作示例OracleDatabase
- 全面學習oracle flashback特性(2.2)--Flashback Table之從UNDO中恢復Oracle
- sys使用者不支援flashback table特性!
- jquery對table的操作jQuery
- oracle分割槽表的常規操作導致對索引的影響Oracle索引