设为首页 收藏本站
查看: 516|回复: 0

[经验分享] Oracle 闪回表实验

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-10-15 08:57:51 | 显示全部楼层 |阅读模式
作业:闪回表实验
1.构造测试表flb_test,数据不小于10000行;
TEST_USER1@PROD>create table flb_test(id number,dd date);
Table created.
TEST_USER1@PROD>begin
  2  for i in 1..10000
  3  loop
  4  insert into flb_test values (i,sysdate+i);
  5  end loop;
  6  end;
  7  /
PL/SQL procedure successfully completed.
exec dbms_stats.gather_table_stats('TEST_USER1','FLB_TEST');
--收集统计信息

2.查询当前时间与scn号;
TEST_USER1@PROD>select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
TO_CHAR(SYSDATE,'YY
-------------------
2014-10-13 19:23:29
TEST_USER1@PROD>select dbms_flashback.get_system_change_number from dual;
GET_SYSTEM_CHANGE_NUMBER
------------------------
                 1144357
3.查看该测试表block数目及大小M;
TEST_USER1@PROD>select SEGMENT_NAME,BYTES/1024/1024 size_m, BLOCKS from user_segments   
  2  where SEGMENT_NAME='FLB_TEST';
SEGMENT_NAME        SIZE_M     BLOCKS
--------------- ---------- ----------
FLB_TEST               .25         32

4.在这张表的第一和第二列上,创建一个复合索引ind_flb;
TEST_USER1@PROD>create index ind_flb on flb_test(id,dd);
Index created.
5.查看该索引的叶子块的数目以及层数;
TEST_USER1@PROD>select INDEX_NAME,STATUS ,BLEVEL,LEAF_BLOCKS from dba_indexes
  2  where index_name ='IND_FLB';
INDEX_NAME                     STATUS       BLEVEL LEAF_BLOCKS
------------------------------ -------- ---------- -----------
IND_FLB                        VALID             1          33
   --平衡树:  高度=层数+1
TEST_USER1@PROD>select SEGMENT_NAME,BYTES/1024/1024 size_m, BLOCKS from user_segments
  2  where SEGMENT_NAME='FLB_TEST';
SEGMENT_NAME        SIZE_M     BLOCKS
--------------- ---------- ----------
FLB_TEST               .25         32

6.删除测试表中一半的记录数并提交;
TEST_USER1@PROD>delete from flb_test where id<=5000;
5000 rows deleted.
TEST_USER1@PROD>commit;
Commit complete.
TEST_USER1@PROD>select count(*) from flb_test;
  COUNT(*)
----------
      5000
TEST_USER1@PROD>exec dbms_stats.gather_table_stats('TEST_USER1','FLB_TEST');
PL/SQL procedure successfully completed.
TEST_USER1@PROD>exec dbms_stats.gather_index_stats('TEST_USER1','IND_FLB');
PL/SQL procedure successfully completed.
    --收集表和索引的统计信息
7.闪回fls_test到第二步查询到的时间点;
TEST_USER1@PROD>select table_name ,row_movement from user_tables;
TABLE_NAME                     ROW_MOVE
------------------------------ --------
SALARY                         ENABLED
SYS_TEMP_FBT                   DISABLED
FLB_TEST                       DISABLED
EMP                            DISABLED
TEST_USER1@PROD>alter table flb_test enable row movement;
Table altered.
TEST_USER1@PROD>select table_name ,row_movement from user_tables;
TABLE_NAME                     ROW_MOVE
------------------------------ --------
EMP                            DISABLED
FLB_TEST                       ENABLED
SYS_TEMP_FBT                   DISABLED
SALARY                         ENABLED
TEST_USER1@PROD>flashback table flb_test to timestamp to_timestamp('2014-10-13 19:23:29','yyyy-mm-dd hh24:mi:ss');
Flashback complete.

TEST_USER1@PROD>exec dbms_stats.gather_table_stats('TEST_USER1','FLB_TEST');
PL/SQL procedure successfully completed.
TEST_USER1@PROD>exec dbms_stats.gather_index_stats('TEST_USER1','IND_FLB');
PL/SQL procedure successfully completed.
    --收集表和索引的统计信息
    --Oracle只是闪回表,所有的东西都原样保留,应重新收集统计信息

8.查看闪回结果,以及索引状态;
TEST_USER1@PROD>select count(*) from flb_test;
  COUNT(*)
----------
     10000
TEST_USER1@PROD>select INDEX_NAME,STATUS ,BLEVEL,LEAF_BLOCKS from dba_indexes
  2  where index_name ='IND_FLB';
INDEX_NAME                     STATUS       BLEVEL LEAF_BLOCKS
------------------------------ -------- ---------- -----------
IND_FLB                        VALID             1          33


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-26056-1-1.html 上篇帖子: oralce的系统用户system的输入口令怎么找回?遇见ORA-28000: the account is locked怎么解锁? 下篇帖子: ORA-00600 qerpxInitialize Oracle
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

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