网站首页 > 技术文章 正文
ORACLE数据闪回操作
-------原表数据--------------------
select *from ORD_ITEMS;
----------删除数据-----------------------------
delete ORD_ITEMS;
1、利用SCN进行恢复数据
-----------查看当前SCN--------------------------
select dbms_flashback.get_system_change_number from dual;
select count(1) from ord_items as of scn 9388400;----逐一排查删除时的SCN
insert into ord_items select *from ord_items as of scn 9388400;---数据插入
2、通过时间戳timestamp进行闪回数据
-------------查找删除表时的时间-----------------------------------------
select r.FIRST_LOAD_TIME,r.* from v$sqlarea r where r.SQL_TEXT like 'delete%'order by r.FIRST_LOAD_TIME desc ;
create table t_table_recove --新表
as
select * from ord_items--你操作的那张表
as of timestamp to_timestamp('2017-01-04 11:24:18','yyyy-mm-dd hh24:mi:ss'); /*建立新表查看被删除数据是否准确,确认无误后,插入操作表中
3、Undo_Retentiond参数的应用
注意:undo_retention 就是设置Oracle Undo过期数据的保存期限,单位是秒。如果参数设置为900秒,那么Undo段数据在非Active状态之后,会保留900秒;Undo_retention是一个“目标期望值”。用户设置出这个值之后,Oracle内部会尽量保证将Undo数据保留超过undo_retention设置的时间。在这个过程中,Oracle会涉及到比如尝试拓展Undo表空间数据文件、Undo Segment管理等内容。但是,如果“现实比较残酷”,比如说Undo使用紧张、没有额外的方法,那么这个时间段也是不能保证的。
4、模拟UNDO表空间空间较小时且在Undo_Retentiond时间范围内(900S),出现的实验结果:
--------------------------查看ORD_items表的大小-----------------------------------------
SELECT segment_name AS TABLENAME,BYTES/1024/1024 MB FROM user_segments WHERE segment_name='ORD_ITEMS';
-------------创建表空间undotbs02(5M)----------------------------
create undo tablespace undotbs02 datafile 'D:\app\hanzhen\oradata\hz\undotbs02.dbf'size 5m autoextend off;
select file_name, AUTOEXTENSIBLE, BYTES/1024/1024 MB from dba_data_files where tablespace_name='UNDOTBS02';
-----------------------更改系统默认表空间----------------------------------------
alter system set undo_tablespace=undotbs02
----------删除数据-----------------------------
delete ORD_ITEMS;
当删除数据时,报错
当闪回数据,UNDO表空间较小时,会提示如下:
删除动作中,很多时候都是禁止的。因为Undo空间过小,不能容纳需要保存的前镜像数据;虽然设置了undo_retention的参数,但是如果系统undo表空间容量不够大,而且undo生成总量很大的时候,系统还是会将undo进行覆盖。
当undo表空间满足要求,且闪回时间超过Undo_Retentiond设置时,仍然是可以做闪回数据操作的。
猜你喜欢
- 2024-11-07 Oracle-块损坏故障:ORA-01578 oracle数据库坏块修复
- 2024-11-07 万字总结 MySQL核心知识,赠送25连环炮
- 2024-11-07 闪回区报警引发的性能问题分析(一)
- 2024-11-07 Oracle将物理Standby库临时激活用于测试
- 2024-11-07 谈谈MySQL中的重做日志,回滚日志及二进制日志的区别及各自作用
- 2024-11-07 insert导致的性能问题大排查(r11笔记第26天)
- 2024-11-07 ORACLE ORA-03113 故障解决方法 oracle error 3113
- 2024-11-07 Data Guard高级玩法:闪回恢复switchover库
- 2024-11-07 「方法」被delete table后,记住这个找回方法,没准能救你命
- 2024-11-07 闪回数据库不是“万金油”(r11笔记第73天)
你 发表评论:
欢迎- 617℃几个Oracle空值处理函数 oracle处理null值的函数
- 610℃Oracle分析函数之Lag和Lead()使用
- 599℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 595℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 591℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 582℃【数据统计分析】详解Oracle分组函数之CUBE
- 572℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 560℃Oracle有哪些常见的函数? oracle中常用的函数
- 最近发表
-
- PageHelper - 最方便的 MyBatis 分页插件
- 面试二:pagehelper是怎么实现分页的,
- MyBatis如何实现分页查询?(mybatis-plus分页查询)
- SpringBoot 各种分页查询方式详解(全网最全)
- 如何在Linux上运行exe文件,怎么用linux运行windows软件
- 快速了解hive(快速了解美国50个州)
- Python 中的 pyodbc 库(pydbclib)
- Linux搭建Weblogic集群(linux weblogic部署项目步骤)
- 「DM专栏」DMDSC共享集群之部署(一)——共享存储配置
- 故障分析 | MySQL 派生表优化(mysql pipe)
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- 前端获取当前时间 (50)
- Oracle RAC (76)
- oracle恢复 (77)
- oracle 删除表 (52)
- oracle 用户名 (80)
- oracle 工具 (55)
- oracle 内存 (55)
- oracle 导出表 (62)
- oracle约束 (54)
- oracle 中文 (51)
- oracle链接 (54)
- oracle的函数 (58)
- 前端调试 (52)
本文暂时没有评论,来添加一个吧(●'◡'●)