`
ahut9923
  • 浏览: 238458 次
  • 性别: Icon_minigender_1
  • 来自: 安徽
社区版块
存档分类
最新评论

切换undo表空间

阅读更多

1.查看表空间使用情况
SELECT TABLESPACE_NAME, SUM(BYTES) / 1024 / 1024 / 1024 GB
  FROM DBA_DATA_FILES
 GROUP BY TABLESPACE_NAME
UNION ALL
SELECT TABLESPACE_NAME, SUM(BYTES) / 1024 / 1024 / 1024 GB
  FROM DBA_TEMP_FILES
 GROUP BY TABLESPACE_NAME
 ORDER BY GB;


有时UNDO TEMP 表空间会扩大到几十G,而不会缩小.

2.查看表空间文件存放的地方
SELECT FILE_NAME, BYTES / 1024 / 1024
  FROM DBA_DATA_FILES
 WHERE TABLESPACE_NAME LIKE 'UNDOTBS1';

3.检查UNDO Segment状态
SELECT USN,
       XACTS,
       RSSIZE / 1024 / 1024 / 1024,
       HWMSIZE / 1024 / 1024 / 1024,
       SHRINKS
  FROM V$ROLLSTAT
 ORDER BY RSSIZE;

XACTS = 0 为没UNDO表空间没使用,1为正在使用.

4.创建新的UNDO表空间:
  CREATE UNDO TABLESPACE UNDOTBS02
DATAFILE '/oracle/oradata/ora9i/UNDOTBS02.dbf' SIZE 50M

5.切换UNDO表空间到新的表空间
alter system set undo_tablespace=UNDOTBS02 scope=both;

6.等待原UNDO表空间所有UNDO SEGMENT OFFLINE,
SELECT USN,
       XACTS,
       RSSIZE / 1024 / 1024 / 1024,
       HWMSIZE / 1024 / 1024 / 1024,
       SHRINKS
  FROM V$ROLLSTAT
 ORDER BY RSSIZE;

等XACTS = 所有为0 的时候就可以DROP掉原来的UNDO表空间

7.DROP掉原来的UNDO表空间最好先:
alter tablespace undotbs1  offline;
等过了几分钟后再执行下面这个命令
drop tablespace undotbs1 including contents AND DATAFILES;

分享到:
评论

相关推荐

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

    - **切换Undo表空间**: ```sql ALTER SYSTEM SET undo_tablespace=undotbs1t SCOPE=BOTH; ``` 该命令将数据库的Undo表空间切换至`undotbs1t`。 - **删除旧的Undo表空间**: ```sql DROP TABLESPACE ...

    数据库undo表空间问题集锦

    切换undo表空间通常发生在现有的undo表空间不足以满足需求或者需要优化性能时。通过ALTER SESSION命令可以设置当前会话使用的undo表空间,全局的默认undo表空间则通过初始化参数UNDO_TABLESPACE设置。在切换前,...

    oracle 收缩undo表空间

    2. **性能影响**:在进行Undo表空间的切换操作期间,可能会对数据库性能造成一定影响。 3. **文件清理**:即使删除了表空间,对应的文件可能仍然存在。可以通过操作系统级别的命令手动删除这些文件。 4. **监控**:...

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

    可以通过以下方式将数据库的UNDO表空间切换到新创建的表空间: - **通过动态参数修改**: ```sql ALTER SYSTEM SET UNDO_TABLESPACE = undotbs SCOPE = BOTH; ``` - **通过初始化参数文件修改**: 修改初始化...

    oracle数据库学习总结.docx

    - **切换UNDO表空间**: ```sql ALTER SYSTEM SET undo_tablespace=[新UNDO表空间名]; ``` #### 三、表空间状态的改变 **使表空间脱机** - **命令**: ```sql ALTER TABLESPACE [表空间名] OFFLINE; ``` - *...

    Oracle经典常用技巧荟萃

    定期的维护和切换undo表空间,可以确保数据库的稳定性。 2. Oracle数据库的空间管理技巧:空间管理是数据库维护中的另一个重要方面,合理的空间管理策略能够防止空间浪费,提高数据存储效率。 3. 创建和使用分区的...

    oracle9i高级复制实施手记

    切换Undo表空间需要系统停机后再启动,以确保更改生效。 8. **Job中断**:复制作业可能会由于各种原因中断,导致数据传播受阻。这需要监控和管理复制作业的状态,及时解决出现的问题。 9. **故障排查**:在实施...

    Oracle 12C R2本地UNDO模式

    Oracle 12C R2 引入了一种新的UNDO管理模式——本地UNDO模式(LOCAL_UNDO_ENABLED),它允许每个可插拔数据库(PDB)拥有独立的UNDO表空间。这一特性显著提升了数据库性能,并为高级功能提供了支持。 #### 二、传统...

    Oracle数据库常见维护问题手册-精典

    当需要重建或切换Undo表空间时,可以采取以下步骤: 1. 创建新的Undo表空间: ```sql CREATE UNDO TABLESPACE undotbs1 DATAFILE '/path/to/undotbs1.dbf' SIZE 100M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED; ...

    表空间暴长后如何才能取消自动扩展

    `切换到新的`UNDO2`表空间。 3. 等待所有事务完成,并确认没有活动事务后,删除旧的`UNDO1`表空间。 4. 如果确认`UNDO1`表空间上没有活动事务,可以直接删除并重建。 #### 三、检查表空间数据文件是否为自动扩展 ...

    ORACLE 表空间的部分操作

    若需切换至新建的UNDO表空间,需执行系统级设置: ```sql CREATE UNDOTABLESPACE UNDOTBS02 DATAFILE '/oracle/oradata/db/UNDOTBS02.dbf' SIZE 50M; ALTER SYSTEM SET undo_tablespace=UNDOTBS02; ``` #### 三、...

    oracle表空间操作详解

    然后,需要通过以下命令切换到新的UNDO表空间: ```sql ALTER SYSTEM SET undo_tablespace=UNDOTBS02; ``` 3. 建立临时表空间: 临时表空间用于存储临时数据,如排序或连接操作的中间结果。创建临时表空间的命令...

    回滚段管理

    - **删除**:需确保该UNDO表空间不再被任何实例使用,若为活动状态,则需先切换至新的UNDO表空间,待所有当前事务完成后再删除。 ### UNDO_RETENTION参数 该参数控制撤销数据在UNDO段中的保留时间,单位为秒。调整...

    RAC下的REDO和UNDO管理

    例如,假设我们有一个名为`XYZ.undo_tablespace`的UNDO表空间,它将为集群中的每个实例提供UNDO记录。当某个实例崩溃时,其UNDO段仍可以被其他在线节点用于回滚事务和一致性读取,确保了RAC集群的高可用性和数据一致...

    oracle数据库热备恢复手册

    本文档提供了 Oracle 热备份恢复的手册,包括Undo 表空间恢复、非系统数据文件恢复、Oracle 热备份恢复过程、系统崩溃恢复、Undo 表空间和 Rollback 段、数据库初始化参数、数据库恢复命令等知识点。

    Oracle建表空间、用户操作详解-入门基础.pdf

    创建和管理UNDO表空间的方法与普通表空间类似,但需要注意的是,系统通常有一个默认的UNDO表空间,且在打开状态下只能有一个UNDO表空间处于活动状态。若需切换,须执行: ``` ALTER SYSTEM SET undo_tablespace=...

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

    #### 解决方案三:创建并切换到新的撤销表空间 如果希望进一步优化撤销数据的管理,并减少UNDOTBS01.DBF文件的大小,可以考虑创建一个新的撤销表空间,并将其设置为系统的默认撤销表空间。具体步骤如下: 1. **...

Global site tag (gtag.js) - Google Analytics