删用户删表空间的操作还能flashback回来吗?
来源:互联网 发布:js表单数据的验证 编辑:程序博客网 时间:2024/04/29 12:09
今日2017-6-27 坐标西安 天气晴朗,很热
今天中午在某微信群里,有人提问以下两条操作还能恢复吗?而且是在没有开归档,而后有人提问是否开了闪回?
SQL> drop user aaa cascade;
SQL> drop tablespace asd including contents and datafiles;
他这里没有指明闪回是闪回查询?闪回表?闪回数据库?那我们就一一看(我这里假设就算是这个用户下就一张表)
首先看看闪回查询:
SQL> SQL> create table aaa.a1(id number);
Table created.
SQL> insert into aaa.a1 values(3);
1 row created.
SQL> commit;
Commit complete.
SQL> select dbms_flashback.get_system_change_number from dual;
GET_SYSTEM_CHANGE_NUMBER
------------------------
3575965
SQL> drop user aaa cascade;
User dropped.
SQL> select * from aaa.a1 as of scn 3575965;
select * from aaa.a1 as of scn 3575965
*
ERROR at line 1:
ORA-00942: table or view does not exist
可以看出闪回查询是无效的,其实你要是懂一点闪回查询首先可以排除掉,因为闪回查询是基于undo的,而且undo受ddl影响的
再看看闪回表(flashback table)
SQL> flashback table aaa.a1 to before drop;
flashback table aaa.a1 to before drop
*
ERROR at line 1:
ORA-01435: user does not exist
drop user cascade是不会吧表放入回收站的,那么也可以说明flashback也是不行的
最后在看看闪回数据库,其实闪回数据库的开启的基本要求就是开启归档,那么就呵呵了,所以闪回这条路是不通的
就算是开了闪回数据库(flashback database,当然包括开启归档),那么就有用了吗?
SQL> select dbms_flashback.get_system_change_number from dual;
GET_SYSTEM_CHANGE_NUMBER
------------------------
3574600
SQL> drop user aaa cascade;
User dropped.
SQL> drop tablespace asd including contents and datafiles;
Tablespace dropped.
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount;
ORACLE instance started.
Total System Global Area 889389056 bytes
Fixed Size 2258360 bytes
Variable Size 574622280 bytes
Database Buffers 306184192 bytes
Redo Buffers 6324224 bytes
Database mounted.
SQL> flashback database to scn 3574600; //闪回到误操作前
Flashback complete.
SQL> alter database open read only; //以read only模式打开
Database altered.
SQL> select * from aaa.a1;
select * from aaa.a1
*
ERROR at line 1:
ORA-00376: file 10 cannot be read at this time
ORA-01111: name for data file 10 is unknown - rename to correct file
ORA-01110: data file 10: '/u01/app/oracle/product/11.2.0/db_1/dbs/UNNAMED00010'
这里不得不提一下,闪回数据库的本质了,flashback database用来将数据库中的数据恢复到之前的某个时间点,而非介质恢复。这里的 drop tablespace including contents and datafiles;(加不加including datafile一样)已经把数据文件都删除了。所以就算是开启了闪回数据库也是没用的。
那么要是在上面的情况下,没有drop tablespace including datafile(在闪回数据库模式下,只跑了drop user cascade)
啥都不说先操作吧:
SQL> SQL> select dbms_flashback.get_system_change_number from dual;
GET_SYSTEM_CHANGE_NUMBER
------------------------
3581891
SQL> drop user db1 cascade;
User dropped.
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount;
ORACLE instance started.
Total System Global Area 889389056 bytes
Fixed Size 2258360 bytes
Variable Size 574622280 bytes
Database Buffers 306184192 bytes
Redo Buffers 6324224 bytes
Database mounted.
SQL> flashback database to scn 3581891;
Flashback complete.
SQL> alter database open read only;
Database altered.
SQL> select * from db1.milktwo;
ID NAME
---------- ----------------------
33 kk
2 hh
再来句废话,在闪回数据库(flashback database)开启的情况下,只是drop user cascade,没有drop tablespace including datafile操作是可以通过闪回数据库恢复的数据的。
- 删用户删表空间的操作还能flashback回来吗?
- 从后台切换回来或者从Tabbarcontroller切换回来动画还能继续运行的解决方案
- 失去的东西还会回来吗?
- flashback有条件的解决用户误删数据
- Ipad的照片误删了还能找回吗
- flashback database 恢复删除的表空间
- 我的心能回来吗
- 用户-表空间操作
- 手机误删除的短信还能够恢复回来吗
- 如何做到回收站清空了还能恢复回来
- flashback database 恢复误删除的表空间。
- 数码相机里的存储卡上的照片被删了还能恢复吗
- 文件不小心给删了还能找回吗
- 用户点击退出后,点击浏览器按钮还能进行操作!!
- Oracle建用户 授权 表 表空间的操作
- Oracle创建用户与表空间的相关操作
- oracle中关于用户和表空间的操作
- Oracle 删除用户和表空间的常用操作
- Android 手机休眠,进程仍存在
- LevelDB初探之简单使用 2014-07-28 17:16:18 分类: 大数据 一、简介 LevelDB是google开源的一个key-value存储引擎库,从版本1.2开始就
- nginx 配置后网站图片或js 加载出来一半或者不出来刷新才可以,chrome 浏览器访问项目时加载大文件失败 ERR_CONTENT_LENGTH_MISMATCH:
- 大数据--计算引擎分类
- Java使用Apache POI导出-注意前端不要使用Ajax异步请求
- 删用户删表空间的操作还能flashback回来吗?
- [LeetCode] 404. Sum of Left Leaves
- 《Ios Human Interface Guidelines》--Data Entry
- 架构之集群、缓存
- 织梦dedecms如何做到真正的随机调取文章
- C#利用显示声明数据库事务完成快速存储
- vsftp简介
- 【caffe-Windows】微软官方caffe之 matlab接口cpu配置
- fargment重叠问题解决