Oracle数据库闪回功能的详解和相关命令

这篇具有很好参考价值的文章主要介绍了Oracle数据库闪回功能的详解和相关命令。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

今日看了Oracle原厂老师讲的数据库闪回技术的公开课,感觉受益匪浅。整理了一下关于数据库闪回功能的一些知识和相关测试,在此做下分享。

什么是闪回?

Oracle数据库闪回技术是一组独特而丰富的数据恢复解决方案,通过有选择地、有效地消除错误的影响,可以逆转人为错误。
查看数据的过去状态
可沿时间轴向前或向后闪回
协助用户进行错误分析和恢复
简单的命令行操作(或者DBMS_FLASHBACK包)
闪回时间与数据库大小无关

闪回支持不同级别的恢复,包括行、事务、表和整个数据库:
Flashback Database
Flashback Table
Flashback Drop
Flashback Transaction
Flashback Transaction Query
Flashback Query
Flashback Version Query
oracle闪回,数据库,oracle,sql,dba

基于UNDO的闪回:闪回查询、闪回版本查询、闪回表

闪回查询技术

闪回查询某精确时间点
select * from table_name AS OF TIMESTAMP TO_TIMESTAMP('2023-02-23 13:14:00', 'YYYY-MM-DD HH24:MI:SS');
闪回查询到多久之前(例如 一分钟前)
select * from table_name AS OF TIMESTAMP sysdate-1/24/60;
闪回查询到指定scn
select * from table_name as of scn 55124124;

闪回版本查询技术

查看某一时间段内数据的变化

SELECT versions_startscn,
       versions_starttime,
       versions_endscn,
       versions_endtime,
       versions_xid,
       versions_operation,
       last_name,
       salary
  FROM employees VERSIONS BETWEEN TIMESTAMPTO_TIMESTAMP('2023-03-08 14:00:00', 'YYYY-MM-DD HH24:MI:SS') AND TO_TIMESTAMP('2023-03-08 17:00:00', 'YYYY-MM-DD HH24:MI:SS')
 WHERE first_name = 'John';

字段含义
VERSIONS_STARTSCN:数据版本被创建时的SCN
VERSIONS_STARTTIME:数据版本被创建时的时间戳
VERSIONS_ENDSCN:数据版本消逝时的SCN
VERSIONS_ENDTIME:数据版本消逝时的时间戳
VERSIONS_XID:数据版本被创建时的事务号
VERSIONS_OPERATION: 数据版本创建时的事务类型

闪回表技术

可以将表恢复到过去的指定时间点

开启行移动功能
alter table table_name enable row movement;
闪回表到指定时间点
flashback table table_name to timestamp to_timestamp('2023-02-23 13:14:00','yyyy-mm-dd hh24:mi:ss');
闪回表到多久之前
flashback table table_name to timestamp to sysdate-1/24/60;
闪回表到指定scn号
flashback table table_name to scn 3823947923;

FDA闪回数据归档技术

因为undo有保留时间限制,可以被覆盖,时间久远的数据无法通过undo进行闪回,此时可以利用闪回数据归档技术,根据时间限制将undo数据持久化在其他表空间上,不受undo的时间限制
闪回数据归档步骤:
创建一个供闪回数据库使用的表空间在该表空间
创建闪回数据归档,时间期限自定义
创建一个用户并授予DBA的角色
授予用户操作的必要权限登录
创建一个表启用闪回数据归档
执行查询来确定归档创建的对象

先创建普通表空间   然后在表空间中创建FDA
CREATE FLASHBACK ARCHIVE DEFAULT fla1 TABLESPACE tbs1QUOTA 10G RETENTION 1 YEAR;

基于Recyclebin(回收站)的闪回删除技术

闪回删除技术:
针对非system 表空间
适用于通过drop 操作和非purge 的方式删除的对象可以在recyclebin使用闪回删除操作还原删除的对象(包括相关索引,约束,触发器)

回收站(recycle bin)
通过数据字典视图快速查看:USER_RECYCLEBIN 和DBA_RECYCLEBIN。
删除的表在回收站中被重新命名

闪回被删除的表
flashback table table_name to before drop;

基于闪回数据库日志的闪回数据库技术

需开启数据库闪回日志
查看数据库是否开启闪回日志
select flashback_on from v$database;
oracle闪回,数据库,oracle,sql,dba
开启闪回日志之前必须要设置闪回恢复区的路径和大小
show parameter recover
oracle闪回,数据库,oracle,sql,dba文章来源地址https://www.toymoban.com/news/detail-539287.html

开启闪回日志
alter database flashback on;
闪回数据库:把数据库闪回到过去的时间点,针对逻辑故障,或者对相同数据做循环迭代测试。
flashback database to timestamp to_timestamp('2023-03-08 16:18:00','yyyy-mm-dd hh24:mi:ss');

到了这里,关于Oracle数据库闪回功能的详解和相关命令的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SQlite3数据库相关相关命令

    1. 创建表格 2. 插入数据 3. 查看数据库记录 4. 删除信息 5. 更新数据 6. 增加一列 7. 删除一列 (sqlite3 不支持直接删除一列) 1. 打开数据库 2. 关闭数据库 3. 错误信息 4. 执行一条sql语句 5. 查询回调函数 6. 查询函数 小知识:如果结构体中定义的是一级指针,那么你要定义变量取

    2024年02月16日
    浏览(51)
  • Linux下Oracle的数据库和监听启动关闭命令

    sqlplus /nolog conn /as sysdba connect sys/123456 as sysdba; (123456为用户密码) startup startup命令它有三种情况: 第一种:不带参数,启动数据库实例并打开数据库,以便用户使用数据库,在多数情况下,使用这种方式! 第二种:带nomount参数,只启动数据库实例,但不打开数据库,在你希

    2024年02月04日
    浏览(77)
  • Oracle使用exp和imp命令实现数据库导出导入

    Oracle和MySQL在SQL语法和一些数据库特性上有一些差异,以下是一些常见的差异: 数据类型: Oracle和MySQL支持的数据类型有所不同。例如,Oracle支持 NUMBER 、 DATE 、 VARCHAR2 等类型,而MySQL支持 INT 、 DATE 、 VARCHAR 等类型。 字符串比较: 在 Oracle 中,字符串比较默认是区分大小写

    2024年02月22日
    浏览(47)
  • 导出Oracle数据库sqlplus命令行查询的结果到文件

    在Oracle数据库sqlplus命令行操作时,如果想将SQL查询出来的结果导出到文件中,可以使用SQLPlus中的 SPOOL 命令来将查询结果导出到文件。 1.开启日志记录:使用SPOOL命令,指定需要输出的文件路径及文件名。例如: SPOOL /存放路径/oracle.txt 2.执行SQL查询语句:你可以输入任何需要

    2024年02月15日
    浏览(36)
  • PLSQL连接Oracle 数据库配置详解

    1. 下载instantclient-basic-win32-11.2.0.1.0 Oracle Instant Client - Free tools and libraries for connecting to Oracle Database (oracle官网下载地址:http://www.oracle.com/technetwork/topics/winsoft-085727.html , 下载地址2:http://download.csdn.net/detail/czw2010/5732241)    2. 解压instantclient-basic-win32-11.2.0.1.0并放置在oracle安

    2024年02月07日
    浏览(56)
  • Python从Oracle数据库中获取数据——fetchall(),fetchone(),fetchmany()函数功能分析

    Python从Oracle数据库中获取数据——fetchall(),fetchone(),fetchmany()函数功能分析 1、fetchall()函数,它的返回值是多个元组,即返回多个行记录,如果没有结果,返回的是() 2、fetchone()函数,它的返回值是单个的元组,也就是一行记录,如果没有结果,那就会返回None,每次向后抓取一条记录 3、

    2024年02月15日
    浏览(48)
  • Oracle、MySQL数据库常规命令语法-简易记录(非常规持续更新)

    前言:呈现的是非常基础必备命令以及常规关联语法,因涉及到不同数据库其表达都会有所区别,此篇纯属做个仓库记录更非常规持续更新,专业人士可忽略,且看且珍惜… MySQL: 关系型数据库、重点开源、支持大型规模、标准SQL数据语言、多平台多架构、高可用集群、可定

    2024年01月25日
    浏览(55)
  • 使用免费负载生成器swingbench对oracle数据库进行压力测试(测试Oracle的功能或评估性能)

    Swingbench 是一个免费负载生成器(和基准测试),旨在对 Oracle 数据库 进行压力测试。目前最新版本 Swingbench 2.6。 SwingBench 由负载生成器,协调器和集群概述组成。该软件可以生成负载 并绘制交易/响应时间图表。 Swingbench 可用于演示和测试技术,例如实际应用程序集群,在线

    2024年02月10日
    浏览(56)
  • 功能测试也可以发现数据库相关的性能问题

    很多同学认为功能测试和性能测试是严格分开的,功能测试人员无法发现性能问题。其实不是这样的,功能测试人员在验证功能时也可以发现性能问题;一些功能反而在功能测试环境不好验证,需要在性能环境上测试。     今天咱们就说一下测试涉及数据库操作的功能时如何

    2024年02月14日
    浏览(48)
  • 采用SqlSugar的DBFirst相关功能创建数据库表对应的实体类

      .NET Core官方教程中推荐使用的EF Core数据库ORM框架虽然能用,但是用起来并不是太方便(或者是不习惯,之前用的最多的还是linq)。之前下载的开源博客项目中使用的SqlSugar,后者是由果糖大数据科技团队维护和更新 ,开箱即用最易上手的.NET ORM框架,开源生态仅次于EF

    2024年02月11日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包