Oracle9i开始提供闪回查询,以便能在需要的时候查到过去某个时刻的一致性数据,这是通过Undo实现的.这个功能有很大的限制,就是相关事务的undo不能被覆盖,否则就无力回天了.oracle10g大大的增强了闪回查询的功能,并且提供了将整个数据库回退到过去某个时刻的能力,这是通过引入一种新的flashback log实现的. flashback log有点类似redo log,只不过redo log将数据库往前滚,flashback log则将Oracle数据库往后滚.为了保存管理和备份恢复相…
通过DELETE删除数据后相当于放入回收站,一般情况下可以找回:通过UPDATE更新数据后数据库也会保留数据快照.闪回就是恢复指定时间的数据快照以达到恢复数据的目的.根据步骤一查询出数据快照,恢复数据自行决定(之前的数据都有了,咋恢复还不会吗?) 一.查询指定时间的数据快照--1.查询执行过SQL语句,确定快照的时间SELECT R.FIRST_LOAD_TIME,R.SQL_TEXT,R.* FROM V$SQLAREA R WHERE R.SQL_TEXT LIKE '%ABOUT YOUR…
oracle更新脚本把原数据冲了,并且没有备份,急煞我也         解决办法:         oracle数据库有闪回功能:   select * from tab 可以查出已被删除的表    show recyclebin 显示垃圾桶   FLASHBACK TABLE TABLENAME TO BEFORE DROP 恢复删除的表   PURGE TABLE TABLENAME; 从垃圾桶清除指定的表,此命令将从回收站中删除表及所有相关对象,如索引.约束等.   PURGE TABL…
在日常的数据库开发过程汇总难免会出现一些误删除的动作, 对于一些误删的操作我们可以通过oracle提供的闪回机制恢复误删数据, 从而避免出现较大的生产事故. 下面是本人平时工作中积累的一些常用的操作,非常简单实用,分享给大家. 恢复dml误删的数据: select * from  误删除的表名 as of timestamp(systimestamp-interval '10' minute);--此处的10代表10分钟前表中的数据,可以根据实际情况进行查询 恢复drop掉的存储过程.函数.包等…
Oracle Flashback Technologies - 闪回数据库 根据指定的SCN,使用rman闪回数据库 #查看可以闪回到多久前 SQL> select * from v$flashback_database_log; #查看当前的SCN SQL> select current_scn from v$database; CURRENT_SCN ----------- SQL> #关闭数据库 $ rman target / Recovery Manager: Release -…
alter system set db_recovery_file_dest_size=4g scope=both; connect system/1qaz2wsx as sysdba; archive log list; shutdown immediate; startup mount; alter database archivelog; ; alter database flashback on; alter database open; archive log list; connec…
我们在开发和运维过程中,经常遇到数据被误删除的情况.无论是在应用开发中的Bug,还是修改数据的时候,如果提交了错误数据修改结果,会带来很多问题.一般来说,一旦提交commit事务,我们是不能获取到之前的数据情况,除非使用较复杂的数据恢复手段,利用备份数据恢复. 但是在Oracle中,可以使用其闪回FlashBack特性来解决这个问题.首先,声明一点,闪回Flashback的范围很大,包括数据库.表.数据均是可以Flashback的,但是机制差别很大.本文说的是简单的数据flashback,用来快…
一.delete误删 方法1:如果表结构没有改变,直接闪回整个表,具体步骤: --首先需要表闪回权限,开启行移动功能 alter table 表名 enable row movement; --执行闪回恢复表数据到某个时间点 flashback table 表名 to timestamp to_timestamp(‘恢复的时间点','yyyy-mm-dd hh24:mi:ss'); --关闭行移动功能 alter table 表名 disable row movement; 方法2:查询被删除数…
在我们实际工作中,误删除或者修改Oracle数据库中的数据,怎么办呢?这里给大家分享一种解决办法.假如你误操作的时间不超过30分钟(数据库默认的回滚保持段里的数据时间,可以在pl/sql执行窗口按ctrl+E查看你最近的操作),就是可以使用以下方法恢复数据. 工具/原料   Oracle数据库.PL/SQL 方法/步骤     1.样例表test_171205 数据如下图:   2.delete test_171205 where test_id = '001'; --误删除了其中一条数据,之后…
假设有这样一个枚举: /// <summary> /// 字典项类型 /// </summary> public enum DicItemType { [EnumDescription("程序使用")] Program = , [EnumDescription("用户自定义")] Custom = } NHibernate默认是映射为数据库中的数字类型,也就是0或者1.当我们使用数据库管理工具(例如PLSql/Developer)直接浏览数据…