闪回表专题
1、闪回表的前提
--------需要支持行移动特性
由于闪回表的操作会修改表里的数据,从而有可能引起数据行的迁移。比如某一行数据当前在A数据块里,
而在把表闪回到以前某个时间点时,在那个时间点上,该行数据位于B数据块里。于是在闪回表的操作中,
数据行从当前的A数据块转移到了B数据块,因此在闪回表之前,必须开启数据行的移动特性。
SQL>alter table table_name enable row movement;
取消行移动特性:
SQL>alter table table_name disable row movement;
--------用户需要具有闪回表的权限
SYS>grant execute on dbms_flashback to 用户名;
------------------
为了实验方便而赋予用户的权限
SYS>grant select on v_$database to 用户名;
检查行移动特性是否打开:
SQL>select row_movement from user_tables where table_name='TBNAME';
2、无法闪回表的情况(闪回表不可跨越DDL操作,系统表无法闪回) <
1、闪回表的前提
--------需要支持行移动特性
由于闪回表的操作会修改表里的数据,从而有可能引起数据行的迁移。比如某一行数据当前在A数据块里,
而在把表闪回到以前某个时间点时,在那个时间点上,该行数据位于B数据块里。于是在闪回表的操作中,
数据行从当前的A数据块转移到了B数据块,因此在闪回表之前,必须开启数据行的移动特性。
SQL>alter table table_name enable row movement;
取消行移动特性:
SQL>alter table table_name disable row movement;
--------用户需要具有闪回表的权限
SYS>grant execute on dbms_flashback to 用户名;
------------------
为了实验方便而赋予用户的权限
SYS>grant select on v_$database to 用户名;
检查行移动特性是否打开:
SQL>select row_movement from user_tables where table_name='TBNAME';
2、无法闪回表的情况(闪回表不可跨越DDL操作,系统表无法闪回) <