`
wuhuizhong
  • 浏览: 684357 次
  • 性别: Icon_minigender_1
  • 来自: 中山
社区版块
存档分类
最新评论

undo表空间损坏的处理过程

 
阅读更多

磁碟陣列故障,分區/rman上包括undo和archivelog文件丟失,資料庫可正常重新啟動,

但是執行逻辑备份报错:
EXP-00056: ORACLE error 376 encountered
ORA-00376: file 15 cannot be read at this time
ORA-01110: data file 15: '/rman/oradata/mat/undo2.dbf'
EXP-00000: Export terminated unsuccessfully


shutdown immediate也報錯:
SQL> shutdown immediate
ORA-00376: file 15 cannot be read at this time
ORA-01110: data file 15: '/rman/oradata/mat/undo2.dbf'
--
SQL> shutdown abort
ORACLE instance shut down.
SQL> startup
ORACLE instance started.

Total System Global Area  823203736 bytes
Fixed Size                   452504 bytes
Variable Size             285212672 bytes
Database Buffers          536870912 bytes
Redo Buffers                 667648 bytes
Database mounted.
ORA-16038: log 1 sequence# 10626 cannot be archived
ORA-19504: failed to create file ""
ORA-00312: online log 1 thread 1: '/oracle/oradata/mat/redo01.log'

解決方法:重新创建归档目录
# mkdir -p /rman/arch
# chown -R oracle:dba /rman/arch

然後open資料庫,重新创建undo表空间。

SQL> alter database open;

Database altered.

SQL> shutdown immediate
ORA-00376: file 15 cannot be read at this time
ORA-01110: data file 15: '/rman/oradata/mat/undo2.dbf'

-- 修改参数文件pfile加上如下两个参数:
$ vi initmat.ora
*._allow_resetlogs_corruption=true
*._corrupted_rollback_segments=(_SYSSMU1$,_SYSSMU2$,_SYSSMU3$,_SYSSMU4$,_SYSSMU5$,_SYSSMU6$,_SYSSMU7$,_SYSSMU8$,_SYSSMU9$,_SYSSMU10$)

-- 保存后用pfile启动
SQL> startup pfile=initmat.ora
-- 重新创建undo表空间
create undo tablespace undo1 datafile '/data/mat/undo1.dbf' size 100m
/
-- 切换undo表空间
alter system set undo_tablespace=undo1  scope=both;
drop tablespace UNDO2 including contents and datafiles;

-- 再次查询需要恢复的文件,已经不存在了
SQL> select * from v$recover_file;
no rows selected
-- 再次关闭数据库,并重启,沒有发现报错。
SQL> shutdown immediate

-- 把原来的参数进行修改,去掉隐含参数,再次启动
SQL> startup pfile=initmat.ora
SQL> create spfile from pfile;
SQL> shutdown immediate
SQL> startup

 

 

分享到:
评论

相关推荐

    [Oracle] 解析在没有备份的情况下undo损坏怎么办

    在使用Oracle数据库过程中,若遇到Undo表空间损坏且没有备份的情况,可通过以下步骤尝试解决此问题: 1. **创建临时的pfile文件**:首先,需要创建一个临时的初始化参数文件(pfile),因为此时无法直接从服务器...

    Oracle热备的不完全恢复(undo未备份)

    这种恢复通常发生在某些重要的数据文件丢失或损坏的情况下,例如本文提到的undo表空间未被备份的情况。 #### 实现步骤 1. **热备开始与结束命令**:首先通过`ALTER DATABASE BEGIN BACKUP;` 和 `ALTER DATABASE ...

    ocp题库042

    在给出的文件片段中,我们可以提取出关于Oracle数据库管理的多个知识点,这些知识点涉及到了Undo表空间的大小决定因素、数据库启动阶段、创建数据库的方法以及约束的启用等。以下是详细的说明: 1. Undo表空间的...

    oracle10g服务器断电恢复

    - 为消除回滚段中的活动事务,需要在 pfile 中配置手动 undo 管理,设置 undo_retention 为一个较短的时间,指定新的 undo 表空间,并标记已损坏的回滚段。 总结,Oracle 10g 数据库在遭遇意外断电时,可能需要一...

    Mysql InnoDB删除数据后释放磁盘空间的方法

    MySQL的InnoDB存储引擎在处理数据删除时,采取了一种高效但可能会导致磁盘空间占用过高的策略。当用户删除数据行时,InnoDB并不会立即回收这些被删除的数据所占用的空间,而是简单地将这些记录标记为已删除。这种...

    浅谈Oracle常见错误处理

    这个过程包括从init.ora文件获取UNDO_TABLESPACE、检查UNDO_TABLESPACE是否指定、是否有可用的enqueue、扫描TS$以找到第一个可用的UNDOTTS、以X模式获取enqueue,并激活UNDO表空间。 最后,文档介绍了事务标识符...

    Oracle数据块损坏知识.pdf

    在创建数据库时确定的数据块大小,通常在数据库创建后不可以修改,但可以创建使用非标准数据块大小的表空间。 Oracle数据块的构成主要包括三个层次:Cache层、事务层和数据层。Cache层是数据块在内存中的映射,其中...

    ora-1555 相关_auto undo management.pdf

    对于更复杂的数据恢复场景,如表空间损坏等情况,还需要借助其他工具和技术。 #### 总结 自动撤销管理和闪回查询是Oracle 9i中两项非常重要的特性。AUM极大地简化了撤销数据的管理,而闪回查询则为用户提供了一个...

    Oracle恢复操作流程图

    这依赖于闪回日志和 undo 表空间。 在"Oracle恢复操作流程图"中,这些步骤将以直观的图形形式展示,帮助用户理解每一步的操作顺序和目的。在实际操作中,理解并熟练掌握这个流程对于快速、准确地恢复Oracle数据库至...

    MYSQL数据库表的修复教程

    然而,数据库表的损坏是任何数据库管理员都不希望遇到的问题。本教程将深入探讨MySQL数据库表的修复方法,帮助你理解可能导致数据损坏的原因,并提供有效的解决策略。 首先,数据库表损坏可能由多种原因引起。最...

    oracle 回滚段灾难恢复

    这里,我们创建了一个大小为100MB的回滚表空间`undotbs2`,并将系统参数`undo_tablespace`设置为这个新创建的表空间,以确保后续的事务操作将使用这个新的回滚表空间。 #### 2. 删除并重建回滚段 接下来,我们需要...

    闪回技术、备份恢复与优化.txt

    - 调整undo表空间大小和undo retention参数,以确保有足够的空间来存储undo记录。 - **定期清理Recycle Bin**: - 定期检查Recycle Bin并清理不再需要的对象,避免占用过多空间。 - **备份和恢复优化**: - 使用...

    oracle自测题 oracle自测题oracle自测题oracle自测题oracle自测题oracle自测题

    - 初始化参数:DBA可以通过`UNDO_MANAGEMENT`、`UNDO_TABLESPACE`和`UNDO_RETENTION`参数来管理回滚表空间,这些参数分别控制回滚段的自动管理、指定回滚表空间以及回滚数据保留的时间。 5. **数据字典**: - ...

    oracle课程学习与资源分享(附每章自测题及答案).zip

    这一章会讲解PL/SQL的基本语法,包括声明变量、控制流程语句(如IF-THEN-ELSE,LOOP)、异常处理以及过程和函数的创建。理解并熟练运用PL/SQL是成为Oracle开发人员的基础。 "第9章 系统安全管理.ppt"讨论了Oracle...

    Oracle数据库常见问题诊断-常见错误篇

    - 增大 UNDO 表空间的大小,以容纳更长时间的事务处理。 - 调整事务处理方式,避免长时间运行的事务。 - 考虑使用 `FETCH_ACROSS` 选项来优化查询性能。 #### 6. ORA-04031 错误 - 共享池内存不足 **问题描述:** ...

    oracle 日常操作维护

    - **UNDO表空间**:UNDO表空间用于存储事务处理过程中产生的撤销数据。可以通过`ALTER DATABASE UNDO TABLESPACE`命令管理UNDO表空间。 - **TEMP表空间**:临时表空间用于存储临时对象,如排序操作期间使用的临时表...

    HairOracle数据库运维手册.docx

    - **UNDO表空间**:管理UNDO表空间,以支持事务处理。 - **TEMP表空间**:管理临时表空间,用于临时数据的存储。 - **重做日志文件管理** - **增加REDO日志组**:添加新的重做日志组。 - **删除日志组**:删除旧...

    ORACLE日常维护实例[归类].pdf

    如果任一表空间使用率超过90%,应在当天进行清理或扩大其大小,但temp和undo表空间除外。使用以下SQL查询可以获取表空间的详细信息: ``` SELECT d.tablespace_name, SPACE "SUM_SPACE(M)", blocks sum_...

Global site tag (gtag.js) - Google Analytics