前言:
对于row movement的说明,网上的一些资料:
1.在flashback中使用,当需要使用flashback table功能时,需要首先打开row mvoement的选项,否则使用该功能会报错。
2.Shrink Segment能帮助我们压缩数据段、整理数据碎片、降低高水位,以提高性能、节省空间。它也同样要求开启ROW MOVEMENT。
3.一般用于分区表,将row movement设置为enable,有可能发生行的物理移动,行的rowdi会变化,某一行更新时,如果更新的是分区列,并且更新后的列值不属于原来的这个分区,如果开启了这个选项,就会把这行从这个分区中delete掉,并加到更新后所属的分区。相当于一个隐式的触发器,但不会触发Insert/delete触发器。如果没有开启这个选项,更新时就会报错。
这里只分析第一点。
操作系统版本:
数据库版本:
注意事项:
无法对sys用户的表进行flashback table table_name to scn xxxxxx,如下:
对于row movement的说明,网上的一些资料:
1.在flashback中使用,当需要使用flashback table功能时,需要首先打开row mvoement的选项,否则使用该功能会报错。
2.Shrink Segment能帮助我们压缩数据段、整理数据碎片、降低高水位,以提高性能、节省空间。它也同样要求开启ROW MOVEMENT。
3.一般用于分区表,将row movement设置为enable,有可能发生行的物理移动,行的rowdi会变化,某一行更新时,如果更新的是分区列,并且更新后的列值不属于原来的这个分区,如果开启了这个选项,就会把这行从这个分区中delete掉,并加到更新后所属的分区。相当于一个隐式的触发器,但不会触发Insert/delete触发器。如果没有开启这个选项,更新时就会报错。
这里只分析第一点。
操作系统版本:
- [oracle@oracle ~]$ uname -a
- 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
- [oracle@oracle ~]$ lsb_release -a
- 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
- Distributor ID: RedHatEnterpriseServer
- Description: Red Hat Enterprise Linux Server release 6.5 (Santiago)
- Release: 6.5
- Codename: Santiago
数据库版本:
- SYS@proc> SELECT * FROM V$VERSION WHERE ROWNUM=1;
-
- BANNER
- --------------------------------------------------------------------------------
- Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
注意事项:
无法对sys用户的表进行flashback table table_name to scn xxxxxx,如下:
- SYS@proc> create table t1 (id int);
-
- Table created.
-
- SYS@proc> insert