`
wenlongsust
  • 浏览: 71749 次
  • 性别: Icon_minigender_1
  • 来自: 西安
文章分类
社区版块
存档分类
最新评论

Oracle清理回收站的方法

 
阅读更多

原文链接:http://blog.itpub.net/18841027/viewspace-1057765/

purge DBA_RECYCLEBIN用于删除Oracle数据库回收站的所有数据,需要sys登录执行。

[@more@]

-bash-3.00# su - oracle

[oracle@rpt]$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.1.0 - Production on Thu Mar 29 12:00:25 2012

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, OLAP and Data Mining options

sys@rpt> SELECT count(*) FROM dba_recyclebin;

COUNT(*)

----------

13545

sys@rpt> purge DBA_RECYCLEBIN;

DBA Recyclebin purged.

sys@rpt>


****************************************华丽的分隔线******************************************

Oracle 11g 回收站(recyclebin)的使用

原文链接:http://www.linuxidc.com/Linux/2011-09/43916.htm


Flashback是以undo segment中的内容为基础的,因此受限于undo_retenton参数,要使用flashback的特征,必须启动自动撤销表空间。

Oracle11g中,出现了一个新的特征,oracle flashback data archive(FDA),通过将变化的数据另外存储到创建的一个闪回归档去(flashback archive),以和undo区别开,这样可以单独设置存储策略,使其可以山回到指定时间之前的旧数据而不影响undo策略。 在Oracle 11g中,recyclebin参数发生了微小的变化.

This supported parameter was introduced in Oracle 10.2.0

Version

Parameter Name

Data Type

Session Modifiable

System Modifiable

10.2.0

recyclebin

String

TRUE

IMMEDIATE

11.1.0

recyclebin

String

TRUE

DEFERRED

从文档上我们可以看到这个变化说明,到了11g中,这个参数在session依然可以立即修改并影响当前的session,但如果是在系统一级修改的话,那么就要加deferred参数,对当前已经连接的sesion没有影响,但新连接的session将受到影响

Flashback不支持sys用户,system表空间下面的对象,也不能从回收站里拿到。故使用sys或是system用户登录时,show recyclebin为空。

启动闪回数据库的步骤:

1, 开启归档模式:alter database archivelog;

2, 配置闪回区:alter system set db_recovery_file_dest=’/../’

3, 配置闪回保留时间,默认是1440minutes:alter system set db_flashback_retention_target=’2880’;

4, 启动闪回数据库:shutdown immediate;startup mount

Alter database flashback on/off;

5, 执行闪回操作:shutdown immediate;startup mount;

Flashback database to timestamp to_date(‘2001-02-03’,’yyyy-mm-dd hh24:mi:ss’);

或是:flashback database to scn 2323534;

Alter database open ready only;检查闪回时刻是否是所需的数据,如果不是,可以继续修改。

检查完毕之后:shutdown immediate;startup mount; alter database open resetlogs;resetlogs是将control file中的scn#与数据文件中的scn#同步,消除时间间隔。

V$flashback_database_log视图,可以查看闪回日志所占的空间,最早能闪回到的scn,最早能闪回到的时间点

7,查看回收站:show recyclebin; 或是select * from sys.recyclebin$查 所有的回收站。

8,恢复被删除的表:flashback table t_name to before drop;如果闪回的表名与当前的表名相同,需要重命名才可以闪回

Flashback table t_name to before drop rename to t_new;

9,闪回指定的表

查看表结构:desc “BIN$qrjyuHuVotHgQAB/AQAQ3w==$0”;

查看表的记录:select count(*) from “BIN$qrjyuHuVotHgQAB/AQAQ3w==$0”;

安装表名称恢复:flashback table “BIN$qrjyuHuVotHgQAB/AQAQ3w==$0” to before drop;

越过回收站直接删除:drop table t purge;drop user cascade; drop tablespace users including contents;

清空回收站:purge index idx_1; purge user_recyclebin; purge dba_recyclebin;

当设置db_recovery_file_dest为空的时候,也可以取消闪回区,如果已经启用flashback database;则这个方法不能取消。

查看当前的scn:select current_scn from v$database;

查看哪些对象可以利用闪回恢复区来存放:

SQL> select file_type from v$flash_recovery_area_usage;

FILE_TYPE

--------------------

CONTROL FILE

REDO LOG

ARCHIVED LOG

BACKUP PIECE

IMAGE COPY

FLASHBACK LOG

FOREIGN ARCHIVED LOG

7 rows selected.

查看闪回恢复区空间的使用情况:

SQL> select * from v$flash_recovery_area_usage;

FILE_TYPE PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE

-------------------- ------------------ -------------------------

NUMBER_OF_FILES

---------------

CONTROL FILE 0 0

0

REDO LOG 0 0

0

ARCHIVED LOG 0 0

0

FILE_TYPE PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE

-------------------- ------------------ -------------------------

NUMBER_OF_FILES

---------------

BACKUP PIECE 0 0

0

IMAGE COPY 0 0

0

FLASHBACK LOG 0 0

0

FILE_TYPE PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE

-------------------- ------------------ -------------------------

NUMBER_OF_FILES

---------------

FOREIGN ARCHIVED LOG 0 0

0

7 rows selected.

计算flash recovery area已经占用的空间:

SQL> select sum(percent_space_used)*3/100 from v$flash_recovery_area_usage;

SUM(PERCENT_SPACE_USED)*3/100

-----------------------------

0

如果flash recovery area空间不足导致db不能打开或是hang住的处理方法

Alter system set db_recovery_file_dest_size=3G scope=spfiel;



分享到:
评论

相关推荐

    Oracle回收站空间清空.doc

    Oracle 回收站空间清空 Oracle 回收站是一种特殊的存储区域,用于存储已删除的表和对象。它可以帮助用户快速恢复误删除的表和对象,避免数据丢失。下面是关于 Oracle 回收站的知识点: 1. 查看回收站:使用 SELECT...

    关于oracle10供了类似操作系统中的回收站功能

    Oracle 10g 引入的回收站(Recycle Bin)功能是数据库管理的一大进步,它为用户提供了一种类似于操作系统中的回收站机制,允许用户在误删数据库对象后有机会恢复。这一特性显著减少了因人为错误导致的数据丢失问题,...

    ORACLE 回收站当前状态查询整理

    Oracle数据库的回收站功能是自Oracle 10g版本开始引入的一个重要特性,它提供了一种恢复意外删除对象的机制,极大地增强了数据安全性。回收站本质上是一个数据字典表,用于存储用户通过DROP操作删除的对象信息。这些...

    Oracle10g数据库回收站的管理与维护.pdf

    但在Oracle10g中,删除的对象并不会立即被清理,而是被移动到回收站,以备后续恢复。 回收站的工作原理是,当执行删除操作时,如DROP TABLE,Oracle不会立即释放相关空间,而是将原来的表重命名并移入回收站。表名...

    oracle表空间碎片整理

    利用DBMS_SPACE包对Oracle 表碎片进行监控与清理,

    Oracle 10G中的回收站

    Oracle 10G的回收站是数据库管理系统中一个重要的特性,它允许用户在不小心删除数据库对象后能够方便地恢复这些对象,从而极大地减少了因误操作导致的数据丢失问题。回收站本质上是一个数据字典表,存储了被Drop操作...

    快速掌握删除Oracle 10g垃圾表的好方法

    在Oracle 10g数据库管理系统中,用户可能会遇到一种特殊的现象,即在执行删除操作后,仍然能在数据库中发现一些看似无用的“垃圾表”。...在日常数据库管理中,定期检查和清理回收站是非常重要的维护工作。

    ORACLE表空间的回收脚本.rar

    3. **表空间回收方法** - **段压缩**:对表、索引等进行压缩,减少它们在表空间中的物理占用。 - **重分布数据**:通过移动对象到其他表空间或调整表分区来释放空间。 - **删除无用对象**:清理临时表、临时段、...

    Oracle LOB字段处理工具

    Oracle数据库系统中,LOB(Large Object)字段是用来存储大量数据的类型,如图像、音频、视频或大型文本文件。在数据库操作中,LOB字段的处理往往比常规的行数据更为复杂,因为它涉及到大块的数据读取、写入和管理。...

    oracle定时删除表空间的数据并释放表空间

    9. **回收站管理**:Oracle的回收站功能可以防止意外删除的数据丢失,但也会占用表空间。适时清空回收站可以释放被删除对象占用的空间。 10. **数据归档和卸载**:对于不再频繁访问的历史数据,可以考虑归档或卸载...

    Oracle的Temp表空间和UNDO表空间的处理

    **1.1 清理方法** ##### 方法一:Resize调整大小 对于未使用的或当前未被占用的Temp表空间,可以直接通过`ALTER DATABASE TEMPFILE`命令来调整其大小: ```sql ALTER DATABASE TEMPFILE '/u01/app/oracle/...

    彻底删除和闪回oracle表

    然而,回收站并非无限大,当需要新的磁盘空间时,Oracle会清理回收站以释放空间。 彻底删除Oracle表的步骤如下: 1. 使用`DROP TABLE`命令删除表,如`DROP TABLE test;` 2. 检查回收站,确认表是否在回收站中,...

    消除oracle块碎片监控、清理以提高性能大全

    本文将深入探讨Oracle块碎片的监控方法、清理策略以及如何通过这些方法提升数据库性能。 一、Oracle块碎片的产生 1. 表空间碎片:当表中的行被删除或更新时,其占用的空间可能不会立即被回收,导致空闲空间散落在...

    Oracle管理 | 回收站

    例如,如果`USERS`表空间占用过大,但实际利用率低,可以通过`PURGE`命令清理回收站释放空间。不过,清理前要确保没有需要恢复的重要对象,因为一旦执行`PURGE`,对象将无法找回。 总结来说,Oracle的回收站功能为...

    oracle 误删除表恢复

    - **清理特定表空间中的回收站对象**:例如,如果需要清理`USERS`表空间中的所有回收站对象,可以使用: ```sql PURGE TABLESPACE USERS; ``` ### 总结 Oracle数据库的回收站功能为误删表的恢复提供了强大的支持...

    win完全卸载oracle

    2. 使用磁盘清理工具(`Disk Cleanup`)清理回收站和其他临时文件。 #### 步骤八:验证卸载结果 1. 重新检查步骤二中的注册表路径,确保没有遗漏。 2. 检查环境变量,确认已删除所有Oracle相关的条目。 3. 验证...

    oracle中已killed session的处理

    然而,在某些情况下,即使Session已经被标记为“KILLED”,Oracle系统仍然可能不会立即回收该Session所占用的资源。这种情况下,就需要采取进一步措施来清理这些残留的Session。 #### 二、识别已Killed Session 当...

    oracle 闪回已删除的表

    - 在某些情况下,可能需要清理整个表空间的回收站。 - 示例:`SQL> PURGE TABLESPACE USERS;` 通过以上介绍可以看出,Oracle的闪回删除功能不仅能够帮助恢复误删的表,还能灵活地管理和恢复多个版本的表。这对于...

Global site tag (gtag.js) - Google Analytics