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

长沙市住房与城乡建设厅网站优购物官方网上商城

长沙市住房与城乡建设厅网站,优购物官方网上商城,佛山网站设计资讯,wordpress精简化教程oracle的闪回查询,可以查询提交在表空间的闪回数据,并可以还原所查询的数据,用于恢复短时间内的delele 或者 update 误操作,非常方便,缺点是只能恢复大概几小时内的数据。 文章目录 概要闪回查询恢复数据的主要方法包括…

oracle的闪回查询,可以查询提交在表空间的闪回数据,并可以还原所查询的数据,用于恢复短时间内的delele 或者 update 误操作,非常方便,缺点是只能恢复大概几小时内的数据。

文章目录

  • 概要
  • 闪回查询恢复数据的主要方法包括:
    • 基于时间的闪回查询‌:
      • 1、基于时间区间来恢复:恢复前5分钟数据,前20分钟数据等
      • 2、基于具体的时间来恢复:20250107 17:15:43 、20250106 17:15:43
    • 基于scn闪回查询恢复数据
    • 闪回表
    • 闪回数据库‌:
    • ‌利用“回收站”恢复被DROP的表‌:


概要

1、闪回查询通常只能恢复几小时内的数据,因为Undo表空间的大小和保留策略限制了旧数据版本的保留时间‌。
2、在进行闪回操作之前,建议备份当前数据库或相关数据,以防止意外情况导致数据丢失。
3、闪回功能不依赖于日志,可以在线恢复,无需关闭数据库,操作简单且恢复速度快‌1

闪回查询恢复数据的主要方法包括:

基于时间的闪回查询‌:

使用SELECT * FROM 表名 AS OF TIMESTAMP(时间点)语句,可以查询并恢复在指定时间点之前的数据状态‌。

例如,要查询10分钟前的数据,可以使用SELECT * FROM 表名 AS OF TIMESTAMP(SYSDATE-10/1440)‌。

1、基于时间区间来恢复:恢复前5分钟数据,前20分钟数据等

未更新前:4
在这里插入图片描述

delete update insert更新后:2

在这里插入图片描述

根据更新后的时间来确定数据要恢复的时间,比如恢复5分钟前的数据、20分钟前的等等时间段;

查询3分钟前的数据:
语法:

SELECT * FROM 表名 AS OF TIMESTAMP(SYSDATE-3/1440);

SELECT * FROM test1 AS OF TIMESTAMP(SYSDATE-10/1440)‌
此时查询到的数据为更新发生后,前3分钟的数据,相当于原来的数据,未改变的数据。
实际工作中可以根据具体时间来恢复,此时数据已经查到了原来的旧数据,创建新表拷贝闪回查询的数据:

闪回查询前10分钟的数据并拷贝到新表test_old中:

SQL> create table test_old as select * from test1 as of timestamp(sysdate-10/1440);表已创建。SQL> select * from test_old;NO NAME
---------- ----------1 aa2 bb3 cc4 dd

闪回查询的数据已经拷贝到新表test_old中,然后将原来的表test1表删除,将test_old表名修改未test1,整个闪回查询恢复数据流程到此恢复完成结束。

2、基于具体的时间来恢复:20250107 17:15:43 、20250106 17:15:43

未更新前数据:
在这里插入图片描述

未更新前数据库系统时间:
在这里插入图片描述

此时的时间为表未发生任何变化的系统时间节点,后期根据这个时间节点来恢复数据,
更新表数据:delete update insert

delete test_old where no='2'--删除表中数据

表中操作已经完成,查询更新后的系统时间:

在这里插入图片描述

select to_char(sysdate,'yyyymmdd hh24:mi:ss') from dual  -- 更新表后的时间20250107 17:17:33

当表中完成更新,得知更新前的系统时间和更新后的系统,就可以根据具体时间来恢复数据:
比如恢复到更新数据前系统的具体时间,上面第一次获取的时间:

select * from test_old as of timestamp to_date('20250107 17:59:28','yyyymmdd hh24:mi:ss')   --恢复具体时间的数据

在这里插入图片描述

此时可以看到更新后,根据未更新前的系统时间来恢复了被更新的数据,创建新表拷贝恢复的数据,更新为原来的表,整个恢复流程完成,后期频繁的去更新只要知道具体的时间一定时间内都能正常恢复到为操作前的状态。


更新中:…

基于scn闪回查询恢复数据

1、获取未操作前的scn值:

select  dbms_flashback.get_system_change_number from dual  --获取当前的scn 27511490  

在这里插入图片描述
此时scn值未任何操作时候的scn。
2、对表进行delete update insert(更新);

在这里插入图片描述
delete test_old where no=5;
在这里插入图片描述
更新成功,
3.获取更新后的 scn:

在这里插入图片描述
此时更新操作前和操作后的值都获取到了,可以更新scn数值区间进行闪回查询:27511490- 27512132,
4、根据scn闪回查询:

语法: select * from test_old as of scn 数值;
select * from test_old as of scn 27511490–根据scn的区间来一步一进行闪回查询 27511490- 27512132,之间取值

在这里插入图片描述
此时根据更新前的scn闪回查询返回到了,未操作前的状态,然后新建立表拷贝闪回查询的数据进行恢复即可:

create table test2_old as select * from test_old as of scn 27511490;
在这里插入图片描述
此时将scn闪回查询的数据已经恢复到新表中,可以对新表对象进行任何操作。

注意:
1、如果只有操作后的scn可以根据scn数据值大小一个一个去测试,知道闪回查询
2、如果有操作前后区间的scn值,可以根据区间去一一测试,直到闪回查询

···**闪回查询只要查看过去具体时间点的数据变化**···


闪回表

如果表结构没有发生改变,并且用户有flash any table权限,可以使用ALTER TABLE 表名 ENABLE ROW MOVEMENT和FLASHBACK TABLE 表名 TO TIMESTAMP(时间点)语句来将整个表闪回到指定的时间点‌45。

闪回数据库‌:

闪回数据库功能允许将整个数据库回滚到过去某个时间点,但这通常用于更严重的灾难恢复场景,并且需要配置恢复区(Flash Recovery Area)‌2。

‌利用“回收站”恢复被DROP的表‌:

当使用DROP命令删除表时,Oracle并不会立即清空表所占用的空间,而是将表的信息放到一个虚拟的“回收站”中。在块未被重新使用之前,可以通过查询user_tables视图或user_recyclebin来找到被删除的表,并进行恢复‌

http://www.yayakq.cn/news/193527/

相关文章:

  • 网站建设与规划实验心得做的比较好的意大利网站
  • 做网站的广告盗版视频网站怎么做的
  • dede世界杯网站模板哈尔滨制作网页公司
  • 建设工程信息网站有哪些广州优化网站
  • 网站开发浏览器北京游戏公司排名
  • 电商平台网站 建设目标地方网站的建设
  • 无锡高端网站设计公司价格wordpress 只收录首页
  • 网站建设需要的技术路线网站运营与维护是什么
  • 伊川县住房和城乡建设厅网站网站集约化建设题目
  • php视频网站怎么做企业机房建设公司
  • 哪个网站做h5比较好看内贸在什么网站做
  • 免费用搭建网站右糖视频制作
  • 中企动力做过的网站中国四大互联网巨头
  • 大型网站开发 c郑州今天刚刚发生的新闻
  • 网站不用域名可以吗下列哪些店铺适合交换友情链接
  • SEO做得最好的网站全媒体门户网站建设方案
  • 保定市网站设计如何帮人做网站赚钱吗
  • 先做他个天猫网站产品详情页模板免费下载
  • 网站域名301是什么意思属于微营销的是
  • 深圳正规做网站的公司站长工具seo综合查询隐私查询导航
  • 旅游网站开发成本包括c2c的网站名称和网址
  • 网站备案换接入商wordpress上一篇插件
  • 深圳市宝安区建设局网站网站前台设计及开发是做什么的
  • 建设优化一个网站步骤政务服务网站建设情况汇报
  • 无证做音频网站违法吗西安网站设计开发
  • 怎样注册平台网站做的网站客户拿去维违法
  • 安徽餐饮网站建设网站做电商资质
  • 百度网站制作推广天津南开做网站公司
  • 学做网站什么语言合适百度网盘搜索引擎入口官网
  • 海口手机建站模板如何找回网站后台密码