Bo's Oracle Station

查看: 1853|回复: 0

课程第20/21/22次(2016-12-09星期五,2016-12-11星期日上下午)

[复制链接]

1005

主题

1469

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
12012
发表于 2016-12-10 11:02:46 | 显示全部楼层 |阅读模式
上完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与闪回版本查询的现场演示(命令行部分):
  1. [root@station90 ~]# su - oracle
  2. [oracle@station90 ~]$ sqlplus /nolog

  3. SQL*Plus: Release 11.2.0.1.0 Production on Fri Dec 9 19:46:39 2016

  4. Copyright (c) 1982, 2009, Oracle.  All rights reserved.

  5. SQL> conn hr/oracle_4U
  6. Connected.
  7. SQL> create table t05310_a ( a number , b varchar2(20)) ;

  8. Table created.

  9. SQL> insert into t05310_a values (1,'a') ;

  10. 1 row created.

  11. SQL> commit;

  12. Commit complete.

  13. SQL> update t05310_a set a=a+1  ;

  14. 1 row updated.

  15. SQL> commit;

  16. Commit complete.

  17. SQL> update t05310_a set a=a+1  ;

  18. 1 row updated.

  19. SQL> commit;

  20. Commit complete.

  21. SQL> update t05310_a set a=a+1  ;

  22. 1 row updated.

  23. SQL> commit;

  24. Commit complete.

  25. SQL> select * from t05319_a;
  26. select * from t05319_a
  27.               *
  28. ERROR at line 1:
  29. ORA-00942: table or view does not exist


  30. SQL> select * from t05310_a;

  31.          A B
  32. ---------- --------------------
  33.          4 a

  34. SQL> alter table t05319_a add (c date ) ;
  35. alter table t05319_a add (c date )
  36. *
  37. ERROR at line 1:
  38. ORA-00942: table or view does not exist


  39. SQL> alter table t05310_a add (c date ) ;

  40. Table altered.

  41. SQL> update t05310_a  set a=a+1 ,  b='b' ,c=sysdate ;

  42. 1 row updated.

  43. SQL> commit;

  44. Commit complete.

  45. SQL> alter table t05310_a drop (a) ;

  46. Table altered.

  47. SQL> rename t05310_a to t05310_b;

  48. Table renamed.

  49. SQL> select  * from t05310_a;
  50. select        * from t05310_a
  51.                *
  52. ERROR at line 1:
  53. ORA-00942: table or view does not exist


  54. SQL> select  * from t05310_b;

  55. B                     C
  56. -------------------- ------------------
  57. b                     09-DEC-16

  58. SQL> update t05310_b set b='c', c=sysdate ;

  59. 1 row updated.

  60. SQL> commit;

  61. Commit complete.

  62. SQL> select  * from t05310_b;

  63. B                     C
  64. -------------------- ------------------
  65. c                     09-DEC-16

  66. SQL> alter table t05310_b enable row movement;

  67. Table altered.

  68. SQL> alter table t05310_b disable row movement;

  69. Table altered.

  70. SQL> alter table t05310_b enable row movement;

  71. Table altered.

  72. SQL> flashback table t05310_b to scn 1088662;

  73. Flashback complete.

  74. SQL> select  * from t05310_b;

  75. B                     C
  76. -------------------- ------------------
  77. b                     09-DEC-16

  78. SQL>  update t05310_b set b='bb' , c=sysdate  ;

  79. 1 row updated.

  80. SQL> commit;

  81. Commit complete.

  82. SQL> select  * from t05310_b;

  83. B                     C
  84. -------------------- ------------------
  85. bb                     09-DEC-16

  86. SQL> alter table t05310_b drop (c) ;

  87. Table altered.

  88. SQL> select  * from t05310_b;

  89. B
  90. --------------------
  91. bb

  92. SQL> flashback table t05310_b to scn 1088870;
  93. flashback table t05310_b to scn 1088870
  94.                 *
  95. ERROR at line 1:
  96. ORA-01466: unable to read data - table definition has changed


  97. SQL>  update t05310_b set b='cc'   ;

  98. 1 row updated.

  99. SQL> commit;

  100. Commit complete.

  101. SQL>  update t05310_b set b='dd'   ;

  102. 1 row updated.

  103. SQL> commit;

  104. Commit complete.

  105. SQL> select  * from t05310_b;

  106. B
  107. --------------------
  108. cc

  109. SQL> drop  table t05310_b;

  110. Table dropped.

  111. SQL> exit
  112. Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
  113. With the Partitioning, Automatic Storage Management, OLAP, Data Mining
  114. and Real Application Testing options
  115. [oracle@station90 ~]$ sqlplus /nolog

  116. SQL*Plus: Release 11.2.0.1.0 Production on Fri Dec 9 20:48:23 2016

  117. Copyright (c) 1982, 2009, Oracle.  All rights reserved.

  118. SQL> conn hr/oracle_4U
  119. Connected.
  120. SQL> select  * from t05310_b;
  121. select        * from t05310_b
  122.                *
  123. ERROR at line 1:
  124. ORA-00942: table or view does not exist


  125. SQL> create table t05310_c (a number ) ;

  126. Table created.

  127. SQL> select object_id from user_objects
  128.   2   where object_name='T05310_C';

  129. OBJECT_ID
  130. ----------
  131.      74593

  132. SQL> drop table t05310_c;

  133. Table dropped.

  134. SQL> conn / as sysdba
  135. Connected.
  136. SQL> desc tab$
  137. Name                                           Null?    Type
  138. ----------------------------------------- -------- ----------------------------
  139. OBJ#                                           NOT NULL NUMBER
  140. DATAOBJ#                                            NUMBER
  141. TS#                                           NOT NULL NUMBER
  142. FILE#                                           NOT NULL NUMBER
  143. BLOCK#                                    NOT NULL NUMBER
  144. BOBJ#                                                    NUMBER
  145. TAB#                                                    NUMBER
  146. COLS                                           NOT NULL NUMBER
  147. CLUCOLS                                            NUMBER
  148. PCTFREE[        DISCUZ_CODE_3        ]nbsp;                                  NOT NULL NUMBER
  149. PCTUSED[        DISCUZ_CODE_3        ]nbsp;                                  NOT NULL NUMBER
  150. INITRANS                                   NOT NULL NUMBER
  151. MAXTRANS                                   NOT NULL NUMBER
  152. FLAGS                                           NOT NULL NUMBER
  153. AUDIT[        DISCUZ_CODE_15        ]nbsp;                                   NOT NULL VARCHAR2(38)
  154. ROWCNT                                             NUMBER
  155. BLKCNT                                             NUMBER
  156. EMPCNT                                             NUMBER
  157. AVGSPC                                             NUMBER
  158. CHNCNT                                             NUMBER
  159. AVGRLN                                             NUMBER
  160. AVGSPC_FLB                                            NUMBER
  161. FLBCNT                                             NUMBER
  162. ANALYZETIME                                            DATE
  163. SAMPLESIZE                                            NUMBER
  164. DEGREE                                             NUMBER
  165. INSTANCES                                            NUMBER
  166. INTCOLS                                   NOT NULL NUMBER
  167. KERNELCOLS                                   NOT NULL NUMBER
  168. PROPERTY                                   NOT NULL NUMBER
  169. TRIGFLAG                                            NUMBER
  170. SPARE1                                             NUMBER
  171. SPARE2                                             NUMBER
  172. SPARE3                                             NUMBER
  173. SPARE4                                             VARCHAR2(1000)
  174. SPARE5                                             VARCHAR2(1000)
  175. SPARE6                                             DATE

  176. SQL> select  OBJ#  , rowid from tab$
  177.   2   where OBJ# =74593;

  178.       OBJ# ROWID
  179. ---------- ------------------
  180.      74593 AAAAACAABAAAUdPAAB

  181. SQL> conn hr/oracle_4U
  182. Connected.
  183. SQL> show recyclebin
  184. ORIGINAL NAME         RECYCLEBIN NAME                OBJECT TYPE  DROP TIME
  185. ---------------- ------------------------------ ------------ -------------------
  186. T05310_B         BIN$QzokWulS4MXgUKjAWgBtDQ==$0 TABLE             2016-12-09:20:46:25
  187. T05310_C         BIN$Qzo0O8nAG7HgUKjAWgBRyQ==$0 TABLE             2016-12-09:20:50:52
  188. SQL> purge table T05310_C;

  189. Table purged.

  190. SQL> show recyclebin
  191. ORIGINAL NAME         RECYCLEBIN NAME                OBJECT TYPE  DROP TIME
  192. ---------------- ------------------------------ ------------ -------------------
  193. T05310_B         BIN$QzokWulS4MXgUKjAWgBtDQ==$0 TABLE             2016-12-09:20:46:25
  194. SQL> create table T05310_d ( a number ) ;

  195. Table created.

  196. SQL> drop table T05310_d purge ;

  197. Table dropped.

  198. 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;
     
  
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|Bo's Oracle Station   

GMT+8, 2024-4-20 19:48 , Processed in 0.046832 second(s), 27 queries .

快速回复 返回顶部 返回列表