日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ORACLE10回收站-Recyclebin

發布時間:2024/8/26 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ORACLE10回收站-Recyclebin 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

從Oracle10g開始,Oracle引入了flashback drop的新特性,這個新特性,允許你從當前數據庫中恢復一個被drop了的對象。在執行drop操作時,現在Oracle不是真正刪除它,而是將該對象自動將放入回收站。對于一個對象的刪除,其實僅僅就是簡單的重令名操作。

所謂的回收站,是一個虛擬的容器,用于存放所有被刪除的對象。在回收站中,被刪除的對象將占用創建時的同樣的空間,你甚至還可以對已經刪除的表查詢,也可以利用flashback功能來恢復它, 這個就是flashback drop功能。

這個功能雖然可以極大的簡化誤drop導致的恢復操作,但是長時間的積累可能會導致大量的空間占用(雖然Oracle具有自己的清理機制),很多時候我們需要手工介入去清理回收站。本文主要介紹清理回收站的幾種方法.

?1.大量累計的空間占用

Connected to Oracle Database 10g Enterprise Edition Release 10.1.0.3.0
Connected as SYS
SQL> col owner for a12
SQL> select owner,object_name,CREATETIME,DROPTIME from dba_recyclebin
? 2? order by droptime
? 3? / OWNER??????? OBJECT_NAME??????????????????? CREATETIME????????? DROPTIME
------------ ------------------------------ ------------------- -------------------
COMMON?????? BIN$AHsQ+pi+Kb/gRAADumkBdQ==$0 2005-08-29:16:42:19 2005-09-11:15:36:17
COMMON?????? BIN$AHsQ+pi9Kb/gRAADumkBdQ==$0 2005-08-29:16:42:19 2005-09-11:15:36:17
PDA????????? BIN$AdEb4zqqUcTgRAADumkBdQ==$0 2005-09-05:10:31:01 2005-09-28:15:40:39
......
BJLAIS_RUN?? BIN$BtkGRT0dSwfgRAADumkBdQ==$0 2005-11-30:10:54:07 2005-12-01:16:13:17
BJLAIS_RUN?? BIN$BtkGRT0cSwfgRAADumkBdQ==$0 2005-11-30:10:54:07 2005-12-01:16:13:17 750 rows selected SQL>

2.不同用戶在回收站的對象

SQL> select owner,count(*) from dba_recyclebin group by owner;?? OWNER????????????????? COUNT(*)
-------------------- ----------
BJLAIS_RUN?????????????????? 44
COMMON??????????????????????? 8
MMSBLOG???????????????????? 618
MMSHAWA_RUN?????????????????? 2
PDA?????????????????????????? 8
RING_RUN???????????????????? 70 6 rows selected.

3.我們可以指定刪除某些特定對象

SQL> purge table common.T_SERVICE_CODE_INFO;

Table purged.

4.指定清除某個表空間的所有回收站對象

SQL> purge tablespace common; Tablespace purged. SQL> select owner,count(*) from dba_recyclebin group by owner;?? OWNER????????????????? COUNT(*)
-------------------- ----------
BJLAIS_RUN?????????????????? 44
MMSBLOG???????????????????? 618
MMSHAWA_RUN?????????????????? 2
PDA?????????????????????????? 8
RING_RUN???????????????????? 70

5.以SYSDBA身份可以清除所有回收站對象

SQL> purge dba_recyclebin;

DBA Recyclebin purged.

SQL> select owner,count(*) from dba_recyclebin group by owner;??

no rows selected

6.禁用recyclebin

?



如果我們不希望使用Oracle的recyclebin,可以通過參數禁用這個特性。

在Oracle10gR1中,通過修改一個隱含參數:_recyclebin 為False可以禁用這個特性:

SQL> set linesize 132
SQL> column name format a30
SQL> column value format a25
SQL> select
? 2??? x.ksppinm? name,
? y.ksppstvl? value,
? 3??? y.ksppstdf? isdefault,
? 4??? 5??? decode(bitand(y.ksppstvf,7),1,''MODIFIED'',4,''SYSTEM_MOD'',''FALSE'')? ismod,
? 6??? decode(bitand(y.ksppstvf,2),2,''TRUE'',''FALSE'')? isadj
? 7? from
? 8??? sys.x$ksppi x,
? 9??? sys.x$ksppcv y
?10? where
?11??? x.inst_id = userenv(''Instance'') and
?12??? y.inst_id = userenv(''Instance'') and
?13??? x.indx = y.indx and
?14??? x.ksppinm like ''%&par%''
?15? order by
?16??? translate(x.ksppinm, '' _'', '' '')
?17? /
Enter value for par: recyclebin
old? 14:?? x.ksppinm like ''%&par%''
new? 14:?? x.ksppinm like ''%recyclebin%'' NAME?????????????????????????? VALUE???????????????????? ISDEFAULT ISMOD????? ISADJ
------------------------------ ------------------------- --------- ---------- -----
_recyclebin??????????????????? TRUE????????????????????? TRUE????? FALSE????? FALSE 1 row selected.

在Oracle10gR2中,recyclebin變成了一個常規參數,可以在session/system級動態修改:

[oracle@danaly ~]$ sqlplus "/ as sysdba" SQL*Plus: Release 10.2.0.1.0 - Production on Mon Dec 12 15:34:56 2005 Copyright (c) 1982, 2005, Oracle.? All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, Oracle Label Security, OLAP and Data Mining Scoring Engine options SQL> show parameter recyclebin NAME???????????????????????????????? TYPE??????? VALUE
------------------------------------ ----------- ------------------------------
recyclebin?????????????????????????? string????? on SQL> alter session set recyclebin=off; Session altered. SQL> alter session set recyclebin=on
? 2? / Session altered. SQL> alter system set recyclebin=off; System altered. SQL> alter system set recyclebin=on; System altered.


drop table tableName后,并不能完全清除空間,可以采用以下方法:

?? ?查詢垃圾信息:

??? SELECT t.object_name,t.type ,t.original_name FROM user_recyclebin t;

??? 清除垃圾信息:purge table origenal_tableName;
??? purge index origenal_indexName;

??? 刪除回收站所有垃圾信息:
??? PURGE recyclebin;

??? 刪除Table不進入Recycle的方法:
??? drop table tableName purge;


??恢復表:
?? ?SQL> flashback table XXX to before drop;
?? ?Flashback complete.


總結

以上是生活随笔為你收集整理的ORACLE10回收站-Recyclebin的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。