oracle误drop/update操作后的数据恢复测试_oracle

1、drop表,如何进行恢复

复制代码 代码如下:

create table etl (id number);
insert into etl values (1);
commit;
drop table etl;

如果drop table etl purge --就不能进行恢复

下面进行表的恢复:

(1)介绍视图进行恢复:DBA_RECYCLEBIN
SQL> SELECT OBJECT_NAME,ORIGINAL_NAME,CAN_UNDROP,CAN_PURGE FROM DBA_RECYCLEBIN WHERE ORIGINAL_NAME='ETL';
OBJECT_NAME ORIGINAL_NAME CAN CAN
------------------------------ -------------------------------- --- ---
BIN$V0qZnPBKRBiEUAx/MzB8Ww==$0 ETL YES YES
SQL> CREATE TABLE ETL AS SELECT * FROM "BIN$V0qZnPBKRBiEUAx/MzB8Ww==$0";
表已创建。
SQL> SELECT * FROM ETL;
ID
----------
1
恢复完成.
(2) 无法恢复的情况:drop table etl purge ;
SQL> CREATE TABLE ETL2 (NAME VARCHAR2(10));
表已创建。
SQL> INSERT INTO ETL2 VALUES ('TEST');
已创建 1 行。
SQL> COMMIT;
提交完成。
SQL> DROP TABLE ETL2 PURGE;
表已删除。
SQL> SELECT OBJECT_NAME,ORIGINAL_NAME,CAN_UNDROP,CAN_PURGE FROM DBA_RECYCLEBIN WHERE ORIGINAL_NAME='ETL2';
未选定行
SQL>
2、update 表的恢复
SQL> SELECT SYSDATE FROM DUAL;
SYSDATE
-------------------
2008-11-21 19:45:20
SQL> SELECT * FROM ETL;
ID
----------
1
SQL> UPDATE ETL SET ID=2;
已更新 1 行。
SQL> SELECT * FROM ETL;
ID
----------
2
SQL> COMMIT;
提交完成。
create table test_bak
as
select * from test as of TIMESTAMP to_timestamp('20081126 103435','yyyymmdd hh24miss');
表已创建。
SQL> SELECT * FROM ETL_BAK;
ID
----------
1
SQL>
完成update表的恢复。

时间: 2024-09-29 18:13:41

oracle误drop/update操作后的数据恢复测试_oracle的相关文章

MySQL中truncate误操作后的数据恢复案例_Mysql

实际线上的场景比较复杂,当时涉及了truncate, delete 两个操作,经确认丢数据差不多7万多行,等停下来时,差不多又有共计1万多行数据写入. 这里为了简单说明,只拿弄一个简单的业务场景举例. 测试环境: Percona-Server-5.6.16 日志格式: mixed 没起用gtid 表结构如下: CREATE TABLE `tb_wubx` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(32) DEFAULT NULL

详解MySQL误操作后怎样进行数据恢复_Mysql

一.开启binlog. 首先查看binlog是否开启 mysql> show variables like "log_bin"; +---------------+-------+ |Variable_name | Value +---------------+-------+ | log_bin OFF +---------------+-------+ 1 row in set (0.00 sec) 值为OFF,需开启,开启binlog方式如下: #vim /etc/my.c

MySQL误操作后快速恢复数据的方法_Mysql

摘要: 利用binlog闪回误操作数据. 基本上每个跟数据库打交道的程序员(当然也可能是你同事)都会碰一个问题,MySQL误操作后如何快速回滚?比如,delete一张表,忘加限制条件,整张表没了.假如这还是线上环境核心业务数据,那这事就闹大了.误操作后,能快速回滚数据是非常重要的. 传统解法 用全量备份重搭实例,再利用增量binlog备份,恢复到误操作之前的状态.然后跳过误操作的SQL,再继续应用binlog.此法费时费力,不值得再推荐. 利用binlog2sql快速闪回 首先,确认你的MySQ

MySQL误操作后怎么恢复数据?MySQL误操作后快速恢复数据的教程

摘要: 利用binlog闪回误操作数据. 基本上每个跟数据库打交道的程序员(当然也可能是你同事)都会碰一个问题,MySQL误操作后如何快速回滚?比如,delete一张表,忘加限制条件,整张表没了.假如这还是线上环境核心业务数据,那这事就闹大了.误操作后,能快速回滚数据是非常重要的. 传统解法 用全量备份重搭实例,再利用增量binlog备份,恢复到误操作之前的状态.然后跳过误操作的SQL,再继续应用binlog.此法费时费力,不值得再推荐. 利用binlog2sql快速闪回 首先,确认你的MySQ

oracle数据库-跪求:oracle如何在数据分组后更新(update)?求大神指导啊~~~万分感谢

问题描述 跪求:oracle如何在数据分组后更新(update)?求大神指导啊~~~万分感谢 如题:org_info 表内容如下: ID NAME TEL ADDR OP_TYPE OCCUR_DATE 1001 aaa 888888 ppppppp 2014-07-23 1001 aaa 999999 ppppppp 2011-03-19 1002 bbb 666666 yyyyyyy 2014-09-15 1002 ipow 221 fghfghfh 2009-07-08 1002 ipow

MySQL数据库误操作后快速回滚的方法_Mysql

基本上每个跟数据库打交道的程序员(当然也可能是你同事)都会碰一个问题,MySQL误操作后如何快速回滚?比如,delete一张表,忘加限制条件,整张表没了.假如这还是线上环境核心业务数据,那这事就闹大了.误操作后,能快速回滚数据是非常重要的. binlog2sql快速回滚 首先,确认你的MySQL server开启了binlog,设置了以下参数: [mysqld] server-id = 1 log_bin = /var/log/mysql/mysql-bin.log max_binlog_siz

update无效-mybatis+spring+strust2 后update操作不报错但没起效果

问题描述 mybatis+spring+strust2 后update操作不报错但没起效果 日志如上图 sql语句文件如上图 有两个疑问: 1 做insert操作无任何问题,update 操作不报错,就是更新无效果,数据还是原来的数据. 2 sql语句的配置xml文件中判断了if xxx!=null 但是日志里打印出来的sql还是有null (如图2) 解决方案 你的if条件有问题,如果你的参数里面已经有title等参数,就应该写为title!=null而不是带#的 解决方案二: http://

oracle中drop后的表清楚表的含义

oracle中drop后的表清楚表的含义 drop后的表被放在回收站(user_recyclebin)里,而不是直接删除掉.这样,回收站里的表信息就可以被恢复,或彻底清除.  1.通过查询回收站user_recyclebin获取被删除的表信息,然后使用语句  flashback table <user_recyclebin.object_name or user_recyclebin.original_name> to before drop [rename to <new_table_

oracle中unused column 和 drop column操作实质

unused column和drop column的操作从本质上讲是不一样的,unused是通过变更数据字典的信息让sql无法访问到column,而drop是直接在物理数据层做了变动.这里的操作后台跟踪可以用event 10046去验证,这里不做描述. 下面通过实验的方式验证unused和drop column的操作对比情况: 1.创建测试表 SQL> grant dba to luda; Grant succeeded. SQL> conn luda/luda Connected. SQL&