一、配置闪回数据库
1、快闪恢复区
设置db_recovery_file_dest_size
alter system set db_recovery_file_dest_size=ng --n为数值大小,g为单位
设置db_recovery_file_dest
alter system set db_recovery_file_dest='/u01/app/oracle/flash_recovery_area'
2、归档模式
查询数据库的归档模式
SQL>select log_mode from v$database;
或者:
SQL>archive log list;
如果未归档则设置:
SQL>startup mount;
SQL>alter database archivelog;
3、设置db_flashback_retention_target
该参数默认值为1440,即为1天。如果想修改可使用下列方式修改:
SQL>alter system set db_flashback_retention_target=4320 --修改为三天。
4、启动闪回数据库
SQL>startup mount;
SQL>alter database flashback on;
查询数据库是否启用闪回数据库;
SQL>select flashback_on from v$database;
二、禁用闪回数据库
1、禁用整个数据库闪回
SQL>startup mount;
SQL>alter database flashabck off;
--一旦禁用,oracle将删除所有闪回日志。
2、禁用表空间闪回
SQL>alter tablespace tablespace_name flashback off;
也可以启用:
SQL>alter tablespace tablespace_name flashback on;
当然也可以在创建表空间时使用flashback on或者flashback off子句指定启用或者禁用闪回
如果表空间禁用闪回,则在闪回数据库时,该表空间必须脱机(offline)
三、闪回数据库
闪回数据库需要有sysdba权限
1、装载数据库
SQL>STARTUP MOUNT;
2、闪回数据库
SQL>flashback database to {{{scn | timestamp} eexpression} |{ before {scn |timestamp} expression}}
3、打开数据库
SQL>alter database open resetlogs;
在打开数据库之前,应该检查数据库的闪回是否达到了要求,如果没有达到要求,则可以再次闪回数据库,指定新的目标。如果闪过头了,则只能使用recover database until
进行恢复。
如果想撤销闪回操作,则可以使用recover database。
四、有关闪回数据库的限制
1、数据库必须处于归档模式
2、闪回数据库不能解决介质损坏问题,必须使用备份恢复
3、在闪回的时间范围内,不能复原或者重建控制文件。
4、不能闪回到resetlogs操作之前
5、闪回的时间范围受db_flashback_retention_target的限制