【Oracle专栏】Oracle 之 回收站

 Oracle相关文档,希望互相学习,共同进步

风123456789~-优快云博客


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;   --清空当前用户的回收站


项目管理--相关知识   

项目管理-项目绩效域1/2-优快云博客

项目管理-项目绩效域1/2_八大绩效域和十大管理有什么联系-优快云博客

项目管理-项目绩效域2/2_绩效域 团不策划-优快云博客

高项-案例分析万能答案(作业分享)-优快云博客

项目管理-计算题公式【复习】_项目管理进度计算题公式:乐观-优快云博客

项目管理-配置管理与变更-优快云博客

项目管理-项目管理科学基础-优快云博客

项目管理-高级项目管理-优快云博客

项目管理-相关知识(组织通用治理、组织通用管理、法律法规与标准规范)-优快云博客


Oracle其他文档,希望互相学习,共同进步

Oracle-找回误删的表数据(LogMiner 挖掘日志)_oracle日志挖掘恢复数据-优快云博客

oracle 跟踪文件--审计日志_oracle审计日志-优快云博客

ORA-12899报错,遇到数据表某字段长度奇怪现象:“Oracle字符型,长度50”但length查却没有50_varchar(50) oracle 超出截断-优快云博客

EXP-00091: Exporting questionable statistics.解决方案-优快云博客

Oracle 更换监听端口-优快云博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值