`
com1com4
  • 浏览: 162084 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Oracle 11G rollback段出错修复

阅读更多
测试服务器的磁盘满了,经分析由于测试服务器经常进行大量数据清理,UNDO表空间占了太多空间,于是打算新建UNDO表空间(UNDOTBS2),把旧(UNDOTBS1)的清理掉。
删除旧空间的时候发现怎么都删不了,报错说有回滚段被占用。
于是用查看回滚段情况:
select owner,segment_name,SEGMENT_ID,FILE_ID,BLOCK_ID,STATUS,tablespace_name from dba_rollback_segs;
 
结果显示 _SYSSMU14_1571488672$,_SYSSMU16_3431913684$ 等多个在UNDOTBS1上的回滚段的STATUS显示“NEEDS RECOVERY”,即这些回滚段有错误需要修复,阻止了删除UNDOTBS1。
 
上网搜索相关修复方法,按实际情况拟定修复方案,最后成功修复。方案如下:
  1. 用实例的system账号以DBA身份登录sqlplus:
    • sqlplus system/**** as sysdba
  2. 关闭数据库:
    • shutdown immediate
  3. 创建pfile文件:
    • create pfile 'c:/pfile.ora' from spfile
  4. 修改pfile文件,添加以下参数:
    • *.undo_management='Manual'
    • _corrupted_rollback_segments=('_SYSSMU14_1571488672$','_SYSSMU16_3431913684$')
  5. 启动数据库:
    • startup pfile='c:/pfile.ora'
  6. 删除状态为needs Recovery的segment:
    • drop rollback segment "_SYSSMU14_1571488672$"; 
    • 注意是用双引号,删除会有报错信息,只要删除了就忽略出错信息吧。
  7. 重启数据库并删除undo表空间:
    • drop tablespace UNDOTBS1 including contents and datafiles;
  8. 修改pfile.ora,去除之前添加的隐藏参数启动数据库:
    • startup pfile='c:/pfile.ora'
  9. 检查数据库是否能正常工作。
  10. 检查正常,确认完成修复,重启服务器。
 
 
以下为修复中使用过的一些命令记录:
查询正在运行的事务的回滚段使用情况
select s.username, u.name from v$transaction t,v$rollstat r, v$rollname u,v$session s where s.taddr=t.addr and t.xidusn=r.usn and r.usn=u.usn order by s.username;

查询数据文件情况
select * from dba_data_files where tablespace_name like 'UNDOTBS1';

查询回滚空间的使用情况
select usn,xacts,status,rssize/1024/1024/1024, hwmsize/1024/1024/1024,shrinks from v$rollstat order by rssize;

创建新的UNDO表空间
create undo tablespace undotbs2 datafile 'D:\app\Administrator\oradata\QAS\UNDOTBS02.DBF' size 10m reuse autoextend on next 100m maxsize 20g;

指定系统使用新的UNDO表空间
alter system set undo_tablespace=undotbs2 scope=both;

显示UNDO相关参数
show parameter undo;
 
几个参考链接:
分享到:
评论

相关推荐

    深入解析oracle的回滚段

    Oracle数据库中的回滚段(Rollback Segments)是存储事务历史的重要组件,它们记录了数据修改前的状态,以确保数据的完整性和一致性。在深入理解回滚段之前,我们需要先明确其基本概念和作用。 回滚段的主要功能...

    oracle 11g sql language reference

    3. 事务控制:在Oracle 11g中,事务控制使用COMMIT、ROLLBACK和SAVEPOINT等命令来管理事务。事务是一组逻辑上相关的操作,它们要么全部成功,要么全部失败。 4. 数据查询语言(DQL):DQL语句用来从数据库中检索...

    Oracle11g 数据库

    Oracle11g数据库是Oracle公司推出的数据库管理系统,它在企业级数据存储、管理和处理方面具有广泛的应用。Oracle数据库11g版本引入了许多新特性和增强功能,旨在提高性能、可用性和安全性,同时降低了管理和维护的...

    oracle 11g架构

    Oracle 11g架构是Oracle数据库系统在2008年发布的一个重要版本,它提供了许多先进的特性和改进,以增强性能、可用性、安全性和管理效率。在深入探讨Oracle 11g架构之前,先要理解数据库的基本概念。数据库是存储和...

    Oracle 11g 教程 代码

    Oracle 11g 是一款广泛使用的商业关系数据库管理系统,提供了高效的数据存储、管理和处理功能。本教程中的代码集主要是针对Oracle 11g中的SQL语言,这是用于与关系数据库进行交互的标准语言。以下是对这些代码示例的...

    oracle 11g R2 exp无法导出空表的解决方法

    Oracle 11g R2 中 exp 无法导出空表的解决方法有四种:insert 一行再 rollback、设置 deferred_segment_creation 参数、使用 expdp 命令、使用 alter 语句。每种方法都有其优缺,选择哪种方法取决于具体情况。

    Oracle11G导入导出(imp和exp)少表解决方法

    Oracle 11G 导入导出(imp 和 exp)少表解决方法 Oracle 11G 是一个功能强大且复杂的数据库管理系统,它提供了多种方式来导入和导出数据。然而,在使用 Oracle 11G 时,用户可能会遇到一些问题,例如无法导出空表...

    Oracle 11g内部技术文档

    Oracle 11g的存储结构包括表空间、数据块、段、区和表。表空间是数据库的逻辑划分,数据块是数据库的最小存储单元。段由一个或多个区组成,用于存储特定类型的数据库对象,如表、索引等。区是数据库在磁盘上的物理...

    oracle11g 编程实战

    Oracle 11g是Oracle公司推出的数据库管理系统的一个重要版本,其PL/SQL(Procedural Language/Structured Query Language)是一种强大的编程语言,专为在Oracle数据库上构建应用程序而设计。PL/SQL结合了SQL的查询...

    Oracle 11g学习笔记基础篇(pdf)

    ### Oracle 11g基础知识详解 #### SQL语句与数据类型 在Oracle 11g中,SQL语句不区分大小写,尽管如此,开发者习惯上会将关键字以大写形式书写,以便于代码的阅读与理解。字符串数组在Oracle中的小标是从1开始的,...

    ojdbc6_oracle11gR2jdbc驱动_zip_

    Oracle 11g R2 JDBC驱动程序是连接Java应用程序与Oracle数据库的关键组件。JDBC(Java Database Connectivity)是Java编程语言中的一个标准API,它允许Java开发者通过编写Java代码来访问和处理各种类型的数据库,...

    ORACLE11G SQL Language Reference

    Oracle Database 11g SQL Language Reference 是一本权威的参考手册,为用户提供关于Oracle数据库11g版本(11.2版本)SQL语言的详细指导。本书是Primary Authors:Diana Lorentz和MaryBeth Roeser领导下,由多位贡献...

    Oracle 11g标准教程 思考与练习答案

    从给定的文件信息来看,这是一系列针对Oracle 11g数据库管理系统的教程思考与练习的答案集合。Oracle 11g是Oracle公司推出的一款功能强大的关系型数据库管理系统,广泛应用于企业级的数据存储和管理。以下是对部分...

    NHibernate连接和读取Oracle11G实例

    在这个“NHibernate连接和读取Oracle11G实例”中,我们将深入探讨如何利用NHibernate与Oracle 11G数据库进行交互。 首先,要建立NHibernate与Oracle 11G的连接,我们需要以下关键组件: 1. **Oracle驱动**:Oracle...

    Oracle Database 11g SQL [官方教程]PDF

    Oracle Database 11g SQL是Oracle公司为数据库管理员和开发人员提供的一款强大的关系型数据库管理系统。这个官方教程详细地介绍了如何使用SQL语言在Oracle 11g环境中进行数据管理、查询、更新和分析。以下是对该教程...

    oracle 11g 驱动

    Oracle 11g驱动是Java应用程序连接Oracle数据库的关键组件,主要功能是实现Java数据库连接(JDBC)。在Java编程中,开发人员通过JDBC接口与各种数据库进行交互,包括Oracle数据库。Oracle 11g JDBC驱动是Oracle公司...

    Oracle 11g JDBC API Reference

    Oracle 11g JDBC API Reference 是Oracle公司为Java开发者提供的一份详细文档,它涵盖了在Oracle 11g数据库环境中使用JDBC(Java Database Connectivity)技术进行数据访问和操作的相关接口、类和方法。这份文档是...

    数据库oracle11g导出 空表

    Oracle 11g导出空表、少表的解决办法  ORACLE 11G中有个新特性,当表无数据时,不分配segment,以节省空间。 解决方法:  1)insert一行,再rollback就产生segment了  该方法是在在空表中插入数据,再删除,则...

    Oracle11g-PLSQLBasic-ppt

    Oracle 11g是Oracle公司推出的数据库管理系统的一个版本,它提供了强大的数据管理和处理能力。PL/SQL(Procedural Language/Structured Query Language)是Oracle专为数据库操作设计的一种过程化编程语言,它与SQL...

    oracle10g数据库基础知识与单一文件损坏修复

    Oracle 10g数据库基础知识与单一文件损坏修复涵盖了数据库的核心概念和关键操作,这对于初学者而言是一份很好的学习资料。以下将详细介绍其中的关键知识点。 首先,SQL(结构化查询语言)是与数据库交互的标准语言...

Global site tag (gtag.js) - Google Analytics