每天一个DBA小知识

312 阅读2分钟

「这是我参与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,增加闪回区空间