当前位置: 首页 > news >正文

深入理解Oracle闪回技术

引言:

Oracle 闪回(Flashback)是一组强大的功能,用于恢复数据库中的数据或对象到过去的某个时间点或状态,而无需进行传统的基于备份和恢复的操作。

Oracle 闪回的主要类型

1. 闪回查询(Flashback Query)

  1. 功能描述:
    闪回查询允许用户查询过去某一特定时间点的数据状态。可以查看在某个时间点数据库中表的内容,就好像时间倒流回到了那个时刻。
  2. 应用场景:
    在这里插入图片描述
    –当用户误删除了一些数据,但不确定具体删除的时间,可以使用闪回查询来查找在不同时间点的数据,以确定数据丢失的时间范围。
    –用于分析数据的历史变化,比如跟踪某个业务指标随时间的变化情况。
  3. 使用方法:
    通过在 SQL 查询语句中添加 “AS OF TIMESTAMP” 或 “AS OF SCN” 子句来指定查询的时间点或系统改变号(SCN)。
    例如:
SELECT * FROM table_name AS OF TIMESTAMP TO_TIMESTAMP ('2024-10-20 12:30:00', 'YYYY-MM-DD HH24:MI:SS');

表示查询 table_name 表在 2024 年 10 月 20 日 12 点 30 分的状态。

2. 闪回版本查询(Flashback Version Query)

  1. 功能描述:
    闪回版本查询能够查询一个表在一段时间范围内数据行的所有版本变化。可以看到数据行的插入、更新和删除操作的历史记录。
  2. 应用场景:
    –用于审计数据的变化过程,确定是谁在什么时间对数据进行了哪些操作。
    –分析数据的演变趋势,了解数据的变化规律。
    使用方法:
    使用 “VERSIONS BETWEEN” 子句指定时间范围。例如:
SELECT * FROM table_name VERSIONS BETWEEN TIMESTAMP TO_TIMESTAMP ('2024-10-19 00:00:00', 'YYYY-MM-DD HH24:MI:SS') AND TO_TIMESTAMP ('2024-10-20 00:00:00', 'YYYY-MM-DD HH24:MI:SS');

查询 table_name 表在 2024 年 10 月 19 日到 10 月 20日之间数据行的所有版本。

3. 闪回事务查询(Flashback Transaction Query)

  1. 功能描述:
    可以查询特定事务的详细信息,包括事务的操作内容、影响的对象以及事务的开始和结束时间等。
  2. 应用场景:
    –当出现错误的事务影响了数据库的一致性时,可以使用闪回事务查询来确定错误事务的详细信息,以便进行回滚或修复操作。
    –用于分析数据库中事务的执行情况,找出可能存在性能问题或错误的事务。
  3. 使用方法:
    可以通过事务 ID 或者时间范围进行查询。例如:
SELECT * FROM FLASHBACK_TRANSACTION_QUERY WHERE XID = '01002F00A1000000';

查询事务 ID 为 “01002F00A1000000” 的事务信息。

4. 闪回表(Flashback Table)

  1. 功能描述:
    可以将一个表快速恢复到过去的某个时间点或系统改变号(SCN)的状态。
    应用场景:
    当表中的数据被误删除或误修改时,可以使用闪回表功能快速恢复表的状态,而无需从备份中进行恢复,节省时间和资源。
    使用方法:
    使用 “FLASHBACK TABLE” 语句指定要恢复的表和恢复的时间点或 SCN。例如:
FLASHBACK TABLE table_name TO TIMESTAMP TO_TIMESTAMP ('2024-10-19 10:00:00', 'YYYY-MM-DD HH24:MI:SS');

将 table_name 表恢复到 2024 年 10 月 19 日 10 点的状态。

5. 闪回数据库(Flashback Database)

  1. 功能描述:
    允许将整个数据库恢复到过去的某个时间点。
  2. 应用场景:
    当数据库发生严重的错误或数据损坏时,如果闪回日志保留了足够的信息,可以使用闪回数据库功能将数据库快速恢复到一个较早的、相对稳定的状态。
  3. 使用方法:
    首先将数据库启动到 MOUNT 状态,然后使用 “FLASHBACK DATABASE” 语句指定恢复的时间点。例如:
FLASHBACK DATABASE TO TIMESTAMP TO_TIMESTAMP ('2024-10-19 08:00:00', 'YYYY-MM-DD HH24:MI:SS');

将数据库恢复到 2024 年 10 月 19 日 8 点的状态。需要注意的是,闪回数据库需要启用闪回日志功能,并且在恢复过程中可能会丢失一些数据,具体取决于闪回日志的保留时间和数据库的活动情况。

6. 闪回数据归档(Oracle Total Recall)

在这里插入图片描述

  1. 功能描述:
    a. 长期数据历史存储
    –闪回数据归档能够将数据库表中数据的变化历史长期保存下来。它不像传统的闪回功能有时间限制,而是可以根据需求设置较长的保留期限,甚至可以保存数年的数据变化记录。
    –记录的数据包括每一次插入、更新和删除操作,以及操作的时间戳、用户信息等详细元数据。
    b. 细粒度的数据跟踪
    –可以对特定的数据库表进行精确的跟踪,确保记录下该表中每一行数据的变化历程。无论是单个字段的修改还是整行数据的更新,都能被完整地记录下来。
    –提供了丰富的元数据信息,使得在查询历史数据时可以了解到操作的具体情况,例如是谁在什么时间进行了何种操作。
    c. 高效的历史数据查询
    –用户可以使用类似闪回查询的语法,轻松地查询特定时间点或时间段内表中的数据状态。查询性能经过优化,即使面对大量的历史数据,也能快速返回结果。
    –支持多种查询条件,如根据时间范围、特定用户的操作、特定数据值的变化等进行筛选,以便准确地获取所需的历史数据。
    d. 数据一致性保证
    –在记录数据变化的过程中,确保历史数据的一致性和完整性。即使数据库发生了其他操作或故障,闪回数据归档中的历史数据也不会受到影响。
    –提供了数据恢复的可靠依据,在需要时可以将表恢复到特定历史时间点的状态,保证数据的准确性和可靠性。
  2. 闪回数据归档的应用场景
    a. 数据审计与合规性
    –对于金融、医疗、保险等行业,需要严格遵守法规要求,对数据的变化进行长期跟踪和审计。闪回数据归档可以提供详细的历史数据记录,满足审计需求,确保数据的合规性。
    –企业内部的审计部门可以利用闪回数据归档查询特定时间段内的数据变化,检查业务操作的合规性,发现潜在的风险和问题。
    b. 错误恢复与数据修复
    –当发生数据误操作、程序错误或数据库故障导致数据丢失或损坏时,可以使用闪回数据归档快速恢复到特定历史时间点的正确数据状态。
    –例如,用户误删除了重要数据,可以通过查询闪回数据归档,找到数据被删除之前的时间点,然后将表恢复到该状态,避免了从备份中恢复数据的繁琐过程。
    c. 数据分析与趋势研究
    –业务分析师可以利用闪回数据归档分析数据的历史变化趋势,了解业务的发展历程和变化规律。通过对比不同时间点的数据,发现业务的增长趋势、季节性变化等重要信息。
    –可以分析特定业务事件对数据的影响,例如促销活动、市场变化等,为决策提供有力支持。
    d.问题排查与故障诊断
    –在系统出现问题时,开发人员和管理员可以查询闪回数据归档,了解在问题发生前后数据的变化情况,从而确定问题的根源和影响范围。
    –例如,当系统出现性能问题时,可以查看在特定时间段内数据的访问模式和变化情况,找出可能导致性能下降的原因。

7.Oracle闪回技术使用场景总结:

下表总结了不同场景下应该使用的Oracle闪回技术,供大家参考。
在这里插入图片描述
本篇完结
码字不易,宝贵经验分享不易,请各位支持原创,转载注明出处,多多关注作者,后续不定期分享DB核心知识和排障案例及经验、性能调优等。

相关文章:

深入理解Oracle闪回技术

引言: Oracle 闪回(Flashback)是一组强大的功能,用于恢复数据库中的数据或对象到过去的某个时间点或状态,而无需进行传统的基于备份和恢复的操作。 Oracle 闪回的主要类型 1. 闪回查询(Flashback Query&…...

Go 语言初探

Google 公司有一个传统,允许员工利用 20% 的工作时间开发自己的实验项目。2007 年 9月,UTF-8 的设计者之一 Rob Pike(罗布.皮克)在 Google 的分布式编译平台上进行 C++ 编译时,与同事 Robert Griesemer (罗布.格里泽默)在漫长的等待中讨论了编程语言面临的主要问题。他们一…...

使用ROS资源编排一键部署LNMP建站环境,手动整理教程

LNMP是目前主流的网站服务器架构之一,适合运行大型和高并发的网站应用,例如电子商务网站、社交网络、内容管理系统等。LNMP分别代表Linux、Nginx、MySQL和PHP。本文阿里云服务器网aliyunfuwuqi.com介绍如何使用阿里云资源编排服务(ROS&#x…...

猎板PCB镍钯金工艺你了解多少?

PCB镍钯金工艺,也称为ENEPIG(Electroless Nickel Electroless PALLADIum Gold)工艺,是一种在PCB表面处理中使用的先进工艺。这种工艺通过在PCB线路板上形成一层镍钯合金层,有效地提高了线路板的耐氧化性、耐腐蚀性和可…...

热更新解决方案2 —— Lua语法相关知识点

概述 开发环境搭建 Lua语法 1.第一个Lua程序 2.变量 print("******变量*******"); --lua当中的简单变量类型 -- nil number string boolean -- lua 中所有的变量声明 都不需要声明变量类型 它会自动的判断类型 -- 类似C# 中的var --lua中的一个变量 可以随便赋值 ——…...

【c++ arx选项板】

static void xlArx_gmenu(void) {if (!g_pPaletteSetEx){g_pPaletteSetEx=CTunnelSectionPaletteSetEx::Instance(...

新时代下吉林省城乡流动人才就业问题及路径探析

摘要:新时代背景下,中国经济快速发展,城乡融合发展成为缩小城乡差距,推动共同富裕的重要方式。吉林省作为东北老工业基地,传统产业竞争优势减弱,城乡流动人才就业规模增加,并呈现“农村-城市”的…...

Go 1.19.4 命令调用、日志、包管理、反射-Day 17

1. 系统命令调用 所谓的命令调用,就是通过os,找到系统中编译好的可执行文件,然后加载到内存中,变成进程。 1.1 exec.LookPath(寻找命令) 作用: exec.LookPath 函数用于在系统的环境变量中搜索可…...

Unity 2d UI 实时跟随场景3d物体

2d UI 实时跟随场景3d物体位置&#xff0c;显示 3d 物体头顶信息&#xff0c;看起来像是场景中的3dUI&#xff0c;实质是2d UIusing System.Collections; using System.Collections.Generic; using UnityEngine; using DG.Tweening; using UnityEngine.UI; /// <summary>…...

全方面熟悉Maven项目管理工具(二)坐标、pom.xml文件的解读!

1. 坐标&#xff08;核心概念&#xff09; 1.1 数学中的坐标 使用 x、y、z 三个向量作为空间的坐标系&#xff0c;可以在空间中唯一的定位到一个点 1.2 Maven 中的坐标 1.2.1 向量说明&#xff1a; 使用三个向量在 Maven的仓库 中唯一的定位到一个 jar 包 groupId&#xf…...

php常用设计模式之单例模式

设计模式是我们日常开发中最常用的编程模式之一&#xff0c;也是面试中最高频的考点之一。通过合理运用设计模式&#xff0c;可以使代码结构更加清晰、易于维护。通过这篇文章 我也讲一下设计模式中的单例模式&#xff0c;了解下它的原理和适用场景。 单例模式 单例模式&…...

一文搞懂Android主题和样式

1. 概念与作用 1.1 定义与组成 Android Theme是用于定义应用程序或其部分的视觉和界面风格的一种资源。主题在Android中扮演着重要的角色&#xff0c;它们允许开发者统一和自定义应用的外观和感觉。一个主题定义了一组属性集合&#xff0c;这些属性可以是颜色、字体、控件样式…...

360与重庆科技大学战略携手,为数字中国建设输送实战人才

近日&#xff0c;360数字安全集团与重庆科技大学正式签订了战略合作协议&#xff0c;双方将围绕创新人才培养、科研技术攻关、专业实验室共建、车联网安全以及社会服务等多个维度展开深度合作&#xff0c;共同打造数字安全人才培养新高地&#xff0c;为数字重庆的建设与发展注入…...

基于异常合成的图像异常检测方法

基于异常合成的图像异常检测方法 基于异常合成思路实现图像异常检测的方法&#xff0c;它们的核心思路是&#xff1a; 试图通过合成异常样本穷尽所有可能出现的异常类型&#xff0c;从而将无监督的异常检测&#xff08;one class classification&#xff09;建模为一个全监督…...

机器学习方向在算法优化上有哪些创新点?

以下是机器学习算法优化方面的一些创新点: 一、优化算法自身的改进 随机梯度下降(SGD)的变体 Adagrad 传统的随机梯度下降算法使用固定的学习率,而Adagrad根据每个参数的历史梯度信息自适应地调整学习率。对于稀疏数据,它可以为不同的参数分配不同的学习率,使得频繁出现…...

基于yolov8的道路交通事故检测系统python源码+onnx模型+评估指标曲线+精美GUI界面

【算法介绍】 基于YOLOV8的道路交通事故检测系统是一种先进的智能交通监控解决方案&#xff0c;它利用YOLOV8这一前沿的目标检测算法&#xff0c;实现对交通事故的高效、实时检测。 该系统结合了自定义的道路交通事故数据集&#xff0c;对YOLOV8模型进行了针对性的训练与优化…...

HttpUtils 详解

一、详解 1.1 介绍 现如今的 Web 项目&#xff0c;由服务端向外发起网络请求的场景&#xff0c;基本上随处可见&#xff01; 传统情况下&#xff0c;在服务端代码里访问 http 服务时&#xff0c;一般会使用 JDK 的 HttpURLConnection 或者 Apache 的 HttpClient&#xff0c;不…...

云计算第四阶段: cloud二周目 07-08

cloud 07 一、k8s服务管理 创建服务 # 资源清单文件 [rootmaster ~]# kubectl create service clusterip websvc --tcp80:80 --dry-runclient -o yaml [rootmaster ~]# vim websvc.yaml --- kind: Service apiVersion: v1 metadata:name: websvc spec:type: ClusterIPselector…...

智能合约开发工具Remix

不久前&#xff0c;我在B站、视频号和 YouTube 都陆续发布了新的一套免费视频课程《智能合约开发工具Remix》&#xff0c;总共分为了 9 个小节的视频&#xff0c;以下分别是这 9 个小节在 B 站的视频链接&#xff0c;喜欢直接看视频的伙伴可以去 B 站观看&#xff1a; 概况文件…...

YYF桌面 1.2 | 个性化桌面体验,清爽美观。

YYF桌面是一款经过定制的安卓桌面启动器&#xff0c;此版本基于1.2版本进行了一系列个性化修改。主界面快捷图标进行了美化处理&#xff0c;并采用了清爽半透明的图标背景。取消了底部快捷键&#xff0c;并重新制作了“全部应用”按钮&#xff0c;保留了动态效果。修改了右上角…...

基于ASP.NET+ SQL Server实现(Web)医院信息管理系统

医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上&#xff0c;开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识&#xff0c;在 vs 2017 平台上&#xff0c;进行 ASP.NET 应用程序和简易网站的开发&#xff1b;初步熟悉开发一…...

Rust 异步编程

Rust 异步编程 引言 Rust 是一种系统编程语言,以其高性能、安全性以及零成本抽象而著称。在多核处理器成为主流的今天,异步编程成为了一种提高应用性能、优化资源利用的有效手段。本文将深入探讨 Rust 异步编程的核心概念、常用库以及最佳实践。 异步编程基础 什么是异步…...

OpenLayers 分屏对比(地图联动)

注&#xff1a;当前使用的是 ol 5.3.0 版本&#xff0c;天地图使用的key请到天地图官网申请&#xff0c;并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能&#xff0c;和卷帘图层不一样的是&#xff0c;分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...

JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案

JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停​​ 1. ​​安全点(Safepoint)阻塞​​ ​​现象​​:JVM暂停但无GC日志,日志显示No GCs detected。​​原因​​:JVM等待所有线程进入安全点(如…...

C++课设:简易日历程序(支持传统节假日 + 二十四节气 + 个人纪念日管理)

名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 专栏介绍:《编程项目实战》 目录 一、为什么要开发一个日历程序?1. 深入理解时间算法2. 练习面向对象设计3. 学习数据结构应用二、核心算法深度解析…...

多模态图像修复系统:基于深度学习的图片修复实现

多模态图像修复系统:基于深度学习的图片修复实现 1. 系统概述 本系统使用多模态大模型(Stable Diffusion Inpainting)实现图像修复功能,结合文本描述和图片输入,对指定区域进行内容修复。系统包含完整的数据处理、模型训练、推理部署流程。 import torch import numpy …...

yaml读取写入常见错误 (‘cannot represent an object‘, 117)

错误一&#xff1a;yaml.representer.RepresenterError: (‘cannot represent an object’, 117) 出现这个问题一直没找到原因&#xff0c;后面把yaml.safe_dump直接替换成yaml.dump&#xff0c;确实能保存&#xff0c;但出现乱码&#xff1a; 放弃yaml.dump&#xff0c;又切…...

解析“道作为序位生成器”的核心原理

解析“道作为序位生成器”的核心原理 以下完整展开道函数的零点调控机制&#xff0c;重点解析"道作为序位生成器"的核心原理与实现框架&#xff1a; 一、道函数的零点调控机制 1. 道作为序位生成器 道在认知坐标系$(x_{\text{物}}, y_{\text{意}}, z_{\text{文}}…...

电脑桌面太单调,用Python写一个桌面小宠物应用。

下面是一个使用Python创建的简单桌面小宠物应用。这个小宠物会在桌面上游荡&#xff0c;可以响应鼠标点击&#xff0c;并且有简单的动画效果。 import tkinter as tk import random import time from PIL import Image, ImageTk import os import sysclass DesktopPet:def __i…...

【PX4飞控】mavros gps相关话题分析,经纬度海拔获取方法,卫星数锁定状态获取方法

使用 ROS1-Noetic 和 mavros v1.20.1&#xff0c; 携带经纬度海拔的话题主要有三个&#xff1a; /mavros/global_position/raw/fix/mavros/gpsstatus/gps1/raw/mavros/global_position/global 查看 mavros 源码&#xff0c;来分析他们的发布过程。发现前两个话题都对应了同一…...