- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章oracle 9i使用闪回查询恢复数据库误删问题由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
如果用户误删/更新了数据后,作为用户并没有什么直接的方法来进行恢复,他们必须求助DBA来对数据库进行恢复,到了Oracle9i,这一个难堪局面有所改善。Oracle 9i中提供了一项新的技术手段--闪回查询,用户使用闪回查询可以及时取得误操作前的数据,并可以针对错误进行相应的恢复措施,而这一切都无需DBA干预.
因为一时手贱,生产上的数据被我给delete掉了.
用的是delete语句,然后很迅速的还给commit了 。
下面这两个语句:
1
2
|
ALTER
TABLE
tablename ENABLE row movement ;
flashback
table
tablename
to
timestamp
to_timestamp(
'2012-09-13 13:00:00'
,
'yyyy-mm-dd hh24:mi:ss'
);
|
------------------------------------------------------ 。
记得大概是两点半左右运行的delete---commit; 。
具体执行流程我们可从以下几个示例图中体会,
1.原表记录 。
1
2
3
4
5
6
7
8
9
10
|
$ sqlplus eygle/eygle
SQL*Plus: Release 10.1.0.2.0 - Production
on
Wed Mar 30 08:52:04 2005
Copyright (c) 1982, 2004, Oracle.
All
rights reserved.
Connected
to
:
Oracle
Database
10g Enterprise Edition Release 10.1.0.2.0 - 64bit Production
With
the Partitioning, OLAP
and
Data Mining options
SQL>
select
count
(*)
from
t1;
COUNT
(*)
----------
9318
|
2.误删除所有记录 。
并且提交更改.
1
2
3
4
5
6
7
8
|
SQL>
delete
from
t1;
9318
rows
deleted.
SQL>
commit
;
Commit
complete.
SQL>
select
count
(*)
from
t1;
COUNT
(*)
----------
0
|
3.获得当前SCN 。
如果能够确切知道删除之前SCN最好,如果不知道,可以进行闪回查询尝试. 。
1
2
3
4
5
6
7
8
9
10
11
12
|
SQL>
select
dbms_flashback.get_system_change_number
from
dual;
GET_SYSTEM_CHANGE_NUMBER
------------------------
10671006
SQL>
select
count
(*)
from
t1
as
of
scn 10671000;
COUNT
(*)
----------
0
SQL>
select
count
(*)
from
t1
as
of
scn 10670000;
COUNT
(*)
----------
9318
|
我们看到在SCN=10670000时,数据都在.
4.恢复数据. 。
1
2
3
4
5
6
7
8
|
SQL>
insert
into
t1
select
*
from
t1
as
of
scn 10670000;
9318
rows
created.
SQL>
commit
;
Commit
complete.
SQL>
select
count
(*)
from
t1;
COUNT
(*)
----------
9318
|
其它网友用的教程 。
进行数据库操作,delete后面一定要加where”。今天无意中在网上看到了关于oracle误删除数据恢复的一条信息,发现的确很好使,下面就我的测试向大家汇报下.
1
2
3
4
5
|
.
select
*
from
t_viradsl t //查询t_viradsl中所有的数据,可以看到三条数据
.
delete
t_viradsl //删除t_viradsl中所有的数据,三条数据消失
.
select
*
from
t_viradsl t //无数据。
.
insert
into
t_viradsl
select
*
from
t_viradsl
as
of
timestamp
to_Date(
'-- ::'
,
'yyyy-mm-dd hh:mi:ss'
) //已将误删除数据插入表中
.
select
*
from
t_viradsl t //又会看到三条数据。
|
我们来分析下第四步,注意这句:
1
|
select
*
from
t_viradsl2
as
of
timestamp
to_Date(
'2011-01-19 15:28:00'
,
'yyyy-mm-dd hh24:mi:ss'
)
|
什么意思呢, 找到t_viradsl2 。
在2011-01-19 15:28:00这个时间点的所有数据,既然 。
找到了,你想怎么操作都可以了.
最后此篇关于oracle 9i使用闪回查询恢复数据库误删问题的文章就讲到这里了,如果你想了解更多关于oracle 9i使用闪回查询恢复数据库误删问题的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
本文实例讲述了MySQL学习笔记之数据的增、删、改实现方法。分享给大家供大家参考,具体如下: 1、增加数据 插入代码格式: insert into 表明 [列名…] values (值…)
有时候我们需要扩展一个数组,或者删掉数组的一部分,PHP为扩展和缩小数组提供了一些函数。对于那些希望模仿各种队列实现(FIFO、LIFO)的程序员来说,这些函数可以提供便利。顾名思义,从这些函数的函
作为一个小型的数据存储传递的工具——xml,大家肯定也不陌生,今天就关于xml的一些简单操作做些总结。 这些都是在控制台进行操作的····&m
话不多说,请看代码: ? 1
本文实例讲述了mysql语句实现简单的增、删、改、查操作。分享给大家供大家参考,具体如下: 1、创建db_shop数据库,如果该数据库不存在则创建 ?
使用oracle触发器 实现对某个表的增改删的监控操作,并记录到另一个表中。 代码: 复制代码代码如下: create or replace trigger test_trigge
java连接数据库增、删、改、查工具类 数据库操作工具类,因为各厂家数据库的分页条件不同,目前支持Mysql、Oracle、Postgresql的分页查询 在Postgresql环境测试过了,其他
1、修改数据 复制代码代码如下: DataRow dr =
注册表可以用来进行存储一些程序的信息,例如用户的权限、或者某些值等,可以根据个人需要进行存储和删减。 当前注册表主目录: 引用包 Wesky.Net.OpenTools 1.0.5或
准备工作: 增、删、改、查的方法有很多很多种,这里只展示出常用的几种。 ?
需要5个类: 1.实体类:Person.java 2.抽象类:SQLOperate.java(封装了对数据库的操作) 3.助手类:DBOpenHelper.java(继承SQLiteOpenH
首先是是一个简单的例子,单链表的建立和输出。 程序1.1 复制代码 代码如下: #include<iostream> #include<string> using na
数据库操纵基本流程为: 1、连接数据库服务器 2、选择数据库 3、执行SQL语句 4、处理结果集 5、打印操作信息 其中用到的相关函数有 •resource m
CRUD是Create(创建)、Read(读取)、Update(更新)和Delete(删除)的缩写,它是普通应用程序的缩影。如果您掌握了某框架的CRUD编写,那么意味可以使用该框架创建普通应用程序了
项目结构: 添加页面: &
本文实例讲述了android操作sqlite数据库(增、删、改、查、分页等)及listview显示数据的方法。分享给大家供大家参考,具体如下: 由于刚接触android开发,故此想把学到的基础知识
总括 pandas的索引函数主要有三种: loc 标签索引,行和列的名称 iloc 整型索引(绝对位置索引),绝对意义上的几行几列,起始索引为0 ix 是 iloc 和 loc的合体 at
1. [代码]Mybatis全局配置文件 ? 1
我是一名优秀的程序员,十分优秀!