使用 FLASH DATABASE 恢复误删除的用户
场景描述
- 误 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 恢复误删除的用户的更多相关文章
- 二.误删除MySQL用户,恢复方法
误删除MySQL用户导致无法进入数据库 一.方法一 1.停止数据库 [root@db02 ~]# /etc/init.d/mysqld stop 2.跳过授权表,跳过网络启动数据库 [root@db0 ...
- oracle数据库全然恢复和不全然恢复以及运行用户管理辈分恢复
比較全然恢复和不全然恢复: 一.全然恢复:将数据库恢复到当前最新状态,包含直至请求恢复时进行的全部已提交的数据更改 二.不全然恢复:将数据库恢复到请求恢复操作之前指定的过去时间点 一.全然恢复过程 以 ...
- rman恢复误删除的一张表(不完全恢复)
恢复误删除的一张表可以使用很多方法,如日志挖掘.闪回等,rman恢复(不完全恢复)肯定不是最好的,也不建议用, 现在我们只是演示一下这种恢复. 1 RMAN备份数据库 2创建测试表 3查看此时的SCN ...
- linux下恢复误删除的文件方法(ext2及ext3)
linux下恢复误删除的文件方法(ext2及ext3) 2009-12-19 15:23:47 分类: LINUX 如果是ext2文件系统的,直接用debugfs是可以恢复出来的,但对于ext3,d ...
- ORACLE恢复误删除的对象(表、存储过程等)
1.恢复存储过程 原理就是利用了oracle里所有的存储过程的源代码都是存在dba_source里,而drop某个存储过程的时候,oracle这里肯定要去dba_source里把相关的源代码给dele ...
- Linux中利用extundelete恢复误删除的数据
利用extundelete工具恢复磁盘误删除的数据 原理: 简单介绍下关于inode的知识.在Linux下可以通过"ls -id"命令来查看某个文件或者目录的inode值,例如查看 ...
- 如何利用Flashback Query 恢复误删除的数据
网上有很多关于数据回复的文章,这里整理一篇供大家参考,希望能帮助的大家! 推荐一家即时通讯云服务商:www.yun2win.com,功能包含im即时通讯.实时音视频.电子白板.屏幕共享的多种融合通讯云 ...
- 误删除 mySQL 用户解决办法
误删除用户解决办法 删除用户 删除用户 mysql> truncate mysql.user;Query OK, 0 rows affected (0.05 sec)mysql> sel ...
- MySQL 复制+快照恢复误删除操作实验测试
下面假定2个场景: 场景1:主从架构,没有延迟,某DBA误操作:drop database [复制+快照:在线备份]场景2:存在不确定性或者风险性较大的操作,如升级测试,大表变更[啥事都在快照上折腾, ...
随机推荐
- selenium 利用testNG对异常进行自动截图
哈哈哈,很久没写博客了,懒了. 因为一些原因最近需要把监听事件重新整理一下,开始没细想,直接copy网上的,其实结果发现报错很多,或者是达不到效果,然后把之前的代码翻出来,仔细看了一下.下面给一些需要 ...
- <javaScript> 数组去重的方法总结(2017年)
现在要求去重下面这个数组: const arr = [1, 2, 3, 3, 3, '0', '1', '2', '测试', '重复', '重复', NaN, NaN, false, false]; ...
- 理解C++ lvalue与rvalue
一个众所周知的危险错误是,函数返回了一个局部变量的指针或引用.一旦函数栈被销毁,这个指针就成为了野指针,导致未定义行为.而左值(lvalue)和右值(rvalue)的概念,本质上,是理解“程序员可以放 ...
- PHP 类的封装和使用
类:相似的数据和数据操作的封装 class 成员量:普通的量加上一定的修饰就变成了成员量 public,protected,private 成员方法:普通的函数,加上一定的修饰,放入到类中就变成了成 ...
- 关于初学loadrunner的心得体会
自参加工作两年以来,深感个人知识底蕴浅薄,为此,自身也在多方寻找所需业务技能.loadrunner负载测试工具,作为性能测试典型工具之一,对于我个人的知识的丰富化起到一定作用,但也仅仅是对工作能力的略 ...
- RegExp(正则表达式)常用知识点小结
原文地址:→看过来 正则表达式用到的地方很多,但是每次很久不用就全忘光了,每次都要重新看一遍文档,为了节省时间,把它的一些基本要点画总结在一张图片中,这样方便以后查看. PS:细节的东西还是需要看详细 ...
- Day2-字符编码转换
1.在python2默认编码是ASCII, python3里默认是unicode 2.unicode 分为 utf-32(占4个字节),utf-16(占两个字节),utf-8(占1-4个字节), so ...
- 11154 LRC才不会告诉你们的事情
#include<stdio.h> #include<string.h> int main() { ,t=; ],sum[],k=,d=; ]; ]; scanf(" ...
- STM32的RFID射频读写控制装置
,大二上学期做的,过了很久,先上一下图: 这并不是做个最后一版:主体是RC552+STM32+1062:蜂鸣器,继电器,LED等:反正最后的效果就是,刷一下卡,1602显示一下持卡人(需要提前注册,注 ...
- php curl_setopt的相关设置查询手册
bool curl_setopt (int ch, string option, mixed value) curl_setopt()函数将为一个CURL会话设置选项.option参数是你想要的设置, ...