磁碟陣列故障,分區/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表空间损坏且没有备份的情况,可通过以下步骤尝试解决此问题: 1. **创建临时的pfile文件**:首先,需要创建一个临时的初始化参数文件(pfile),因为此时无法直接从服务器...
这种恢复通常发生在某些重要的数据文件丢失或损坏的情况下,例如本文提到的undo表空间未被备份的情况。 #### 实现步骤 1. **热备开始与结束命令**:首先通过`ALTER DATABASE BEGIN BACKUP;` 和 `ALTER DATABASE ...
在给出的文件片段中,我们可以提取出关于Oracle数据库管理的多个知识点,这些知识点涉及到了Undo表空间的大小决定因素、数据库启动阶段、创建数据库的方法以及约束的启用等。以下是详细的说明: 1. Undo表空间的...
- 为消除回滚段中的活动事务,需要在 pfile 中配置手动 undo 管理,设置 undo_retention 为一个较短的时间,指定新的 undo 表空间,并标记已损坏的回滚段。 总结,Oracle 10g 数据库在遭遇意外断电时,可能需要一...
MySQL的InnoDB存储引擎在处理数据删除时,采取了一种高效但可能会导致磁盘空间占用过高的策略。当用户删除数据行时,InnoDB并不会立即回收这些被删除的数据所占用的空间,而是简单地将这些记录标记为已删除。这种...
这个过程包括从init.ora文件获取UNDO_TABLESPACE、检查UNDO_TABLESPACE是否指定、是否有可用的enqueue、扫描TS$以找到第一个可用的UNDOTTS、以X模式获取enqueue,并激活UNDO表空间。 最后,文档介绍了事务标识符...
在创建数据库时确定的数据块大小,通常在数据库创建后不可以修改,但可以创建使用非标准数据块大小的表空间。 Oracle数据块的构成主要包括三个层次:Cache层、事务层和数据层。Cache层是数据块在内存中的映射,其中...
对于更复杂的数据恢复场景,如表空间损坏等情况,还需要借助其他工具和技术。 #### 总结 自动撤销管理和闪回查询是Oracle 9i中两项非常重要的特性。AUM极大地简化了撤销数据的管理,而闪回查询则为用户提供了一个...
这依赖于闪回日志和 undo 表空间。 在"Oracle恢复操作流程图"中,这些步骤将以直观的图形形式展示,帮助用户理解每一步的操作顺序和目的。在实际操作中,理解并熟练掌握这个流程对于快速、准确地恢复Oracle数据库至...
然而,数据库表的损坏是任何数据库管理员都不希望遇到的问题。本教程将深入探讨MySQL数据库表的修复方法,帮助你理解可能导致数据损坏的原因,并提供有效的解决策略。 首先,数据库表损坏可能由多种原因引起。最...
这里,我们创建了一个大小为100MB的回滚表空间`undotbs2`,并将系统参数`undo_tablespace`设置为这个新创建的表空间,以确保后续的事务操作将使用这个新的回滚表空间。 #### 2. 删除并重建回滚段 接下来,我们需要...
- 调整undo表空间大小和undo retention参数,以确保有足够的空间来存储undo记录。 - **定期清理Recycle Bin**: - 定期检查Recycle Bin并清理不再需要的对象,避免占用过多空间。 - **备份和恢复优化**: - 使用...
- 初始化参数:DBA可以通过`UNDO_MANAGEMENT`、`UNDO_TABLESPACE`和`UNDO_RETENTION`参数来管理回滚表空间,这些参数分别控制回滚段的自动管理、指定回滚表空间以及回滚数据保留的时间。 5. **数据字典**: - ...
这一章会讲解PL/SQL的基本语法,包括声明变量、控制流程语句(如IF-THEN-ELSE,LOOP)、异常处理以及过程和函数的创建。理解并熟练运用PL/SQL是成为Oracle开发人员的基础。 "第9章 系统安全管理.ppt"讨论了Oracle...
- 增大 UNDO 表空间的大小,以容纳更长时间的事务处理。 - 调整事务处理方式,避免长时间运行的事务。 - 考虑使用 `FETCH_ACROSS` 选项来优化查询性能。 #### 6. ORA-04031 错误 - 共享池内存不足 **问题描述:** ...
- **UNDO表空间**:UNDO表空间用于存储事务处理过程中产生的撤销数据。可以通过`ALTER DATABASE UNDO TABLESPACE`命令管理UNDO表空间。 - **TEMP表空间**:临时表空间用于存储临时对象,如排序操作期间使用的临时表...
- **UNDO表空间**:管理UNDO表空间,以支持事务处理。 - **TEMP表空间**:管理临时表空间,用于临时数据的存储。 - **重做日志文件管理** - **增加REDO日志组**:添加新的重做日志组。 - **删除日志组**:删除旧...
如果任一表空间使用率超过90%,应在当天进行清理或扩大其大小,但temp和undo表空间除外。使用以下SQL查询可以获取表空间的详细信息: ``` SELECT d.tablespace_name, SPACE "SUM_SPACE(M)", blocks sum_...