admin 管理员组文章数量: 1184232
Oracle相关文档,希望互相学习, 共同进步
1.概述
回收站的全称叫: Tablespace Recycle Bin 。
Oracle回收站是一个逻辑区域, Oracle并没有为它分配物理空间 。当表被drop后,如果回收站中空间够用的话,表并没有被立即删除,Oracle会给表加上一个被删除的标记。只有当回收站空间不足,或者手动清理回收站,这些被删除的表才会被彻底删除。所以误删除后,可以用闪回技术还原被删除的表。
2. 实验
2.1 准备测试用户、表
准备测试用户:1)查询表空间
2)创建用户 nh_test
准备测试表:nh_test.test
相关命令:
sqlplus / as sysdba
alter session set container=xxx;
#查询表空间、查询配置文件及限制
select * from dba_tablespaces;
select * from dba_profiles;
#创建用户 nh_test
create user nh_test identified by test1102
default tablespace nh_cdt_data
temporary tablespace temp
profile default;
grant connect,resource to nh_test;
alter user nh_test default tablespace ny_data;
alter user nh_test quota 10m on ny_data
#创建表
create table test(a1 varchar2(5), a2 varchar2(10));2.2 查询回收站状态
从Oracle 10g版本开始,回收站功能默认是 开启 的,其作用类似于Windows的回收站,用于存储被删除的对象,如表、索引、约束、触发器等,以便在需要时进行恢复。
dba用户登录,查询是否开启
命令:
如果没有开启, 系统级别 开启: ALTER SYSTEM SET recyclebin = on;
如果需要禁用, 系统级别 命令: ALTER SYSTEM SET recyclebin = off;
以上为系统级别开启、关闭。
回话级别开启:ALTER SESSION SET RECYCLEBIN=on;
回话级别关闭:ALTER SESSION SET RECYCLEBIN=OFF;
关闭回收站后的 影响 :
1)Oracle回收站关闭后,用户删除的对象将不会被放入回收站,而是直接从数据库中删除。这意味着一旦误删数据,将无法通过回收站进行恢复。
2)由于回收站中的数据仍然占用空间,关闭回收站可以减少这部分空间的占用。然而一旦误删数据,恢复的难度增加。
set linesize 200;
show parameter recyclebin; #查看回收站开启状态,on 是开启的 off是关闭的
或者:
set linesize 200;
select name,value from v$parameter where name='recyclebin';结果截图:
2.3 drop表后 查询回收站
1)创建表,插入数据,查询
#创建表
create table aaa(a1 varchar2(5), a2 varchar2(10));
insert into aaa values('1','1111');
commit;
select * from aaa;
2)删除表 drop table
drop table aaa;3)查询回收站 recyclebin
查看:recyclebin、user_recyclebin、dba_recyclebin 三个同义词
recyclebin、user_recyclebin 相同:查看回收站中 当前用户 的对象。dba_recyclebin:查看 所有回收站的对象 ,需要dba角色或相应权限才能访问该视图。
SELECT * FROM user_recyclebin;
2.4 闪回 恢复表
-- 从回收站中恢复被删除的表
FLASHBACK TABLE aaa TO BEFORE DROP;
执行后,发现表又恢复了。注意:此时再查回收站就没有该对象了。
说明:假如drop掉一个表test,再新建一个表test,然后再drop.那么flashback table test to before drop只能 还原最后 被drop掉的表test.最先drop掉的表还原时会出错,因为表名不能重名.所以必须改名flashback table test to before drop rename to test2。
恢复成功:ok
2.5 清空回收站 或 清空回收站中指定的表
PURGE TABLE aaa; --清空回收站中指定表,清后无法从回收站恢复
PURGE RECYCLEBIN; --清空当前用户的回收站
项目管理--相关知识
Oracle其他文档,希望互相学习, 共同进步
版权声明:本文标题:Oracle回收站大揭秘:从菜鸟到高手的进阶之路 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1772183206a3553052.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论