没有合适的资源?快使用搜索试试~ 我知道了~
首先你应该明白闪回删除操作的对象仅仅是表,它允许你将之前删除的表恢复到删除它之前的状态,同时还会恢复所有索引以及任何权限和触发器,的主键和非空约束也会被恢复(注意不包括外键)。 Oracle 10g开始,drop table 命令的实现方式为:它实际上根本没有删除表,而只是重命名表,并把重命名的表放进回收站(每个用户都有一个回收站)可以在user_recyclebin数据字典中查看当前用户的回收站中的内容,如:被drop的表重命名后的表名 以及drop之前的名字等等信息, 我们已经知道rname 一个表并不会改变表的对象号,当用户发出drop table 命令后,在内部已经把它映射到re
资源详情
资源评论
资源推荐
Oracle闪回删除表原理分析闪回删除表原理分析
首先你应该明白闪回删除操作的对象仅仅是表,它允许你将之前删除的表恢复到删除它之前的状态,同时还会恢复所有索
引以及任何权限和触发器,的主键和非空约束也会被恢复(注意不包括外键)。
Oracle 10g开始,drop table 命令的实现方式为:它实际上根本没有删除表,而只是重命名表,并把重命名的表放进回收
站(每个用户都有一个回收站)可以在user_recyclebin数据字典中查看当前用户的回收站中的内容,如:被drop的表重命名后
的表名 以及drop之前的名字等等信息, 我们已经知道rname 一个表并不会改变表的对象号,当用户发出drop table 命令后,
在内部已经把它映射到rename命令,删除表后表的对象号并没有改变,并且所占的存储空间大小 位置都没有改变,只是这时
候它所占用的空间是可以被占用的(个人认为应该是当没有其他空间可以使用的时候会占用它),这时候会出问题,导致闪回
删除操作不一定成功,再是当你删除一个表后,你又重新建立一个相同名字的表,这时候你要重命名要闪回删除操作的表,
如: flashback table table_name to before drop rename new_name ;.
注意:
1.truncate 的表是不能被闪回删除操作的,
2.drop table name purge ; 这样删除的表会删除多有引用且不能恢复,
3.drop user liu cascade,这样删除的用户liu 的表是不能被闪回的,
4.如果删除了一个表后,又重新建立了一个一样名字的表,又把刚建立的表给删除了,那么在回收站将会有两个不一样回
收站名字的表,默认执行闪回删除操作将会恢复新的版本,你可以指定回收站中表的名字来指定要恢复的表,如:flashback
table "BIN$CXLTgwchMOTgUwpYqcBKAA==$0" to before drop ;
5.如果表上有索引和约束,这样的话,当你drop table 后 ,相应的约束和索引,也会在回收站重新名,而且当你闪回删除
时,相关的索引和约束会保留在回收站的名字,但是可以重命名成以前的名字: alter index "索引在回收站的名字" rename
to name_inx; alter table table_name rename constraint "约束在回收站的名字" to 以前的名字;
6.flashback drop 不能闪回system 表空间中的表
weixin_38733245
- 粉丝: 4
- 资源: 894
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0