Oracle中flashback table功能为什么需要开启row movement功能

本文通过示例介绍了在Oracle数据库中,为何在使用Flashback Table功能时需要开启Row Movement。通过创建和操作表,展示了在不启用Row Movement时遇到的错误,并在启用后成功执行Flashback Table操作。
摘要由CSDN通过智能技术生成
前言:
对于row movement的说明,网上的一些资料:
1.在flashback中使用,当需要使用flashback table功能时,需要首先打开row mvoement的选项,否则使用该功能会报错。
2.Shrink Segment能帮助我们压缩数据段、整理数据碎片、降低高水位,以提高性能、节省空间。它也同样要求开启ROW MOVEMENT。
3.一般用于分区表,将row movement设置为enable,有可能发生行的物理移动,行的rowdi会变化,某一行更新时,如果更新的是分区列,并且更新后的列值不属于原来的这个分区,如果开启了这个选项,就会把这行从这个分区中delete掉,并加到更新后所属的分区。相当于一个隐式的触发器,但不会触发Insert/delete触发器。如果没有开启这个选项,更新时就会报错。
这里只分析第一点。


操作系统版本:
  1. [oracle@oracle ~]$ uname -a
  2. Linux oracle.example.com 2.6.32-431.el6.x86_64 #1 SMP Sun Nov 10 22:19:54 EST 2013 x86_64 x86_64 x86_64 GNU/Linux
  3. [oracle@oracle ~]$ lsb_release -a
  4. LSB Version:    :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch
  5. Distributor ID: RedHatEnterpriseServer
  6. Description:    Red Hat Enterprise Linux Server release 6.5 (Santiago)
  7. Release:        6.5
  8. Codename:       Santiago

数据库版本:
  1. SYS@proc> SELECT * FROM V$VERSION WHERE ROWNUM=1;

  2. BANNER
  3. --------------------------------------------------------------------------------
  4. Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

注意事项:
无法对sys用户的表进行flashback table table_name to scn xxxxxx,如下:

  1. SYS@proc> create table t1 (id int);

  2. Table created.

  3. SYS@proc> insert
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值