Bo's Oracle Station

查看: 1644|回复: 0

课程第21次

[复制链接]

1005

主题

1469

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
12012
发表于 2019-6-29 08:58:42 | 显示全部楼层 |阅读模式
SYS:
  1. select * from dba_tablespaces;

  2. select  * from dba_data_files;

  3. create tablespace tbs1 datafile size 20M autoextend off ;

  4. create flashback archive fda1 tablespace tbs1  quota 20M  retention 30 day;

  5. select  * from dba_flashback_archive;

  6. select  * from dba_flashback_archive_tables;

  7. select  * from dba_flashback_archive_ts;

  8. grant flashback  archive on  fda1 to hr;

  9. select  * from dba_tab_privs  tp where tp.grantee='HR';
复制代码
HR:
  1. SQL*Plus: Release 11.2.0.4.0 Production on Sat Jun 29 08:54:48 2019

  2. Copyright (c) 1982, 2013, Oracle.  All rights reserved.

  3. SQL> conn hr/hr
  4. Connected.
  5. SQL> create table t05311_a ( a  number ) ;

  6. Table created.

  7. SQL> insert into t05311_a values ( 1 );

  8. 1 row created.

  9. SQL> commit;

  10. Commit complete.

  11. SQL> select  * from t05311_a;

  12.          A
  13. ----------
  14.          1

  15. SQL> alter table t05311_a flashback archive fda1;

  16. Table altered.

  17. SQL>
复制代码
  1. select  o.object_name  , o.object_id
  2. from dba_objects o
  3. where o.owner='HR' and o.object_name='T05311_A';

  4. --87432

  5. select  * from dba_flashback_archive_tables t where
  6. t.table_name='T05311_A' and t.owner_name='HR';
复制代码

   TABLE_NAMEOWNER_NAMEFLASHBACK_ARCHIVE_NAMEARCHIVE_TABLE_NAMESTATUS
1T05311_AHRFDA1SYS_FBA_HIST_87432ENABLED

查看闪回数据归档,要做改动,要耐心等:
HR:
  1. SQL> select  * from hr.sys_fba_hist_87432;
  2. select  * from hr.sys_fba_hist_87432
  3.                   *
  4. ERROR at line 1:
  5. ORA-00942: table or view does not exist


  6. SQL>  select  * from t05311_a;

  7.          A
  8. ----------
  9.          1

  10. SQL> update t05311_a set a=2 ;

  11. 1 row updated.

  12. SQL> commit;

  13. Commit complete.

  14. SQL>  select  * from hr.sys_fba_hist_87432;
  15. select  * from hr.sys_fba_hist_87432
  16.                    *
  17. ERROR at line 1:
  18. ORA-00942: table or view does not exist


  19. SQL>  select  * from hr.sys_fba_hist_87432;

  20. RID
  21. --------------------------------------------------------------------------------
  22.   STARTSCN     ENDSCN XID              O          A
  23. ---------- ---------- ---------------- - ----------
  24. AAAVWIAAEAAAAInAAA
  25.               1286803                             1

复制代码
关于ENDSCN的解释:
HR:
  1. SQL>  select  * from t05311_a;

  2.          A
  3. ----------
  4.          2

  5. SQL> select * from t05311_a  as of scn 1286803 ;

  6.          A
  7. ----------
  8.          2

  9. SQL>  select * from t05311_a  as of scn 1286802;

  10.          A
  11. ----------
  12.          1

复制代码
试一试删除形式的DDL:
HR:
  1. SQL> create table t05311_b ( a  number , b varchar2(20))  ;

  2. Table created.

  3. SQL> insert into t05311_b values (1 , 'A');

  4. 1 row created.

  5. SQL> commit;

  6. Commit complete.

  7. SQL>
  8. SQL> alter table t05311_b  flashback archive;

  9. Table altered.

  10. SQL> update t05311_b  set a=2 ;

  11. 1 row updated.

  12. SQL> commit;

  13. Commit complete.

  14. SQL> alter table t05311_b drop (b) ;

  15. Table altered.

  16. SQL> update t05311_b  set a=3;

  17. 1 row updated.

  18. SQL> commit;

  19. Commit complete.

  20. SQL> select  * from t05311_b as of scn 1287466;

  21.          A
  22. ----------
  23.          2

  24. SQL> select  versions_xid, versions_startscn , versions_operation, a
  25.   2   from t05311_b
  26.   3  versions between scn minvalue and maxvalue;

  27. VERSIONS_XID     VERSIONS_STARTSCN V          A
  28. ---------------- ----------------- - ----------
  29. 1200120055000000           1287350 U          2
  30.                                               1
  31.                            1287467 U          2
  32. 0C001C0050000000           1287538 U          3

  33. SQL> ed
  34. Wrote file afiedt.buf

  35.   1  select  versions_xid, versions_startscn , versions_operation, a
  36.   2   from t05311_b
  37.   3  versions between scn minvalue and maxvalue
  38.   4* order by versions_startscn
  39. SQL> /

  40. VERSIONS_XID     VERSIONS_STARTSCN V          A
  41. ---------------- ----------------- - ----------
  42. 1200120055000000           1287350 U          2
  43.                            1287467 U          2
  44. 0C001C0050000000           1287538 U          3
  45.                                               1

  46. SQL>
复制代码
SYS:

  1. select * from hr.SYS_FBA_HIST_87439;
复制代码
   RIDSTARTSCNENDSCNXIDOPERATIONAD_1287355_B
1AAAVWPAAEAAAAIvAAA128735012874671200120055000000U2A
2AAAVWPAAEAAAAIvAAA 1287350 1A

-----------------------------------------------------------------------------------------------------------------------------
试一试FDA满空间出错:
(死锁是不会出现在首页告警的,快照太旧和不可扩展表空间的空间满是会出现在首页告警上的):
a.png


  1. SQL> begin
  2.   2    for i in 5398..10000
  3.   3    loop
  4.   4       update t05311_c set a='A'||to_char(i);
  5.   5       commit;
  6.   6    end loop;
  7.   7  end;
  8.   8  /







  9. begin
  10. *
  11. ERROR at line 1:
  12. ORA-55617: Flashback Archive "FDA1" runs out of space and tracking on
  13. "T05311_C" is suspended
  14. ORA-06512: at line 4
复制代码
  1. alter flashback archive fda1 modify  tablespace tbs1  quota 1G  ;
  2.   

  3. select  * from hr.SYS_FBA_HIST_87447;
复制代码
有结果了。

做复杂DDL操作:
  1. select  * from dba_tab_partitions tp
  2. where tp.table_owner='HR' and tp.table_name='T05311_E';



  3. begin
  4.     dbms_flashback_archive.disassociate_fba('HR','T05311_E');
  5. end;

  6. select  * from dba_flashback_archive_tables;

  7. select  * from hr.SYS_FBA_HIST_88721;

  8. insert into hr.SYS_FBA_HIST_88721(A)   values ( 6) ;


  9. alter table hr.t05311_e split partition p1 at ( 5)  into ( partition p11, partition p12 ) ;




  10. begin
  11.     dbms_flashback_archive.reassociate_fba('HR','T05311_E');
  12. end;

  13. select  * from dba_tab_partitions tp
  14.   where tp.table_owner='HR' and tp.table_name='T05311_E';
  15.   
  16.   
  17.   select  versions_xid , a  from hr.t05311_e
  18.    versions between scn minvalue and maxvalue ;
复制代码






回复

使用道具 举报

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

本版积分规则

QQ|手机版|Bo's Oracle Station   

GMT+8, 2024-5-20 16:08 , Processed in 0.035823 second(s), 27 queries .

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