场景描述

  • 误 drop 了生产库中的用户 U1
  • U1 用户下面有 3 张表(T1-T3),表中数据如下所示:
SQL> conn u1/u1
Connected.
SQL> select TABLE_NAME from user_tables; TABLE_NAME
------------------------------
T1
T2
T3 SQL> select * from t1; ID NAME
---------- --------------------
2 xyz SQL> select * from t2; ID
----------
10 SQL> select * from t3; ID LAST_NAME FIRST_NAME
---------- -------------------- --------------------
1 Zhang lili
2 li lei

前期准备

  • 第一步,查询 v$log、v$archived_log中每个日志的 First SCN/ First Time 和 Next SCN/Next Time,根据时间推测该删除操作会在哪个日志中
  • 第二步,使用 Toad 挖掘日志( 因为删除一个用户,会先删除用户下的所有对象,然后再删除用户,所以要找到删除属于它的对象的最早的 SCN,在本例中应选择 1794239)



执行闪回

  • 环境描述

    • 生产库的版本是 11.2.0.4,搭建了 Data Guard,备库启用了闪回特性
    • 在备库执行闪回操作
  • 1)停止 Redo Apply

SQL> alter database recover managed standby database cancel;

Database altered.
  • 如果不停止 Redo Apply 的话,在执行闪回时会报错
SQL> FLASHBACK DATABASE TO SCN 1794239;
FLASHBACK DATABASE TO SCN 1794239
*
ERROR at line 1:
ORA-01153: an incompatible media recovery is active
  • 2)闪回数据库
SQL> FLASHBACK DATABASE TO SCN 1794239;

Flashback complete.
  • 3)查看用户相关信息,确认用户是否已经恢复
  • 4)在备库使用 exp 导出用户数据(无法使用数据泵技术,因为备库的模式是 read only,所以使用了 exp 导出数据)
exp system/oracle owner=u1 file=/tmp/test.dump
  • 5)需要在主库建立用户 U1 并授权

    • 如果不建立用户,在导入的时候会报错(ORA-01435: user does not exist)
    • 如果不授权,在导入的时候会报错(ORA-01950: no privileges on tablespace 'USERS')
SQL> create user u1 identified by "123abc";

SQL> grant connect,resource to u1;
  • 6)在备库连接主库 orcl,然后导入文件
[oracle@db11gstandby ~]$ imp system/oracle@orcl file=/tmp/test.dump full=y

Import: Release 11.2.0.4.0 - Production on Wed Jun 21 19:32:17 2017

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options Export file created by EXPORT:V11.02.00 via conventional path
import done in AL32UTF8 character set and AL16UTF16 NCHAR character set
. importing SYSTEM's objects into SYSTEM
. importing U1's objects into U1
. . importing table "T1" 1 rows imported
. . importing table "T2" 1 rows imported
. . importing table "T3" 2 rows imported
Import terminated successfully without warnings.
  • 7)注意:在闪回操作完成后,开启 Redo Apply,此时备库又可以与主库同步

使用 FLASH DATABASE 恢复误删除的用户的更多相关文章

  1. 二.误删除MySQL用户,恢复方法

    误删除MySQL用户导致无法进入数据库 一.方法一 1.停止数据库 [root@db02 ~]# /etc/init.d/mysqld stop 2.跳过授权表,跳过网络启动数据库 [root@db0 ...

  2. oracle数据库全然恢复和不全然恢复以及运行用户管理辈分恢复

    比較全然恢复和不全然恢复: 一.全然恢复:将数据库恢复到当前最新状态,包含直至请求恢复时进行的全部已提交的数据更改 二.不全然恢复:将数据库恢复到请求恢复操作之前指定的过去时间点 一.全然恢复过程 以 ...

  3. rman恢复误删除的一张表(不完全恢复)

    恢复误删除的一张表可以使用很多方法,如日志挖掘.闪回等,rman恢复(不完全恢复)肯定不是最好的,也不建议用, 现在我们只是演示一下这种恢复. 1 RMAN备份数据库 2创建测试表 3查看此时的SCN ...

  4. linux下恢复误删除的文件方法(ext2及ext3)

     linux下恢复误删除的文件方法(ext2及ext3) 2009-12-19 15:23:47 分类: LINUX 如果是ext2文件系统的,直接用debugfs是可以恢复出来的,但对于ext3,d ...

  5. ORACLE恢复误删除的对象(表、存储过程等)

    1.恢复存储过程 原理就是利用了oracle里所有的存储过程的源代码都是存在dba_source里,而drop某个存储过程的时候,oracle这里肯定要去dba_source里把相关的源代码给dele ...

  6. Linux中利用extundelete恢复误删除的数据

    利用extundelete工具恢复磁盘误删除的数据 原理: 简单介绍下关于inode的知识.在Linux下可以通过"ls -id"命令来查看某个文件或者目录的inode值,例如查看 ...

  7. 如何利用Flashback Query 恢复误删除的数据

    网上有很多关于数据回复的文章,这里整理一篇供大家参考,希望能帮助的大家! 推荐一家即时通讯云服务商:www.yun2win.com,功能包含im即时通讯.实时音视频.电子白板.屏幕共享的多种融合通讯云 ...

  8. 误删除 mySQL 用户解决办法

    误删除用户解决办法 删除用户 删除用户 mysql> truncate mysql.user;Query OK, 0 rows affected (0.05 sec)​mysql> sel ...

  9. MySQL 复制+快照恢复误删除操作实验测试

    下面假定2个场景: 场景1:主从架构,没有延迟,某DBA误操作:drop database [复制+快照:在线备份]场景2:存在不确定性或者风险性较大的操作,如升级测试,大表变更[啥事都在快照上折腾, ...

随机推荐

  1. selenium 远程服务设置

    第一步:将浏览器的安装地址以及浏览器的驱动地址添加到系统变量path中.浏览器只需要添加此浏览器exe文件所在的目录就可以,驱动需要添加完整的地址包括驱动本身XXX.exe. 第二步:需要安装jdk环 ...

  2. 初识Eclipse!!

      Java之路 ——初识Eclipse   零.大纲 一.前言 二.获取Eclipse 三.运行Eclipse 四.创建及运行第一个Java Project 五.界面介绍 六.如何调试 七.获取插件 ...

  3. RabbitMQ4--发后即忘和RPC

    在项目中引入RabbitMQ通常会考虑它会带来的好处:解耦应用程序,实现不同编程语言之间的互通,解除对特定通信协议的依赖,解除应用程序在时序上执行的依赖(异步).落实到代码层面就是两种常用应用模式:& ...

  4. wifi驱动总结(2)

    1.dhd_module_init(驱动模块初始化函数) → dhd_wifi_platform_register_drv(查找设备,注册驱动) → 1) wifi_ctrlfunc_register ...

  5. 导入csv文件到数据库

    csv:逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本).纯文本意味着该文件是一个字符 ...

  6. javaWeb基础核心之一Servlet

    既然是做JAVA开发的,先从一些基本的整理起来,算是知识回顾,加深记忆. 第一篇想到那理到哪,可能有点乱,不是太会排版,见谅,估计可能也就我自己看的懂. servlet在百度百科上的定义是这样的: S ...

  7. Java中的局部变量表及使用jclasslib进行查看

    直接上下载地址 jclasslib是一个独立的工具,不是包含在JDK中的工具,需要自己进行下载,下载地址如下: http://downfile.downcc.com/down/JClassLib_wi ...

  8. 如何选择版本控制系统之二---Git的研发应用场

    之前写了一篇<如何选择版本控制系统 ---为什么选择Git版本控制系统>,地址是:http://www.cnblogs.com/goldenfish/p/6876864.html,有兴趣的 ...

  9. 如何通过 WebP 兼容减少图片资源大小

    作者:学军又拍云 CDN 服务公测 WebP 自适应功能,为客户减少图片资源大小.本文我们将一起来阐述WebP兼容的来龙去脉. 前言我们知道,理想的网页应该在 1 秒内打开,而在页面的整体大小中,图片 ...

  10. 【2017-05-25】WebForm母版页

    母版页:可以把界面的部分代码进行重用 添加新项-母版页 在母版页中界面代码不要写在 <asp:ContentPlaceHolder ID="head" runat=" ...