磁碟陣列故障,分區/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
相关推荐
比较深入浅出的描述了基于oracle10g/11g的UNDO表空间的管理
oracle 收缩undo表空间,需要收缩Undo表空间时特别有用。
演示如何收缩Oracle数据库的undo表空间
oracle Undo表空间管理,oracle 学习人员必看的不可缺少的资料。
Oracle中,当Temp和Undo表空间无限增大时,回收这部分空间就是个问题
Oracle释放过度使用的Undo表空间,脚本
undo表空间恢复
oracle 9i UNDO表空间数据文件丢失恢复得全过程。。
undo 表空间利用率 处理 事务 回滚等介绍 以及如何切换undo表空间
地震前兆Oracle数据库UNDO表空间持续增长修复.pdf
oracle 数据库的 undo表空间管理 全面分析介绍
ORACLE的UNDO表空间
甲骨论-08-Undo表空间管理 本章详细介绍了undo表空间的工作原理以及与undo相关的数据字典
一定要意识到,如果 undo 表空间中存在空间压力时,我们不保证前镜像一定会保留这么长时间。 因此,以下公式可用于计算佳 undo 表空间大小: 从 Oracle 10g 开始,您可以选择使用 GUARANTEE 选项,以确保在...
innodb_undo_directory:指定单独存放undo表空间的目录,默认为.(即datadir),可以设置相对路径或者绝对路径。该参数实例初始化之后虽然不可直接改动,但是可以通过先停库,修改配置文件,然后移动undo表空间文件...
Oracle 9i数据库中自动Undo表空间管理.pdf
Oracle 12c中的表空间管理、用户和角色、临时Undo
如何Shrink Undo表空间,释放过度占用的空间
UNDO表空间用来存放改变前的旧值。里面也有段区块,ORACLE自动建立生成、自动使用UNDO段。 作为高级别的DBA是需要知道ORACLE如何使用UNDO段的。 1 Undo表空间及管理方式 ORACLE开始一个事务的时候,会用到表空间。...
如果Oracle在运行中很不幸遇到undo损坏,当然最好的方法是完全恢复,不过如果没有备份,可以采用一种非常规的手段(利用Oracle的隐藏参数),如果此时undo包含未提交的事务,会造成一点点的数据丢失(一般都是可忍受...