默认情况下,如果启用了闪回数据库,那么会记录所有表空间的闪回数据,但是使用如下命令可以关闭表空间的闪回属性:
SQL>alter tablespace flashback off;
或者使用如下开启表空间的闪回属性:
SQL>alter tablespace flashback on;
该命令只有数据库处于加载模式时才能执行。
为了查看闪回状态,V$TABLESPACE视图可以进行查询:
SYS@orcl 07-OCT-14>select name,flashback_on from v$tablespace;
NAME FLA
------------------------------ ---
SYSTEM YES
SYSAUX YES
TEMP2 YES
USERS YES
EXAMPLE YES
TEST YES
HH YES
GOODS YES
DATA01 YES
UNDOTBS2 YES
DATA02 YES
11 rows selected.
NAME FLA
------------------------------ ---
SYSTEM YES
SYSAUX YES
TEMP2 YES
USERS YES
EXAMPLE YES
TEST YES
HH YES
GOODS YES
DATA01 YES
UNDOTBS2 YES
DATA02 YES
11 rows selected.
注意,该信息显示在一个动态性能视图,而不是数据字典视图DBA_TABLESPACES中,因为是通过控制文件而不是数据字典启用闪回功能的。
对于那些与数据库其他部分相比可以容忍较长停机时间的表空间,只要愿意可以随时删除的表空间或可以快速还原和恢复的表空间来说,可以不执行闪回操作。
如果一个或多个表空间不生成闪回数据,那么在执行闪回操作之前必须使构成表空间的数据文件脱机。然后闪回(包括隐式的恢复)可以正常进行。要记住recover将忽略脱机数据文件----这与flashback是相同的。
在删除了构成脱机表空间的数据文件或将它们还原和恢复到与闪回相同的时间点之前,不能打开数据库(使用或不使用resetlogs)。删除它们是极端的做法,但是,如果它是一个能适时删除和重新创建表空间,并且可以重新实例化表空间内的对象,那么这样做可以最小化停机时间,否则,在闪回操作后使构成表空间的数据文件联机。然后,还原它们并执行不完全恢复,一直到闪回的时间点。这样做将同步所有数据文件,并且随后可以使用resetlogs打开它们。
提示:将一些表空间排除在闪回日志记录之外将有助于提高联机性能,但付出的代价是必须执行属于恢复过程的部分还原。这样做的通常仍然会比不完全恢复所需的完全还原更快速一些。