`

解决Oracle 表空间UNDOTBS1太大的问题

阅读更多

UNDOTBS1是一个回滚表空间,随着数据库的使用,默认会自动扩展。当它增大到一定程度,占用了过多的磁盘空间时,就需要进行清理了。下面就在2种操作系统下讲解清理该表空间的方法。


一、环境:windows xp;数据库:Oracle 9i。


在windows系统下,无法完全使用命令行方式操作数据库。具体步骤如下:


1. 启动PLSQL工具连接数据库,登录信息:system/password@DBSID as sysdba;新建一个command window;


2. 创建一个新的回滚段表空间:


SQL> create undo tablespace undotbs2 datafile '%oracle_home%/oradata/DBSID/undotbs02.dbf' size 500M;


Tablespace created.


3. 将回滚段指向新的表空间:


SQL> alter system set undo_tablespace=undotbs2 scope=spfile;


System altered.


4. 重新启动数据库:


在windows环境下,该步无法使用命令行操作;


在系统服务项中,重启oracle的关键服务:


OracleOraHome92TNSListener


OracleServiceDBSID


5. PLSQL重新连接数据库:system/password@DBSID as sysdba;新建command window;


Oracle 9i默认自动管理回滚段,为了防止其无限制增长,可以将其设为人工管理:


SQL> alter system set undo_management =MANUAL scope=spfile;


System altered.


(本人建议:还是让数据库自动管理回滚段比较好,可以定期清理该表空间)


6. 重新启动数据库(参照步骤4)


7. 删除原来的回滚空间:


PLSQL重新连接数据库:system/password@DBSID as sysdba;新建command window;


SQL> drop tablespace undotbs1 including contents and datafiles;


Tablespace dropped.


该步骤只能删除数据库对该空间的管理信息,要想完全删除该表空间文件,需要到相应的目录下手动删除;


8. 结束


二、环境:linux;数据库:Oracle 9i。


1. 登陆到数据库

oracle@suse:~> sqlplus '/as sysdba'

SQL*Plus: Release 9.2.0.4.0 - Production on 星期一 10月 10 17:24:26 2011

Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.


Connected to:
Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.4.0 - Production

2. 创建一个新的回滚段表空间

SQL> create undo tablespace undotbs2 datafile '%oracle_home%/oradata/DBSID/undotbs02.dbf' size 500M;

Tablespace created.


3. 将回滚段指向新的表空间

SQL> alter system set undo_tablespace=undotbs2 scope=spfile;

System altered.

4. 重新启动数据库

SQL> startup force
ORACLE instance started.

Total System Global Area 688985728 bytes
Fixed Size 452224 bytes
Variable Size 671088640 bytes
Database Buffers 16777216 bytes
Redo Buffers 667648 bytes
Database mounted.
Database opened.

5. 因为oracle9i默认是自动管理回滚段,为了防止其无限制的增长,可以将其设置为人工管理:
SQL> alter system set undo_management =MANUAL scope=spfile;

System altered.

6. 重新启动数据库:

SQL> startup force
ORACLE instance started.

Total System Global Area 688985728 bytes
Fixed Size 452224 bytes
Variable Size 671088640 bytes
Database Buffers 16777216 bytes
Redo Buffers 667648 bytes
Database mounted.
Database opened.

7. 删除原来的回滚段:
SQL> drop tablespace undotbs1 including contents and datafiles;

Tablespace dropped.

8. 退出

SQL> quit
Disconnected from Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.4.0 - Production。
************************
select segment_name,bytes from user_segments where tablespace_name='COLLEGE_DATA' order by byte
truncate table
**************************


分享到:
评论

相关推荐

    Oracle的UNDOTBS01.DBF文件太大的解决办法

    ### Oracle的UNDOTBS01.DBF文件太大的解决办法 在Oracle数据库管理过程中,可能会遇到UNDOTBS01.DBF文件过大的问题。这个问题通常出现在数据库执行了大量的DML(数据操纵语言)操作后,例如更新(UPDATE)、插入...

    oracle表空间命令语句大全

    Oracle 表空间命令语句大全提供了 Oracle 数据库管理的重要操作,包括建立表空间、建立 UNDO 表空间、建立临时表空间、改变表空间状态、删除表空间、扩展表空间和查看表空间信息等。这些命令对于 Oracle 数据库管理...

    脚本-Oracle释放过度使用的Undo表空间

    解决Undo表空间被占用的问题 在某些情况下,由于正在进行的事务或者会话的占用,我们可能无法直接删除或修改Undo表空间。这时,我们需要先查找并终止相关的会话或事务。 - **查找占用Undo表空间的会话**: ```...

    ORACLE 表空间的部分操作

    本文将详细介绍Oracle中关于表空间的一些关键操作,包括创建、修改、管理和删除表空间的过程,以及如何处理表空间的在线与离线状态,数据文件的管理,以及表空间的扩展策略。 #### 一、建立表空间 创建表空间是...

    Oracle表空间详解

    Oracle 10g推荐的基础表空间包括SYSTEM、SYSAUX、UNDOTBS1、EXAMPLE、TEMP和USERS,以及其他根据实际需求创建的用户表空间。在决定表空间结构时,需要考虑数据的特征,以优化存储效率,减少碎片并降低磁盘竞争。 ...

    oracle表空间操作详解

    Oracle数据库中的表空间是存储数据的基本单位,它用于组织数据库对象,如表、索引和其他数据结构。在Oracle中,管理表空间对于确保数据库高效运行至关重要。以下是对Oracle表空间操作的详细解释: 1. 建立表空间: ...

    29.Oracle表空间和数据文件1

    3. **UNDOTBS1表空间**:回滚表空间,主要功能包括事务回滚、数据库恢复、读一致性以及闪回查询。它保存了事务处理期间的数据变化,以便在需要时可以恢复到先前状态,确保数据的一致性和完整性。 4. **TEMP表空间**...

    关于oracle的表空间,分区表,以及索引的总结

    ### Oracle的表空间、分区表及索引的深入解析 #### 表空间(Tablespace)在Oracle中的作用与管理 表空间是Oracle数据库中的逻辑存储单元,它将数据组织成可管理的部分,允许数据库管理员更好地控制数据存储和性能...

    oracle 收缩undo表空间

    - `DROP TABLESPACE UNDOTBS1`:删除名为`UNDOTBS1`的表空间。 - `INCLUDING CONTENTS AND DATAFILES`:同时删除与表空间关联的所有内容和数据文件。 - `CASCADE CONSTRAINTS`:级联删除依赖于该表空间的约束。 ###...

    linux oracle 建表,表空间以及删除命令

    其中,UNDOTBS02 是 UNDO 表空间的名称,/oracle/oradata/db/UNDOTBS02.dbf 是数据文件的路径,SIZE 50M 是数据文件的初始大小。 三、建立临时表空间 临时表空间是 Oracle 数据库中的一种特殊表空间,用于存储临时...

    oracle表空间入门.doc

    ### Oracle表空间基础知识详解 #### 一、Oracle表空间概览 在Oracle数据库中,**表空间**是一个非常重要的概念,它将物理存储与逻辑结构相结合,为用户提供了一个清晰的数据组织方式。简单来说,表空间是由一个或多...

    Oracle12c表空间维护总结

    - **解释**:与CDB层类似,在PDB1中创建了一个名为`UNDOTBS2`的UNDO表空间,同样设置了数据文件路径、初始大小为5MB,禁用自动扩展功能,并启用了本地扩展管理。 #### 三、指定默认表空间 - **永久表空间**:指定...

    oracle数据库UNDOTBS空间清理

    当UNDOTBS1表空间的使用率超过90%时,意味着数据库可能面临着空间不足的问题,这会影响数据库的正常运行,因为撤销数据的存储对于事务的回滚和数据库的一致性至关重要。告警信息显示了UNDOTBS1表空间的使用情况,...

    oracle空间碎片的整理

    可以通过调整表空间大小或清理不必要的数据来解决这个问题。 综上所述,Oracle空间碎片的整理是一项重要的维护工作,对于提高数据库性能和存储效率具有重要意义。通过对空间碎片的合理评估与有效的整理措施,可以...

    oracle表空间,分区表,索引.pdf

    例如,当"UNDOTBS01.DBF"文件过大时,可以通过禁用自动扩展,创建新的小表空间"UNDOTBS2",然后将系统默认的回滚段表空间设置为新创建的表空间,最后删除旧的表空间。此外,创建和删除表空间的SQL语句也有所展示,这...

    oracle11g创建临时表空间组

    在Oracle 11g R2版本中,引入了临时表空间组的概念,这一特性为数据库管理提供了更大的灵活性。与传统的单个临时表空间相比,临时表空间组允许多个临时表空间协同工作,从而提高并发性能和资源利用率。下面将详细...

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

    类似于Temp表空间,UNDO表空间也可能随着事务数量的增加而变得非常大,且Oracle同样不会自动释放已分配但未使用的空间。因此,也需要定期对UNDO表空间进行维护。 **2.1 处理流程** ##### 步骤一:创建新的UNDO表...

    oracle表空间,分区表,索引借鉴.pdf

    删除原来的undo表空间`undotbs1`及其所有内容。 - **查看所有表空间情况**: ```sql SELECT * FROM DBA_TABLESPACES; ``` 使用这条SQL语句可以查看当前数据库中所有表空间的信息,包括名称、类型等。 - **...

    Oracle讲解3表空间.ppt

    表空间有联机(ONLINE)和脱机(OFFLINE)两种状态,一般情况下,除SYSTEM、SYSAUX、UNDOTBS1和TEMP表空间外,其他表空间可设置为脱机,但不影响数据库整体运行。 SYSTEM表空间是Oracle数据库的核心,包含了数据库...

    Oracle 数据库应用:第7章 管理表空间.ppt

    4. **大文件表空间**与**小文件表空间**:这两种表空间主要区别在于数据文件的组织方式,大文件表空间支持单一大容量的文件,而小文件表空间则包含多个较小的文件。 创建表空间的基本步骤包括选择合适的磁盘空间,...

Global site tag (gtag.js) - Google Analytics