Oracle 数据库闪回通常设置在 DataGuard 备库,如果主库误删数据,可用备库闪回至删除点之前,获取丢失数据,然后再自动同步回来!

注意: 主库不建议
开启
闪回,首先影响性能,其次主库不可能为了某些数据去做闪回,所以很鸡肋!

那么,DataGuard 备库如何开启数据库闪回?

  • 需要有充足的磁盘空间

1、第一步,关闭 DataGuard 备库同步进程

1
2
3
4
5
6
7
8
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL; 


AI写代码sql



* 1

2、第二步,开启闪回功能

1
2
3
4
5
6
7
8
9
10
11
12
ALTER DATABASE FLASHBACK ON; 
alter system set db_recovery_file_dest='/oradata/fast_recovery_area' scope=spfile;
alter system set db_recovery_file_dest_size=100G scope=spfile;


AI写代码sql



* 1
* 2
* 3

注意:闪回目录 /oradata/fast_recovery_area 需要
物理
真是存在,设置的闪回区大小即闪回日志占用磁盘空间的上限!

3、第三步,重启备库生效,重新开启备库同步进程

1
2
3
4
5
6
7
8
9
10
11
12
shutdown immediate
startup mount
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;


AI写代码sql



* 1
* 2
* 3

4、第四步,检查闪回开启情况

1
2
3
4
5
6
7
8
9
10
11
12
13
14
select FLASHBACK_ON from v$database;
show parameter db_recovery_file_dest
show parameter db_recovery_file_dest_size
show parameter db_flashback_retention_target


AI写代码sql



* 1
* 2
* 3
* 4

开启闪回后,持续观察 🔎 一段时间,确认 100G 空间能够保留多久的闪回日志,大致推算出需要保存固定时间闪回日志的空间,根据实际情况进行修改!


本次分享到此结束啦~

如果觉得文章对你有帮助,点赞、收藏、关注、评论,一键四连支持,你的支持就是我创作最大的动力。

❤️
技术
交流可以 关注公众号:Lucifer三思而后行 ❤️