oracle误drop/update操作后的数据恢复测试
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表的恢复。
相关推荐
-
Oracle误删除表数据后的数据恢复详解
Oracle误删除表数据后的恢复详解 测试环境: SYSTEM:IBM AIX 5L Oracle Version:10gR2 1. undo_retention参数的查询与修改 使用show parameter undo命令查看当前的数据库参数undo_retention设置. 显示如下: SQL> show parameter undo NAME TYPE VAL
-
oracle误删数据恢复方法小结
如果用户误删/更新了数据后,作为用户并没有什么直接的方法来进行恢复,他们必须求助DBA来对数据库进行恢复,到了Oracle9i,这一个难堪局面有所改善.Or(www.jb51.net)acle 9i中提供了一项新的技术手段--闪回查询,用户使用闪回查询可以及时取得误操作前的数据,并可以针对错误进行相应的恢复措施,而这一切都无需DBA干预 因为一时手贱,生产上的数据被我给delete掉了. 用的是delete语句,然后很迅速的还给commit了 下面这两个语句: ALTER TABLE table
-
最简单的Oracle数据恢复 select as of使用方法
You perform a Flashback Query by using a SELECT statementwith an AS OF clause.You use a flashback query to restrieve data as it existed at some time in the past.The query explicitly references a past time by menasof timestamp or SCN.It returns commit
-
oracle drop table(表)数据恢复方法
复制代码 代码如下: --查看数据库回收站 select object_name,original_name,partition_name,type,ts_name,createtime,droptime from recyclebin; --恢复 FLASHBACK TABLE 表名 TO BEFORE DROP; 此举 可以恢复表结构,同时 数据也恢复了 必须9i或10g以上版本支持,flashback无法恢复全文索引
-
记一次Oracle数据恢复过程
事情的起因是,一个应用升级后,某一个操作导致一个表的几个列全部被更新为同一值(忍不住又要唠叨测试的重要性).这样的错误居然出现在应用代码中,显然是重大的BUG.那个是罪魁祸首的SQL,UPDATE语句,其WHERE条件仅仅只有一个where 1=1. 系统的维护人员称是星期五出的错,发现出错是在星期天,也就是我恢复数据的日期,与声称的出错时间已经隔了将近2天.开始尝试用flashback query恢复数据,报ORA-01555错误,此路不通.维护人员说,星期五之前的RMAN备份已经被删除了(又
-
oracle误drop/update操作后的数据恢复测试
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_RECY
-
MySQL中truncate误操作后的数据恢复案例
实际线上的场景比较复杂,当时涉及了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误操作后快速恢复数据的方法
摘要: 利用binlog闪回误操作数据. 基本上每个跟数据库打交道的程序员(当然也可能是你同事)都会碰一个问题,MySQL误操作后如何快速回滚?比如,delete一张表,忘加限制条件,整张表没了.假如这还是线上环境核心业务数据,那这事就闹大了.误操作后,能快速回滚数据是非常重要的. 传统解法 用全量备份重搭实例,再利用增量binlog备份,恢复到误操作之前的状态.然后跳过误操作的SQL,再继续应用binlog.此法费时费力,不值得再推荐. 利用binlog2sql快速闪回 首先,确认你的MySQ
-
Mysql误操作后利用binlog2sql快速回滚的方法详解
前言 在日常工作或者学习中,操作数据库时候难免会因为"大意"而误操作,需要快速恢复的话通过备份来恢复是不太可能的,下面这篇文章主要给大家介绍关于Mysql误操作后利用binlog2sql快速回滚的方法,话不多说,来一起看看详细的介绍: 一.总体解释: DML(data manipulation language): 它们是SELECT.UPDATE.INSERT.DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言 DDL(data definition la
-
MySQL数据库误操作后快速回滚的方法
基本上每个跟数据库打交道的程序员(当然也可能是你同事)都会碰一个问题,MySQL误操作后如何快速回滚?比如,delete一张表,忘加限制条件,整张表没了.假如这还是线上环境核心业务数据,那这事就闹大了.误操作后,能快速回滚数据是非常重要的. binlog2sql快速回滚 首先,确认你的MySQL server开启了binlog,设置了以下参数: [mysqld] server-id = 1 log_bin = /var/log/mysql/mysql-bin.log max_binlog_siz
-
关于mysql数据库误删除后的数据恢复操作说明
在日常运维工作中,对于mysql数据库的备份是至关重要的!数据库对于网站的重要性使得我们对mysql数据的管理不容有失! 然后,是人总难免会犯错误,说不定哪天大脑短路了来个误操作把数据库给删除了,怎么办??? 下面,就mysql数据库误删除后的恢复方案进行说明. 一.工作场景 (1)MySQL数据库每晚12:00自动完全备份. (2)某天早上上班,9点的时候,一同事犯晕drop了一个数据库! (3)需要紧急恢复!可利用备份的数据文件以及增量的binlog文件进行数据恢复. 二.数据恢复思路 (1
-
oracle delete误删除表数据后如何恢复
1.根据时间进行恢复 此种方式需要我们大致知道执行delete语句的时间. 查询系统当前时间:select to_char(sysdate,‘yyyy-mm-dd hh24:mi:ss’) from dual; 假设在2022-04-02 16:27:11分钟,执行了删除语句delete from demo ; 此时已经表中不能查询到数据了.我们知道delete执行的时间,往前推1分钟(delete执行时间之前都可以,越小越好,本例以1分钟为例),执行如下语句 select * from DEM
-
oracle表的简单操作步骤
1.创建表 create table test_1(num number(2) not null,name VARCHAR2(20) not null,primary key(num)); 创建了一个两个字段的表,num和name,都设置为非空,num设为主键,在创建表的时候经常一个"缺失左括号"的错误信息,估计是VARCHAR2类型后面没有加数据长度,加上就好了.这是用sql语句创建表,感觉要比右键新建要麻烦,可能有的时候不得不这样建表. 2.复制表 create table tes
-
在Oracle 8x实现自动断开后再连接
正在看的ORACLE教程是:在Oracle 8x实现自动断开后再连接. 在实际的数据库应用中,我们经常遇到这样一个问题,连接到Oracle数据库的用户在作了一次操作后,再也没有后续操作,但却长时间没有和数据库断开连接.对于一个小型的应用系统来讲,本身的连接数目就有限,这好像没有什么严重的后果,但如果对于一个大型的数据库应用.如税务.工商等,如果数据库的连接数目很多,对于数据库服务器来讲,多一个连接就要多消耗一份资源,如果大量用户连接进入数据库系统但却不进行任何的操作,这无形之中就白白造成了服务器
-
Oracle使用PL/SQL操作COM对象
正在看的ORACLE教程是:Oracle使用PL/SQL操作COM对象.PL/SQL是由Oracle公司对标准SQL进行扩展,专用于Oracle数据库中程序设计的专用语言,属第三代过程式程序设计语言.从Oracle8开始提供了直接从PL/SQL中调用外部C语言过程,允许开发人员用PL/SQL进行使用C语言编制的程序模块.从Oracle8i开始,又引入了Java程序. 在本文中主要介绍外部例程的基本原理以及使用条件,介绍如何通过引用外部例程来操作Windows中的COM对象,并做了一个操作Exce
随机推荐
- Spring Boot 使用Druid详解
- Oracle 数据库导出(exp)导入(imp)说明
- Python Trie树实现字典排序
- C#使用Dispose模式实现手动对资源的释放
- PHP Socket网络操作类定义与用法示例
- JSP学习笔记之基础语法
- Android实现EditText控件禁止输入内容的方法(附测试demo)
- 创建一个实现Disqus评论模版的MySQL模型
- python list排序的两种方法及实例讲解
- 如何在windows9x下访问linux分区
- 使用spring连接及操作mongodb3.0实例
- Android实现背景可滑动登录界面 (不压缩背景弹出键盘)
- 关于JavaScript的单双引号嵌套问题
- C#使用linq计算执行元素在列表中出现次数的方法
- E网星空为您提供1G免费ASP空间服务
- Python中最大最小赋值小技巧(分享)
- React native ListView 增加顶部下拉刷新和底下点击刷新示例
- 以v-model与promise两种方式实现vue弹窗组件
- Android的日志系统分层与logcat使用
- ThinkPHP框架整合微信支付之Native 扫码支付模式一图文详解