「这是我参与2022首次更文挑战的第6天,活动详情查看:2022首次更文挑战」
闪回
Oracle Flashback闪回是从10g开始推出的一系列技术新特性。闪回Flashback的范围很广泛,包括Flashback Query、Flashback Database、Flashback Transaction和Flashback Drop等。
在Oracle 11g中,Oracle推出了flashback archive(闪回归档)的新特性。Flashback Archive实现了有针对性数据表的可控时间闪回功能。我们可以设置一块存储空间区域,保留一个特定数据表在不同时间的数据镜像。而且可以设置保留时间,没有达到保留时间的时候,数据都会进行保留。
启用闪回
条件:
- 1)启用了flashback database
- 2)必须打开flash recovery area,若为RAC,flash recovery area必须位于共享存储中。
- 3)必须处于archivelog模式,开启FORCE LOGGING
设置闪回的参数
alter system set db_recovery_file_dest_size=10g; ------指定闪回区大小
alter system set db_recovery_file_dest='/u01/app/oracle/archive'; -------指定闪回区路径
alter system set db_flashback_retention_target=1440; -------指定数据库可以回退的时间,默认为1440分钟,根据闪回区大小合理设置改值
alter database flashback on; -------启用闪回
将归档位置设为闪回区
oracle通过隐式的设置log_archive_dest_1='location= USE_DB_RECOVERY_FILE_DEST'来实现,如果之后你修改过log_archive_dest_n将归档日志保存到其他位置,也可以修改该参数继续使用闪回恢复区。 RAC的闪回恢复区必须位于共享磁盘上,能被所有实例访问。
取消闪回
alter database flashback off; ---停用闪回
alter system set db_recovery_file_dest=''; ----取消闪回区
alter system reset db_recovery_file_dest_size scope=spfile sid='*'; ----重置闪回区大小
注:DB_RECOVERY_FILE_DEST_SIZE 只有在 DB_RECOVERY_FILE_DEST 清空之后才可以清空。
查看闪回区使用空间
select * from v$flash_recovery_area_usage; ----11.2之前版本使用
select * from v$recovery_area_usage; ----11.2后可使用v$recovery_area_usage视图
select * from v$recovery_file_dest;
闪回空间不足的处理方法
- 1,修改归档路径
- 2,增加闪回区空间