闪回版本

2024-03-20 00:38
文章标签 版本 闪回

本文主要是介绍闪回版本,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

oracle闪回版本查询提供了审计行数据变化的功能 ,可以跟踪一条记录在一段时间内的变化情况,即一条记录的多个提交版本信息(一个事物对应一条记录的操作结果就是该记录的一个版本),从而为数据的等级恢复提供了可能。在闪回版本查询中,返回的行数据中可以包括与已提交事物相关的伪列(ORA-ORWSCN),通过这些伪列可以了解数据库中的哪个事物何时对该行数据进行了哪些操作。

步骤1:在scott用户下创建test表,并进行相关的dml操作

SQL> conn scott/tiger
Connected.
SQL> drop table test purge;
Table dropped.
SQL> create table test (id number,ip number,ic number,iq number);
Table created
SQL> insert into test  values(1,2,3,4);
1 row created.
SQL> insert into test  values(4,4,3,4);
1 row created.
SQL> insert into test  values(2,2,2,2);
1 row created.
SQL> commit;
Commit complete.
SQL> select * from test;
ID   IP     IC IQ
---------- ---------- ---------- ----------
1    2      3  4
4    4      3  4
2    2      2  2
SQL> update test set id=100 where iq=4;
2 rows updated.
SQL> commit;
Commit complete.
SQL> select * from test;
ID   IP     IC IQ
---------- ---------- ---------- ----------
       100    2      3  4
       100    4      3  4
2    2      2  2

步骤2:查询roa_rowsc号,并获取更多历史信息
SQL> select ora_rowscn, id,ip,ic,iq from test;
ORA_ROWSCN   ID     IP IC   IQ
---------- ---------- ---------- ---------- ----------
   1163292  100      2  3    4
   1163292  100      4  3    4
   1163292    2      2  2    2

SQL> set linesize 1000
SQL> Select versions_xid,versions_startscn,versions_endscn,DECODE(versions_operation,'I','Insert','U','Update','D','Delete', 'Original') "Operation", id,ip,ic,iq from test versions between scn minvalue and maxvalue;


VERSIONS_XID            VERSIONS_STARTSCN        VERSIONS_ENDSCN    Operatio   ID       IP IC     IQ
----------------                     -----------------                               ---------------                        --------        ---------- ---------- ---------- ----------
06001F0095040000   1163292                                                                    Update  100 2  3      4
06001F0095040000   1163292                                                                    Update  100 4  3      4
05000E00DE030000   1163209                                                                     Insert             2         2  2      2
05000E00DE030000   1163209                                 1163292                            Insert             4         4  3      4
05000E00DE030000   1163209                                 1163292                             Insert    1         2  3      4

当然也可以在给定的范围时间内查询:


SELECT versions_startscn, versions_starttime, versions_endscn, versions_endtime, versions_xid, versions_operation, id
  FROM test
  VERSIONS BETWEEN TIMESTAMP
  TO_TIMESTAMP('2016-09-15 10:00:00', 'YYYY-MM-DD HH24:MI:SS')
  AND TO_TIMESTAMP('2016-09-15 10:15:00', 'YYYY-MM-DD HH24:MI:SS')
  WHERE iq = '4';

如果需要,可以将数据恢复到某个时刻的状态

这篇关于闪回版本的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/827740

相关文章

java中不同版本JSONObject区别小结

《java中不同版本JSONObject区别小结》本文主要介绍了java中不同版本JSONObject区别小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们... 目录1. FastjsON2. Jackson3. Gson4. org.json6. 总结在Jav

golang1.23版本之前 Timer Reset方法无法正确使用

《golang1.23版本之前TimerReset方法无法正确使用》在Go1.23之前,使用`time.Reset`函数时需要先调用`Stop`并明确从timer的channel中抽取出东西,以避... 目录golang1.23 之前 Reset ​到底有什么问题golang1.23 之前到底应该如何正确的

IDEA如何切换数据库版本mysql5或mysql8

《IDEA如何切换数据库版本mysql5或mysql8》本文介绍了如何将IntelliJIDEA从MySQL5切换到MySQL8的详细步骤,包括下载MySQL8、安装、配置、停止旧服务、启动新服务以及... 目录问题描述解决方案第一步第二步第三步第四步第五步总结问题描述最近想开发一个新应用,想使用mysq

java脚本使用不同版本jdk的说明介绍

《java脚本使用不同版本jdk的说明介绍》本文介绍了在Java中执行JavaScript脚本的几种方式,包括使用ScriptEngine、Nashorn和GraalVM,ScriptEngine适用... 目录Java脚本使用不同版本jdk的说明1.使用ScriptEngine执行javascript2.

Debian如何查看系统版本? 7种轻松查看Debian版本信息的实用方法

《Debian如何查看系统版本?7种轻松查看Debian版本信息的实用方法》Debian是一个广泛使用的Linux发行版,用户有时需要查看其版本信息以进行系统管理、故障排除或兼容性检查,在Debia... 作为最受欢迎的 linux 发行版之一,Debian 的版本信息在日常使用和系统维护中起着至关重要的作

你的华为手机升级了吗? 鸿蒙NEXT多连推5.0.123版本变化颇多

《你的华为手机升级了吗?鸿蒙NEXT多连推5.0.123版本变化颇多》现在的手机系统更新可不仅仅是修修补补那么简单了,华为手机的鸿蒙系统最近可是动作频频,给用户们带来了不少惊喜... 为了让用户的使用体验变得很好,华为手机不仅发布了一系列给力的新机,还在操作系统方面进行了疯狂的发力。尤其是近期,不仅鸿蒙O

什么是 Ubuntu LTS?Ubuntu LTS和普通版本区别对比

《什么是UbuntuLTS?UbuntuLTS和普通版本区别对比》UbuntuLTS是Ubuntu操作系统的一个特殊版本,旨在提供更长时间的支持和稳定性,与常规的Ubuntu版本相比,LTS版... 如果你正打算安装 Ubuntu 系统,可能会被「LTS 版本」和「普通版本」给搞得一头雾水吧?尤其是对于刚入

windows端python版本管理工具pyenv-win安装使用

《windows端python版本管理工具pyenv-win安装使用》:本文主要介绍如何通过git方式下载和配置pyenv-win,包括下载、克隆仓库、配置环境变量等步骤,同时还详细介绍了如何使用... 目录pyenv-win 下载配置环境变量使用 pyenv-win 管理 python 版本一、安装 和

Android实现任意版本设置默认的锁屏壁纸和桌面壁纸(两张壁纸可不一致)

客户有些需求需要设置默认壁纸和锁屏壁纸  在默认情况下 这两个壁纸是相同的  如果需要默认的锁屏壁纸和桌面壁纸不一样 需要额外修改 Android13实现 替换默认桌面壁纸: 将图片文件替换frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.*  (注意不能是bmp格式) 替换默认锁屏壁纸: 将图片资源放入vendo

PostgreSQL中的多版本并发控制(MVCC)深入解析

引言 PostgreSQL作为一款强大的开源关系数据库管理系统,以其高性能、高可靠性和丰富的功能特性而广受欢迎。在并发控制方面,PostgreSQL采用了多版本并发控制(MVCC)机制,该机制为数据库提供了高效的数据访问和更新能力,同时保证了数据的一致性和隔离性。本文将深入解析PostgreSQL中的MVCC功能,探讨其工作原理、使用场景,并通过具体SQL示例来展示其在实际应用中的表现。 一、