Oracl闪回数据命令。】的更多相关文章

当数据库操作没有备份,并且误删数据.可闪回任何 当前闪回15分钟前数据库状态.  alter table BASE_APPOINT_LOG enable row movement;flashback table BASE_APPOINT_LOG   to timestamp systimestamp - interval '15' minute; …
我们有个系统使用了Oracle flashback data archive闪回数据归档特性来作为基于时间点的恢复机制,在频繁插入.更新期间发现SYS_FBA_HIST_NNNN表中的XID被两个事务重用了,导致start_scn相同,于是在执行as of scn/timestamp查询的时候,相同rowid的记录会出来两条,无论是oracle 11.2.0.4还是oracle 18c都能重现,前者几乎100%,后者概率低很多(一开始LZ本地用18c跑了连续四五次都没有出现,以为解决了,后来测试…
oracle的闪回很早就出来了,准确的说一直以来应该都较少被真正用户广为使用,除了dba和极少部分开发人员偶尔用于逻辑出错.误删恢复之外,较少被用于产生更有价值的用途. 各种闪回表flashback table.flashback query.flashback transaction都有一定的适用场景,但是他们称不上和其他特性比如分区.并行那么自然和普遍适用性,同时数据存储在撤销表空间,而撤销表空间的性能对系统影响极大,大量的undo保留着会使得更多的顺序读变成随机读.直到oracle 11g…
误删除了部分重要数据,已提交,需要恢复.首先尝试flashback query闪回数据. 数据库运行在归档模式,首先确认数据库的SCN的变化: SQL> col fscn for 999999999999999999999SQL> col nscn for 999999999999999999999SQL> select name,first_change# fscn,next_change# nscn, first_time from v$archived_log; NAME     …
本次测试用Myflash闪回dml操作,有个前提条件是log_bin开启并且log模式是row: mysql> show global variables like "binlog%"; +--------------------------------------------+--------------+ | Variable_name | Value | +--------------------------------------------+--------------…
利用binlog日志恢复数据库误操作数据 在人工手动进行一些数据库写操作的时候(比方说数据修改),尤其是一些不可控的批量更新或删除,通常都建议备份后操作.不过不怕万一,就怕一万,有备无患总是好的.在线上或者测试环境误操作导致数据被删除或者更新后,想要恢复,一般有两种方法. 方法一.利用最近的全量备份+增量binlog备份,恢复到误操作之前的状态,但是随着数据量的增大,binlog的增多,恢复起来很费时.方法二.如果binlog的格式为row,那么就可以将binlog解析出来生成反向的原始SQL…
方法一 数据删除了: select * from  t_test  as of timestamp to_timestamp('2011-10-25 13:45:00','yyyy-mm-dd hh24:mi:ss') 方法二 表被drop掉了,到垃圾回收站找: SELECT * FROM DBA_RECYCLEBIN WHERE original_name LIKE '%G_WAIT%';CREATE TABLE contractbilling_wait_0323 ASSELECT * FRO…
1. 授予行迁移权限 alter table table_name enable row movement; 2. 到15分钟前: flashback table order   to timestamp systimestamp - interval '15' minute; 到某个时间点: FLASHBACK TABLE order TO TIMESTAMP    TO_TIMESTAMP('2017-06-12 01:15:25 PM','YYYY-MM-DD HH:MI:SS AM')…
数据被删除 或者 update 的时候忘记勾选where 限制条件,数据全部更新了?  怎么办? 要跑路了? NO !!! 看下面,迅速帮你闪回数据! demo sql: 1. SELECT * FROM CT_FIN_RiskItem  --先查询表,确定数据的确不对  (cfstatus 第一行缺少) 2. select * from CT_FIN_RiskItem as of timestamp to_timestamp('2017-04-20 10:45:03','yyyy-mm-dd…
1. SELECT * FROM CT_FIN_RiskItem  --先查询表,确定数据的确不对  (cfstatus 第一行缺少) 2. select * from CT_FIN_RiskItem as of timestamp to_timestamp('2017-04-20 10:45:03','yyyy-mm-dd hh24:mi:ss') --查询 修改数据之前时间 该 表数据是否正常,如果正常 采用该时间戳 进行下一步的  闪回数据! 下面呢有两种闪回方式: 2.1 查询上一布 正…