小伙伴们有没有在操作undo表空间、Flashback管理,时间保留设置,总有些配置需要提前预置好,否则闪回查询和表的时候出现报错。
需短期恢复(秒级~小时)直接上UNDO_RETENTION同时启用RETENTION GUARANTEE,Undo为Flashback Query/Table提供基础,时间短。
需全天候整库回退直接启用Flashback Database并设定DB_FLASHBACK_RETENTION_TARGET。通过独立存储实现强时间保证,需要大空间。
一、核心机制对比与联系
1. Undo机制
- 作用:存储数据修改前镜像(Before Image),支撑事务回滚、读一致性(MVCC)及闪回查询
- 存储位置:专用Undo表空间,按回滚段组织。
- 生命周期:
- 事务提交后数据保留时长由UNDO_RETENTION控制(默认900秒)
- 空间不足时未过期数据可能被覆盖(除非启用RETENTION GUARANTEE)
- 数据覆盖逻辑:
-- 查看Undo保留策略
SELECT tablespace_name, retention FROM dba_tablespaces WHERE contents = 'UNDO';
2. Flashback机制分类
| 类型 |
依赖组件 |
恢复粒度 |
时间窗口限制 |
| Flashback Query |
Undo表空间 |
行级 |
UNDO_RETENTION(默认15分钟) |
| Flashback Table |
Undo表空间 |
表级 |
同上 |
| Flashback Drop |
回收站(Recycle Bin) |
表及关联对象 |
表空间空间压力决定 |
| Flashback Database |
Flashback Logs |
数据库级 |
DB_FLASHBACK_RETENTION_TARGET (默认24小时) |
| Flashback Data Archive |
独立归档区 |
表级(长期) |
用户自定义(可达数年) |
3. 核心联系
- Undo是Flashback的基础:Flashback Query/Table直接读取Undo中的前镜像数据恢复历史状态
- 回收站是Flashback Drop的载体:被删除对象重命名后暂存于回收站,空间不足时自动清理
- Flashback Database依赖独立日志:使用Flashback Logs记录块变化,与Undo分离&nb

最低0.47元/天 解锁文章
870

被折叠的 条评论
为什么被折叠?



