首页 > 数据库 >oracle 闪回技术

oracle 闪回技术

时间:2023-02-28 22:57:21浏览次数:43  
标签:闪回 versions timestamp 技术 undo oracle table flashback

闪回技术概览

1.查看数据的过去状态

2.可沿时间轴向前或者向后闪回

3.协助用户进行错误分析和恢复

4.简单的sql实现闪回(或者DBMS_FLASHBACK包)

5.闪回时间与数据库大小无关(主要是数据库在闪回时间段数据变化有关)

闪回类型

flashback database

flashback table

flashback drop

flashback transaction

flashback transaction

flashback transaction query

flashback query

flashback version query(数据库版本的闪回查询)

闪回技术

1.基于undo数据的闪回

1)闪回查询:查询一张表在过去时间的数据状态

2)闪回表:把一张表山回到过去的时间点

3)闪回版本查询:一段时间多个事务操作对应表中数据状态

4)闪回事务查询:查询事务对应的undo sql;闪回数据归档

 

闪回查询前提

基于undo数据,确实是否可以查询对象或将对象改回到过去的某个时间点。

undo_management=auto

闪回到精确的时间点
select * from sh.test_tab1 as of timestamp to_timestame('2022-12-21 08:45:00','yyyy-nn-dd hh24:mi:ss');
闪回到多久之前
select * from tab as of timestamp sysdate-1/24;
闪回到指定scn
select * from tab2 as of scn 553423;

 

闪回查询版本技术

具体伪劣有很多

versions_startscn 数据版本被创建时的scn
versions_starttime 数据版本被创建时的时间戳
versions_endscn
versions_endtime
versions_xid 数据版本被创建时的事务号
versions_operation 数据版本创建时事务类型

 

select versions_xid,salary from employees versions between timestamp <t1> and <t2> where employee_id=200;

另外可以关联 flashback_transaction_query,了解更多的闪回查询,例如undo_sql可以直接给出数据修复需要执行的sql

闪回表技术

限制:只能将闪回到undo所允许的指定时间内

需要开启行迁移(row movement)

alter table table_name enable row movement;
闪回到指定时间点
flushback table table_name to timestamp <time>
闪回到n小时之前
flushback table table_name to timestamp sysdate -1;
闪回到指定scn
flushback table table_name to scn 234;

 

FDA闪回数据归档技术

基于undo有很多局限性,undo会被覆盖

闪回归档步骤

1)创建一个供闪回数据库使用的表空间

2)在该表空间创建闪回数据归档

3)创建一个用户并授权dba角色

4)登录创建一个表启用闪回数据归档

5)执行查询来确定归档创建的对象

create flushback archive default fal1 tablespace tbs1 quota 10G retention 1 year;

基于recyclebin的闪回删除技术

闪回删除技术:

1)针对非system 表空间

2)适用于通过drop 操作和非purge 的删除对象(包括索引,约束,触发器)

flashback table employees to beforce drop;

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

闪回数据库:把数据库闪回到过去的某一个时间点,针对逻辑故障,或者对相同数据做循环迭代测试。

 

闪回数据库应用场景

闪回数据库:truncate table,多张表都发生非预期的更改,数据库升级中的回退,循环测试

闪回表:drop table(基于回收站)

闪回表:使用错误的where字句对表进行了更新(基于undo)

闪回表:对比当前的和过去的时间的数据(undo)闪回查询

闪回表:比较指定行数据的不通版本(undo)

table and transaction :事务审计,合规,历史数据保留(指定的表空间)

 

实验1

闪回查询

select count(*) from testuser.test_tab as of timestamp sysdate -1/24/60;

查看一分钟前的数据行数(闪回就像时间游戏中追溯)

select count(*) from testuser.test_tab as of timestamp to_timestamp('2023-12-01 12:00:00','yyyy-mm-dd hh24:mi:ss')+1*INTERVAL '1' MINUTE;

查看具体时间周围几分钟的数据状态

闪回版本查询

select versions_startscn,versions_starttime,versions_endscn,versions_endtime,versions_xid,versions_operaton,id,name,salary from test_user_tab versions between timestamp <ti> and <t2> wehre id=1;

闪回表

alter table table_name enable row movement;
flushback table test_user.tab to timestamp to_timestamp(略);
同时这个也可以使用
+1*INTERVAL '1' MINUTE;
flushback table test_user.test_tab to before drop;

注意:多租户环境闪回可以只闪回pdb

闪回PDB

开启数据库闪回
  1. alter system set db_recovery_file_dest_size=20g;
  2. alter system set db_recovery_file_dest='/home/db/oracle/'

alter session set container=pdb; alter pluggable database pdb close immediate; flashback pluggable database pdb to timestamp to_timestamp();
alter pluggable database pdb open resetlogs;

 

 

标签:闪回,versions,timestamp,技术,undo,oracle,table,flashback
From: https://www.cnblogs.com/dbahrz/p/17166391.html

相关文章

  • Oracle 求当前日期是周几--to_char()
    Oracle求当前日期是周几--to_char()大概就是下面这种方法to_char(date,'D')Selectto_char(date,'ss')fromdual取当前时间秒部分Selectto_char(date,'mi')fromd......
  • 前端技术之CSS课程介绍和目标
    HTML可以让我们实现静态页面效果,但是页面没有炫酷好看的效果,通过CSS技术可以对静态页面进行“装修”,让页面更加好看美观。本套课程了解前端体系方向,为后续深入打下基础。课......
  • Oracle数据库2
    一.创建用户和表空间1.1.以超级管理员身份登录connsysas/password**assysdba**1.1.1查看使用哪一个实例进行登录的selectinstance_namefromv$instance;1.2.......
  • 前端技术之CSS课程介绍和目标
    HTML可以让我们实现静态页面效果,但是页面没有炫酷好看的效果,通过CSS技术可以对静态页面进行“装修”,让页面更加好看美观。本套课程了解前端体系方向,为后续深入打下基础。课......
  • 前端技术之CSS课程介绍和目标
    HTML可以让我们实现静态页面效果,但是页面没有炫酷好看的效果,通过CSS技术可以对静态页面进行“装修”,让页面更加好看美观。本套课程了解前端体系方向,为后续深入打下基础。课......
  • oracle 口令文件参数文件
    转载于:(140条消息)如何管理oralce口令文件和参数文件_oracle口令文件_梦想家DBA匠人的博客-CSDN博客口令文件审核Step1:使用root账号将oracledba的权限移除[root@o......
  • 技术分担产品之忧(上):挑选有业务专家潜力的人
    你好,我是王植萌,去哪儿网的高级技术总监、TC主席。从2014年起,担任一个部门的技术负责人,有8年技术总监经验、5年TC主席的经验。这节课我会从去哪儿网产研融合的经验出发,和你聊......
  • 一文深度解读音视频行业技术发展历程
    从1948年的香农定律,到音视频的今天。IMMENSE、36氪|作者北京时间2月28日凌晨,FIFA年度颁奖典礼在巴黎举行。梅西荣膺年度最佳球员,斯卡洛尼当选年度最佳男足主帅,马丁内斯荣......
  • 2-微服务技术选型
    微服务介绍单体架构单体架构就是将所有功能集成到一个项目中进行开发,打包成一个包进行部署。好处是架构简单,各个模块采用统一的架构方案,并且进行部署的时候只需要将一个......
  • 项目技术领域与项目学科代码
    项目技术领域与项目学科代码代码全称简称A0000国家重点支持的高新技术领域国家重点支持的高新技术领域A1000国家重点支持的高新技术领域/电子信息技术电......