admin 管理员组文章数量: 1184232
删除一个表,并不执行真正的删除操作,而是重命名后连同表的索引、约束等放入recycl bin
一个用户一个recyclebin
SQL> showparameter recyclebin
NAME TYPE VALUE
----------------------------------------------- --------------------
recyclebin string on
SQL>
SQL> select * from recyclebin; === 》是user_recyclebin的同义词
OBJECT_NAME ORIGINAL_NAME OPERATION TYPE TS_NAME
-------------------------------------------------------------- --------- ------------------------- ---------
BIN$1d7kqYtrRSK8IZuFVL1c2g==$0TMP DROP TABLE USERS
SQL> select * fromuser_recyclebin;
OBJECT_NAME ORIGINAL_NAME OPERATION TYPE TS_NAME
-------------------------------------------------------------- --------- ------------------------- ---------
BIN$1d7kqYtrRSK8IZuFVL1c2g==$0TMP DROP TABLE USERS
SQL> conn sys/ymhas sysdba;
已连接。
SQL> select * fromdba_recyclebin;
OWNER OBJECT_NAME ORIGINAL_NAME OPERATION TYPE
------------------------------------------------------------ -------------------------------- --------- ----
SCOTT BIN$1d7kqYtrRSK8IZuFVL1c2g==$0 TMP DROP TABLE
Original name:被删除对象的原始名称。
Recyclebin name:被删除对象在recycle bin中的名称
Object type:对象类型
Drop time:删除时间
BIN$1d7kqYtrRSK8IZuFVL1c2g==$0
是按照bin$$globalUID$version格式命名:
globalUID:数据库生成的26个长度的标识符
v$version:数据库生成的对象版本号.
SQL> select * from scott.'BIN$1d7kqYtrRSK8IZuFVL1c2g==$0';
select * from scott.'BIN$1d7kqYtrRSK8IZuFVL1c2g==$0'
*
第 1 行出现错误:
ORA-00903: 表名无效
SQL> select * from scott. "BIN$1d7kqYtrRSK8IZuFVL1c2g==$0"; ====> 双引号
ID VL
----------------------------------------
201 A1
202 B1
7 PK_DEPT
8 PK_DEPT
9 PK_DEPT
10 DEPT
11 DEPT
12 DEPT
SQL> drop tableemp;
表已删除。
SQL> select * fromuser_recyclebin;
OBJECT_NAME ORIGINAL_NAME OPERATION TYPE TS_NAME
-------------------------------------------------------------- --------- ------------------------- --------
BIN$3lUPDEw+RA+mIB2+Ot6WsQ==$0TMP DROP TABLE USERS
BIN$Q2RoiyoNQHiky9BiIj44yA==$0PK_EMP DROP INDEX USERS
BIN$1d7kqYtrRSK8IZuFVL1c2g==$0TMP DROP TABLE USERS
BIN$zoK1lJ9+SASHwMbJa5tFSg==$0EMP DROP TABLE USERS
SQL> select * from "BIN$zoK1lJ9+SASHwMbJa5tFSg==$0" as oftimestamp sysdate-1; === 》回收站的东西也支撑 flashback query 查询
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ------------------- ---------- -------------- ---------- ---------- ----------
7369 SMITH CLERK 7902 17-12月-80 800 20
7499 ALLEN SALESMAN 7698 20-2月 -81 1600 300 30
7521 WARD SALESMAN 7698 22-2月 -81 1250 500 30
7566 JONES MANAGER 7839 02-4月 -81 2975 20
7654 MARTIN SALESMAN 7698 28-9月 -81 1250 1400 30
7698 BLAKE MANAGER 7839 01-5月 -81 2850 30
7782 CLARK MANAGER 7839 09-6月 -81 2450 10
7788 SCOTT ANALYST 7566 19-4月 -87 3000 20
7839 KING PRESIDENT 17-11月-81 5000 10
7844 TURNER SALESMAN 7698 08-9月 -81 1500 0 30
7876 ADAMS CLERK 7788 23-5月 -87 1100 20
触发recycle bin主动清理对象只有一个原因:没有足够空间,导致出现不够的有两个:
1、表空间无足够的空闲空间,并且没有新的空间扩展操作。
2、该表空间内又要创建新的对象,需要分配空间。
原则:先进先出(FIFO)。同时删除的,先清理索引后清理表数据
删除不放入回收站的方式:
1、修改初始化参数禁用或启用recycle bin,默认为on。
SQL> alter systemset recyclebin=off;
系统已更改。
SQL> create tablescott.ymh(a int);
表已创建。
SQL> drop tablescott.ymh ;
表已删除。
SQL> select * fromdba_recyclebin where ORIGINAL_NAME='YMH';
未选定行
SQL>
SQL> alter systemset recyclebin=on;
系统已更改。
SQL> create tablescott.ymh(a int);
表已创建。
SQL> drop tablescott.ymh ;
表已删除。
SQL> select * fromdba_recyclebin where original_name='YMH';
OWNER OBJECT_NAME ORIGINAL_NAME OPERATION TYPE
------------------------------------------------------------ -------------------------------- --------- -----
SCOTT BIN$7i2IgZdhSG+IWz5bDB+nZA==$0 YMH DROP TABLE
SQL>
2、删除时指定purge参数
SQL> showparameter recyclebin;
NAME TYPE VALUE
----------------------------------------------- ------------------------------
recyclebin string ON
SQL> create tablescott.ttttttt(a int);
表已创建。
SQL> drop tablescott.ttttttt purge ;
表已删除。
SQL> select * fromdba_recyclebin where original_name='TTTTTTT';
未选定行
SQL>
3、清理recycle bin中的现有对象
SQL> showparameter recyclebin;
NAME TYPE VALUE
----------------------------------------------- ------------------------------
recyclebin string ON
SQL> connscott/tiger
已连接。
SQL> create tabletemp2(id number);
表已创建。
SQL> drop tabletmp2;
表已删除。
SQL> showrecyclebin;
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------------------------------------- ------------ -------------------
TMP BIN$3lUPDEw+RA+mIB2+Ot6WsQ==$0TABLE 2011-07-30:10:29:40
TMP BIN$1d7kqYtrRSK8IZuFVL1c2g==$0TABLE 2011-07-29:23:50:42
TMP2 BIN$hx369X7qTSSo42lU13frIA==$0TABLE 2011-07-30:10:51:23
YMH BIN$7i2IgZdhSG+IWz5bDB+nZA==$0TABLE 2011-07-30:10:42:47
SQL> purge table"BIN$hx369X7qTSSo42lU13frIA==$0";
表已清除。
SQL> showrecyclebin;
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------------------------------------- ------------ -------------------
TMP BIN$3lUPDEw+RA+mIB2+Ot6WsQ==$0TABLE 2011-07-30:10:29:40
TMP BIN$1d7kqYtrRSK8IZuFVL1c2g==$0TABLE 2011-07-29:23:50:42
YMH BIN$7i2IgZdhSG+IWz5bDB+nZA==$0TABLE 2011-07-30:10:42:47
SQL> purgerecyclebin;
回收站已清空。
SQL> showrecyclebin;
SQL>
还有删除用户或所在表空间,也会清空对应的recycle bin。
版权声明:本文标题:Flash玩家的回收站指南:轻松恢复重要文件 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1771941710a3550315.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论