|
上完1Z0-053第10章(闪回8术中的5/8:1.闪回事务查询 2.闪回单点查询 3.闪回版本查询 4.闪回表 5.闪回事务)
上完1Z0-053第11章(闪回8术中的7/8:6.闪回数据归档 7.闪回删除表)
(052共19章,053共21章,063多租户共9章,49-14)
1. 两极-月亮-火星-土星闪回事务那个著名例子的脚本:
http://124.16.180.178:8080/studentguide_sec_O11g/1Z0-053-10/
游客,本帖隐藏的内容需要积分高于 100 才可浏览,您当前积分为 0
2. 关于DDL与闪回版本查询的现场演示(命令行部分):
- [root@station90 ~]# su - oracle
- [oracle@station90 ~]$ sqlplus /nolog
- SQL*Plus: Release 11.2.0.1.0 Production on Fri Dec 9 19:46:39 2016
- Copyright (c) 1982, 2009, Oracle. All rights reserved.
- SQL> conn hr/oracle_4U
- Connected.
- SQL> create table t05310_a ( a number , b varchar2(20)) ;
- Table created.
- SQL> insert into t05310_a values (1,'a') ;
- 1 row created.
- SQL> commit;
- Commit complete.
- SQL> update t05310_a set a=a+1 ;
- 1 row updated.
- SQL> commit;
- Commit complete.
- SQL> update t05310_a set a=a+1 ;
- 1 row updated.
- SQL> commit;
- Commit complete.
- SQL> update t05310_a set a=a+1 ;
- 1 row updated.
- SQL> commit;
- Commit complete.
- SQL> select * from t05319_a;
- select * from t05319_a
- *
- ERROR at line 1:
- ORA-00942: table or view does not exist
- SQL> select * from t05310_a;
- A B
- ---------- --------------------
- 4 a
- SQL> alter table t05319_a add (c date ) ;
- alter table t05319_a add (c date )
- *
- ERROR at line 1:
- ORA-00942: table or view does not exist
- SQL> alter table t05310_a add (c date ) ;
- Table altered.
- SQL> update t05310_a set a=a+1 , b='b' ,c=sysdate ;
- 1 row updated.
- SQL> commit;
- Commit complete.
- SQL> alter table t05310_a drop (a) ;
- Table altered.
- SQL> rename t05310_a to t05310_b;
- Table renamed.
- SQL> select * from t05310_a;
- select * from t05310_a
- *
- ERROR at line 1:
- ORA-00942: table or view does not exist
- SQL> select * from t05310_b;
- B C
- -------------------- ------------------
- b 09-DEC-16
- SQL> update t05310_b set b='c', c=sysdate ;
- 1 row updated.
- SQL> commit;
- Commit complete.
- SQL> select * from t05310_b;
- B C
- -------------------- ------------------
- c 09-DEC-16
- SQL> alter table t05310_b enable row movement;
- Table altered.
- SQL> alter table t05310_b disable row movement;
- Table altered.
- SQL> alter table t05310_b enable row movement;
- Table altered.
- SQL> flashback table t05310_b to scn 1088662;
- Flashback complete.
- SQL> select * from t05310_b;
- B C
- -------------------- ------------------
- b 09-DEC-16
- SQL> update t05310_b set b='bb' , c=sysdate ;
- 1 row updated.
- SQL> commit;
- Commit complete.
- SQL> select * from t05310_b;
- B C
- -------------------- ------------------
- bb 09-DEC-16
- SQL> alter table t05310_b drop (c) ;
- Table altered.
- SQL> select * from t05310_b;
- B
- --------------------
- bb
- SQL> flashback table t05310_b to scn 1088870;
- flashback table t05310_b to scn 1088870
- *
- ERROR at line 1:
- ORA-01466: unable to read data - table definition has changed
- SQL> update t05310_b set b='cc' ;
- 1 row updated.
- SQL> commit;
- Commit complete.
- SQL> update t05310_b set b='dd' ;
- 1 row updated.
- SQL> commit;
- Commit complete.
- SQL> select * from t05310_b;
- B
- --------------------
- cc
- SQL> drop table t05310_b;
- Table dropped.
- SQL> exit
- Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
- With the Partitioning, Automatic Storage Management, OLAP, Data Mining
- and Real Application Testing options
- [oracle@station90 ~]$ sqlplus /nolog
- SQL*Plus: Release 11.2.0.1.0 Production on Fri Dec 9 20:48:23 2016
- Copyright (c) 1982, 2009, Oracle. All rights reserved.
- SQL> conn hr/oracle_4U
- Connected.
- SQL> select * from t05310_b;
- select * from t05310_b
- *
- ERROR at line 1:
- ORA-00942: table or view does not exist
- SQL> create table t05310_c (a number ) ;
- Table created.
- SQL> select object_id from user_objects
- 2 where object_name='T05310_C';
- OBJECT_ID
- ----------
- 74593
- SQL> drop table t05310_c;
- Table dropped.
- SQL> conn / as sysdba
- Connected.
- SQL> desc tab$
- Name Null? Type
- ----------------------------------------- -------- ----------------------------
- OBJ# NOT NULL NUMBER
- DATAOBJ# NUMBER
- TS# NOT NULL NUMBER
- FILE# NOT NULL NUMBER
- BLOCK# NOT NULL NUMBER
- BOBJ# NUMBER
- TAB# NUMBER
- COLS NOT NULL NUMBER
- CLUCOLS NUMBER
- PCTFREE[ DISCUZ_CODE_3 ]nbsp; NOT NULL NUMBER
- PCTUSED[ DISCUZ_CODE_3 ]nbsp; NOT NULL NUMBER
- INITRANS NOT NULL NUMBER
- MAXTRANS NOT NULL NUMBER
- FLAGS NOT NULL NUMBER
- AUDIT[ DISCUZ_CODE_15 ]nbsp; NOT NULL VARCHAR2(38)
- ROWCNT NUMBER
- BLKCNT NUMBER
- EMPCNT NUMBER
- AVGSPC NUMBER
- CHNCNT NUMBER
- AVGRLN NUMBER
- AVGSPC_FLB NUMBER
- FLBCNT NUMBER
- ANALYZETIME DATE
- SAMPLESIZE NUMBER
- DEGREE NUMBER
- INSTANCES NUMBER
- INTCOLS NOT NULL NUMBER
- KERNELCOLS NOT NULL NUMBER
- PROPERTY NOT NULL NUMBER
- TRIGFLAG NUMBER
- SPARE1 NUMBER
- SPARE2 NUMBER
- SPARE3 NUMBER
- SPARE4 VARCHAR2(1000)
- SPARE5 VARCHAR2(1000)
- SPARE6 DATE
- SQL> select OBJ# , rowid from tab$
- 2 where OBJ# =74593;
- OBJ# ROWID
- ---------- ------------------
- 74593 AAAAACAABAAAUdPAAB
- SQL> conn hr/oracle_4U
- Connected.
- SQL> show recyclebin
- ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
- ---------------- ------------------------------ ------------ -------------------
- T05310_B BIN$QzokWulS4MXgUKjAWgBtDQ==$0 TABLE 2016-12-09:20:46:25
- T05310_C BIN$Qzo0O8nAG7HgUKjAWgBRyQ==$0 TABLE 2016-12-09:20:50:52
- SQL> purge table T05310_C;
- Table purged.
- SQL> show recyclebin
- ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
- ---------------- ------------------------------ ------------ -------------------
- T05310_B BIN$QzokWulS4MXgUKjAWgBtDQ==$0 TABLE 2016-12-09:20:46:25
- SQL> create table T05310_d ( a number ) ;
- Table created.
- SQL> drop table T05310_d purge ;
- Table dropped.
- SQL>
复制代码
3. 关于DDL与闪回的现场演示(PL/SQL Developer部分SYS登录):
select *
from flashback_transaction_query ftq
where ftq.table_name='T05310_A'
order by 2;
select *
from flashback_transaction_query ftq
where ftq.xid='0200100061030000';
-------
select * from dba_objects o
where o.object_name='T05310_B';
select * from tab$ t
where t.obj#=74590;
----
select *
from flashback_transaction_query ftq
where ftq.table_name='TAB$'
order by 2 desc;
----
alter database add supplemental log data ;
---
select d.SUPPLEMENTAL_LOG_DATA_MIN,
d.SUPPLEMENTAL_LOG_DATA_PK,
d.SUPPLEMENTAL_LOG_DATA_UI,
d.SUPPLEMENTAL_LOG_DATA_FK,
d.SUPPLEMENTAL_LOG_DATA_ALL
from v_$database d
;
----
alter database add supplemental log data (primary key) columns ;
4. 关于DDL与闪回的现场演示(PL/SQL Developer部分HR登录):
select versions_xid,
versions_startscn,
versions_operation,
b,
c
from t05310_b
versions between scn minvalue and maxvalue;
select t.TABLE_NAME,t.ROW_MOVEMENT,t.NUM_ROWS
from user_Tables t
where t.TABLE_NAME='T05310_B';
---
create table t05310_parent ( a number primary key ) ;
create table t05310_son ( aa number ) ;
alter table t05310_son add constraint fk_t05310
foreign key (aa ) references t05310_parent on delete cascade;
insert into t05310_parent values (1) ;
insert into t05310_son values (1) ;
delete from t05310_parent ;
select * from t05310_son;
|
|