小伙伴们有没有在操作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分离 

 二、GUARANTEE时间核心区别概览

​特性

​Undo保留时间​

​Flashback保留时间​

​定义​

已提交事务的Undo数据保留最短时间

闪回功能可恢复的历史时间范围

​目的​

保障读一致性和事务回滚

支持数据库/表/查询的闪回操作

​参数​

UNDO_RETENTION(秒)

DB_FLASHBACK_RETENTION_TARGET(分钟)

​存储​

Undo表空间

闪回日志(Flashback Logs)

​依赖​

所有DML操作自动生成

需要显式启用闪回数据库功能

​单位​

分钟

1. ​Undo保留时间机制
  • 数据生命周期​:
    • Active → Unexpired(保留期内)→ Expired(可覆盖)
  • 关键特性​:
    • 最小保证​:非强制保留(除非RETENTION GUARANTEE)
    • 自动调整​:AUM模式下动态计算TUNED_UNDORETENTION
2. ​Flashback保留时间机制
  • 核心组件​:
    • 闪回缓冲区(SGA内存)
    • RVWR进程(Recovery Writer)
    • 闪回恢复区(Flash Recovery Area)
3. ​时间窗口关系
  • 关键约束​:闪回查询最大时间范围 ≤ Undo实际保留时间闪回数据库最大时间范围 ≤ Flashback保留时间

 

三、UNDO记录和flashback日志管理区别与关联

1. ​功能边界

Undo机制是事务级数据安全的基础,闪回技术依赖Undo并扩展为运维级恢复工具,两者协同保障Oracle的高可用性

​维度​

​Undo记录管理​

​闪回日志管理​

​核心目的​

支持事务回滚、读一致性、MVCC

实现整库/表级快速恢复(误操作回滚)

​存储机制​

存于Undo表空间,逻辑记录数据前镜像

存于闪回恢复区,物理记录块变化

​生命周期控制​

UNDO_RETENTION

+ 状态机(ACTIVE/UNEXPIRED/EXPIRED)

DB_FLASHBACK_RETENTION_TARGET

时间阈值

​空间重用​

EXPIRED状态自动覆盖

超时后自动删除

2. ​存储对比 

​特性​

​Undo存储​

​Flashback存储​

数据结构

行级前镜像

数据块级变化

写入频率

每次DML操作

每3秒或块变化时

存储位置

Undo表空间

闪回恢复区

空间回收

事务级自动回收

基于保留策略自动清理

四、配置与监控实战

1. 配置命令对比,Undo保留时间验证
-- Undo保留配置(动态)-- 1小时
ALTER SYSTEM SET UNDO_RETENTION = 3600;
System altered.
-- Flashback保留配置(需重启)1440=24小时
ALTER SYSTEM SET DB_FLASHBACK_RETENTION_TARGET=1440 SCOPE=SPFILE;
ALTER DATABASE FLASHBACK ON;-- 查看Undo配置及使用情况
SELECT tablespace_name, status, retention FROM dba_tablespaces WHERE contents = 'UNDO';
SELECT begin_time, end_time, tuned_undoretention FROM v$undostat;
--举例
SYS@CDB$ROOT> SELECT tablespace_name, status, retention FROM dba_tablespaces WHERE contents = 'UNDO';TABLESPACE_NAME    STATUS    RETENTION
__________________ _________ ______________
UNDOTBS1           ONLINE    NOGUARANTEESYS@CDB$ROOT> SELECT begin_time, end_time, tuned_undoretention FROM v$undostat;BEGIN_TIME    END_TIME        TUNED_UNDORETENTION
_____________ ____________ ______________________
23-JUN-25     23-JUN-25                      3600
23-JUN-25     23-JUN-25                      1207
22-JUN-25     22-JUN-25                       900
22-JUN-25     22-JUN-25                       900
139 rows selected.
 2. 监控脚本
-- Undo实际保留时间监测
SELECT TO_CHAR(BEGIN_TIME, 'YYYY-MM-DD HH24:MI') AS SNAPSHOT_TIME,TUNED_UNDORETENTION AS ACTUAL_RETENTION_SEC
FROM V$UNDOSTAT
ORDER BY BEGIN_TIME DESC
FETCH FIRST 24 ROWS ONLY;
--23ai
SNAPSHOT_TIME          ACTUAL_RETENTION_SEC
___________________ _______________________2025-06-23 06:27                        900
24 rows selected.
-- Flashback时间窗口检测
SELECT OLDEST_FLASHBACK_SCN,OLDEST_FLASHBACK_TIME,(SYSDATE - OLDEST_FLASHBACK_TIME)*24 * 60 AS ACTUAL_RETENTION_MIN
FROM V$FLASHBACK_DATABASE_LOG;
--23aiOLDEST_FLASHBACK_SCN OLDEST_FLASHBACK_TIME                            ACTUAL_RETENTION_MIN
_______________________ ________________________ ____________________________________________5420833 21-JUN-25                   2158.716666666666666666666666666666666672
 3. 关联性验证实验
-- 步骤1:设置不同保留时间
ALTER SYSTEM SET UNDO_RETENTION = 600;          -- 10分钟
ALTER SYSTEM SET DB_FLASHBACK_RETENTION_TARGET=30; -- 30分钟
--System altered.
-- 步骤2:创建测试表
CREATE TABLE flash_test AS SELECT * FROM all_objects;-- 步骤3:记录时间点
ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS';
SELECT SYSDATE AS START_TIME FROM DUAL;
--
START_TIME
______________________
2025-06-23 14:15:17
-- 步骤4:执行数据变更(延迟15分钟)
BEGINDBMS_LOCK.SLEEP(900);  -- 等待15分钟DELETE FROM flash_test;COMMIT;
END;
/-- 步骤5:测试闪回能力
-- 尝试10分钟前闪回查询(应成功)
SELECT COUNT(*) FROM flash_test AS OF TIMESTAMP SYSDATE - INTERVAL '10' MINUTE;
--COUNT(*)
___________0
-- 尝试20分钟前闪回查询(可能失败)
SELECT COUNT(*) FROM flash_test AS OF TIMESTAMP SYSDATE - INTERVAL '20' MINUTE;
-- 预期错误: ORA-01555
-- 尝试闪回数据库到15分钟前(应成功)
SHUTDOWN IMMEDIATE
STARTUP MOUNT
FLASHBACK DATABASE TO TIMESTAMP SYSDATE - INTERVAL '15' MINUTE;
ALTER DATABASE OPEN RESETLOGS;
4. 技术验证脚本​
​4.1. Flashback Query恢复误删数据
-- 场景:恢复10分钟前误删除的数据
CREATE TABLE fbtest_emp (id NUMBER, name VARCHAR2(50));
INSERT INTO fbtest_emp VALUES (1, 'flashback_USER');
COMMIT;-- 模拟误删除(10分钟后)
DELETE FROM fbtest_emp;
COMMIT;
--或者模拟删除后等待900s也就是15分钟
BEGINDBMS_LOCK.SLEEP(900);DELETE FROM fbtest_emp;COMMIT;
END;
/
-- 闪回查询恢复
INSERT INTO fbtest_emp 
SELECT * FROM fbtest_emp 
AS OF TIMESTAMP (SYSTIMESTAMP - INTERVAL '10' MINUTE);
 4.2. Flashback Table恢复误更新表​
-- 启用行移动
ALTER TABLE fbtest_emp ENABLE ROW MOVEMENT;-- 闪回至5分钟前状态
FLASHBACK TABLE fbtest_emp TO TIMESTAMP (SYSTIMESTAMP - INTERVAL '5' MINUTE);
 4.3 Flashback Drop恢复误删表​
-- 删除表并恢复
DROP TABLE fbtest_emp;
SHOW RECYCLEBIN; -- 查看回收站对象
FLASHBACK TABLE fbtest_emp TO BEFORE DROP;
 4.4. Flashback Database全库回滚​
-- 需提前启用Flashback Database
ALTER DATABASE FLASHBACK ON;-- 回退至1小时前
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
FLASHBACK DATABASE TO TIMESTAMP (SYSTIMESTAMP - INTERVAL '1' HOUR);
ALTER DATABASE OPEN RESETLOGS;

​场景​

​推荐技术​

​原因​

单行数据误改/误删

Flashback Query

无需停机,基于Undo快速恢复

整表误操作(Update/Delete)

Flashback Table

依赖Undo,恢复表至指定时间点

表误删除

Flashback Drop

通过回收站直接还原,无需备份

全库逻辑错误(如批量误删)

Flashback Database

分钟级回退,比RMAN PITR更快

长期审计追溯(>7天)

Flashback Data Archive

独立存储突破Undo时间限制

​关键限制​:
  • - Flashback Query/Table受限于UNDO_RETENTION,超时后失效 。
  • - Flashback Database不支持介质故障恢复(需RMAN)。
  • - 回收站对象在表空间空间不足时自动清除​
 5. 故障处理矩阵

​现象​

​相关保留时间​

​解决方案​

ORA-01555

Undo保留不足

增加UNDO_RETENTION或表空间

ORA-00600 [3020]

Flashback保留不足

增大DB_FLASHBACK_RETENTION_TARGET

闪回查询范围不足

Undo保留

延长Undo保留期+保证模式

闪回数据库失败

FB保留

增加保留时间或缩短恢复点

六、使用体验

  • Undo是基石​:支撑事务回滚、读一致性和短期闪回,但受限于空间和保留策略。
  • Flashback是扩展​:
    • 短期恢复(Query/Table)依赖Undo;
    • 对象级恢复(Drop)依赖回收站;
    • 长期追溯(FDA)需独立归档区 
Undo保留是Flashback功能的基础支撑,而Flashback保留是高级恢复能力扩展。在启用闪回数据库的场景下,
建议始终满足UNDO_RETENTION >= DB_FLASHBACK_RETENTION_TARGET*60,以保障全时点恢复能力。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/84853.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/84853.shtml
英文地址,请注明出处:http://en.pswp.cn/web/84853.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

单片机——浮点数转换4位数码管显示

浮点数转换4位数码管显示 static char buffer[5]; int DecimalPlace 0; #define HideChar h void DisplayFloatOn4LED(float value) {long integer roundf(value );if (integer > 9999) //4位{integer 9999;snprintf(buffer, sizeof(buffer), "%4ld", integer…

金融行业B端系统布局实战:风险管控与数据可视化的定制方案

摘要 在金融行业,一次小小的数据泄露可能引发千万级资金损失,一次错误的风险评估或许让企业陷入危机。传统 B 端系统布局在应对复杂多变的金融业务时,常出现风险预警滞后、数据杂乱无章的情况,让从业者如履薄冰。如何才能在瞬息万…

融合LSTM与自注意力机制的多步光伏功率预测新模型解析

这篇论文《Improved multistep ahead photovoltaic power prediction model based on LSTM and self-attention with weather forecast data》(2024, Applied Energy)聚焦在 多步光伏功率预测 中,如何结合 LSTM 与自注意力机制(se…

Blazor-内置输入组件

封装的输入组件 InputCheckbox:表示复选框。InputDate:表示类型为 date 的日期选择框。InputFile:表示文件上传。InputNumber:表示数字框。InputRadio:表示单选按钮。InputRadioGroup:表示单选按钮组。Inpu…

Qt源码分析: QChildEvent

本文记录QChildEvent事件相关代码分析。 注1:限于笔者研究水平,难免有表述不当,欢迎批评指正。 注2:博文会不定期更新,敬请关注。 一、QChildEvent的发送 分析QObject::setParent代码,当修改父对象时&…

《Whisper :说明书 》

[论文] [模型卡] [Colab 示例] Whisper 是一种通用的语音识别模型。它基于各种音频的大型数据集进行训练,也是一种多任务模型,可以执行多语言语音识别、语音翻译和语言识别。 方法 Transformer 序列到序列模型针对各种语音处理任务进行训练,…

回溯----8.N皇后

题目链接 /** 将n个棋子放在n*n的棋盘上,不同列,不同行,不同斜线 大致执行流程: 首先选取第一行第一格放置第一个棋子,再从第二行第一个位置开始选取合法的位置(不同行不同列不同斜线)放置棋子,重复上述流程迭代行数, 直到放置n个棋子。 若放置途中出现无合法位置的情况,回溯将…

微机电子拉伸试验机

对于不同材料的试样,由于其化学成分及组织的不同,在拉伸过程中会体现 出不同的物理现象及力学性质。西安力创(LETRY)公司专业制造WDL/WDW系列微机控制电子万能试验机,主要适用于金属板材、棒材、管材、金属丝、金属箔、…

【数据结构与算法】数据结构核心概念系统梳理

第一章 绪论:基础概念体系 🚩算法:问题求解步骤的描述。 🚩非递归的算法效率更高。 1.1 逻辑结构 vs 存储结构 维度逻辑结构存储结构(物理结构)定义数据元素之间的逻辑关系数据结构在计算机中的实现方式分类线性/树形/图/集合顺序/链式/索引/散列独立性独立于存储结构…

73页PPT | 大数据平台规划与数据价值挖掘应用咨询项目解决方案

推荐摘要:在数字化浪潮中,企业数据量呈几何级增长,却常因缺乏科学规划的大数据平台,陷入数据孤岛、处理效率低下的困境,难以充分挖掘数据价值。特推出大数据平台规划与数据价值挖掘应用咨询项目解决方案,正…

gRPC 与 Protobuf 的深度集成 —— 从服务定义到多语言交互(Go + Java 示例)

在前几篇文章中,我们已经掌握了 Protobuf 的基础语法、高级特性和序列化反序列化操作。本篇文章将深入讲解 gRPC 与 Protobuf 的集成,重点介绍如何通过 .proto 文件定义服务接口,并在 Go 和 Java 中实现 gRPC 服务与客户端的完整交互流程。我…

可信计算的基石:TPM技术深度解析与应用实践

可信计算的基石:TPM技术深度解析与应用实践 引言:数字世界的"信任之锚" 在数据泄露事件频发的时代,传统软件级安全防护已力不从心。TPM(可信平台模块)作为硬件级安全解决方案,正成为现代计算设…

「ECG信号处理——(18)基于时空特征的心率变异性分析」2025年6月23日

一、HRV概述 心率变异性(Heart rate variability ,HRV)分析是通过测量分析连续正常R-R间期的时间变化来反映心率的变化程度的,根据计算RR 序列的统计指标,或者是画出RR间期的直方图和散点图来反映HRV的大小情况。下面我们从男性与…

【学习笔记】深入理解Java虚拟机学习笔记——第10章 前端编译与优化

第10章 前端编译与优化 10.1 概述 1>前端编译器:Javac命令。 【.java文件->.class文件】 2>即时编译器:Hotspot.C1.C2 【.class文件->机器码】 3>提前编译器:JDK的Jaotc等【.java->机器码】 10.2 Javac 编译器 10.2.1 …

Python 区块链与Web3开发指南

https://www.python.org/static/community_logos/python-logo-master-v3-TM.png 区块链基础概念 区块链核心特性 python 复制 下载 class Block:def __init__(self, index, timestamp, data, previous_hash):self.index indexself.timestamp timestampself.data datas…

工业智能体调参闭环:从物料感知到智慧工艺的落地路径

用户定义目标:智能工艺的起点不是机器,而是人 在智能制造系统中,工艺调优的第一步并非直接依赖AI或自动化设备,而是始于用户的明确输入。用户需要在系统中定义产品的工艺要求,包括目标尺寸与规格(如长宽高…

【Linux学习笔记】进程间通信之共享内存

【Linux学习笔记】进程间通信之共享内存 🔥个人主页:大白的编程日记 🔥专栏:Linux学习笔记 文章目录 【Linux学习笔记】进程间通信之共享内存前言一. system V共享内存1.1 共享内存数据结构1.2 共享内存函数1.3 共享内存实现通信…

郭碧婷闯入女团赛道 与刘忻张予曦蔡诗芸组成ROLLING SISTERS

近日,郭碧婷与刘忻、张予曦、蔡诗芸组成的女团ROLLING SISTERS正式官宣,并发布《Rolling Life》《Alpha》两首单曲! 此次几位姐姐的组合让大家眼前一亮,尤其是郭碧婷造型颠覆以往。银灰色挑染短发搭配棱角分明的黑色烟熏妆&#x…

2025再升级:医疗数智立体化体系V2.0架构简介

在医疗数智立体化体系第一版基础上,融入量子物理的第一性原理计算、人工智能(AI)、高性能云计算(HPC)和标准化机器人自动化整合成“医疗数智立体化体系2.0”,代表了医疗研发未来的重要发展方向。这个体系的核心在于深度融合物理世界规律、智能计算与自动化执行,为医疗AI…

Day40 训练和测试的规范写法

目录 一、彩色和灰度图片测试和训练的规范写法:封装在函数中 单通道图片的规范写法 彩色图片的规范写法 二、展平操作:除第一个维度batchsize外全部展平 图像任务中的张量形状 NLP任务中的张量形状 1. Flatten操作 2. view/reshape操作 总结 三…