热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

【Oracle】undo损坏,无备份非常规恢复

客户的一个测试环境,主机异常断电,启动后发现undo文件损坏,无法启动,在open阶段报错如下:Errorsinfileu01apporaclediagrdbmscdrdbCDRDBtraceCDRDB_ora_4109.trc:ORA-01122:databasefile3failedverificationcheckORA-01110:dataf

客户的一个测试环境,主机异常断电,启动后发现undo文件损坏,无法启动,在open阶段报错如下: Errors in file /u01/app/oracle/diag/rdbms/cdrdb/CDRDB/trace/CDRDB_ora_4109.trc: ORA-01122: database file 3 failed verification check ORA-01110: data f

客户的一个测试环境,主机异常断电,启动后发现undo文件损坏,无法启动,在open阶段报错如下:

Errors in file /u01/app/oracle/diag/rdbms/cdrdb/CDRDB/trace/CDRDB_ora_4109.trc:

ORA-01122: database file 3 failed verification check

ORA-01110: data file 3: '/u01/app/oracle/oradata/CDRDB/undotbs01.dbf'

ORA-01210: data file header is media corrupt

ORA-1122 signalled during: ALTER DATABASE OPEN...

由于是测试环境,没有备份,但是又需要里边的一些数据,所以我尝试使用非常规恢复方法进行了尝试。

先冷备份现有环境!!!!!!!!!!!!!!!!

创建pfile文件:

create pfile from spfile;

在pfile中修改这两个参数

#*.undo_tablespace='UNDOTBS1'

*.undo_management= MANUAL

之后用这个pfile启动:

SYS@CDRDB>startup force pfile='/u01/app/oracle/product/11.2.0/dbhome_1/dbs/initCDRDB.ora';

ORACLE instance started.

Total System Global Area 523108352 bytes

Fixed Size 1337632 bytes

Variable Size 364906208 bytes

Database Buffers 150994944 bytes

Redo Buffers 5869568 bytes

Database mounted.

ORA-01122: database file 3 failed verification check

ORA-01110: data file 3: '/u01/app/oracle/oradata/CDRDB/undotbs01.dbf'

ORA-01210: data file header is media corrupt

仍然报错

之后尝试drop掉这个undo

SYS@CDRDB>alter database datafile 3 offline drop;

Database altered.

之后重新开库

SYS@CDRDB>alter database open;

Database altered.

之后创建新的undo表空间undotbs2

SYS@CDRDB>create undo tablespace undotbs2 datafile '/u01/app/oracle/oradata/CDRDB/undotbs02_01.dbf' size 100M;

create undo tablespace undotbs2 datafile '/u01/app/oracle/oradata/CDRDB/undotbs02_01.dbf' size 100M

*

ERROR at line 1:

ORA-00604: error occurred at recursive SQL level 1

ORA-01552: cannot use system rollback segment for non-system tablespace

'DATA_OL'

ORA-06512: at line 999

ORA-01552: cannot use system rollback segment for non-system tablespace

'DATA_OL'

产生报错如上

比较疑惑创建undo为什么会影响到DATA_OL表空间,所以做了个10046

SYS@CDRDB>oradebug event 10046 trace name context off

Statement processed.

SYS@CDRDB>oradebug tracefile_name

/u01/app/oracle/diag/rdbms/cdrdb/CDRDB/trace/CDRDB_ora_4279.trc

[oracle@centos-1 ~]$ tkprof /u01/app/oracle/diag/rdbms/cdrdb/CDRDB/trace/CDRDB_ora_4279.trc

output = 1.trm

查看1.trm,发现了原因:

"OGG".DDLReplication.dbQueried IS NULL THEN

SELECT database_role,

open_mode

INTO dbRole, dbOpenMode

FROM v$database;

"OGG".DDLReplication.dbQueried := TRUE;

END IF;

IF NOT (

^@ (dbRole = 'PRIMARY' OR dbRole = 'LOGICAL STANDBY')

AND dbOpenMode =

'READ WRITE'

)

THEN

-- do not write any trace even though it

should work as this is standby

"OGG"

.DDLReplication.setCtxInfo(-1,-1,-1,-1,-1);

RETURN; -- do not use

trigger if not read/write and primary/logical_standby

END IF;

EXCEPTION

......略

原来是因为这个库配置过OGG的DDL同步,有DDL产生时会产生insert操作,使用DATA_OL表空间。

原因找到~ 跑脚本关闭该库OGG的DDL配置即可

SYS@CDRDB>@ddl_disable.sql

Trigger altered.

之后再重新创建undotbs2表空间

SYS@CDRDB>create undo tablespace undotbs2 datafile '/u01/app/oracle/oradata/CDRDB/undotbs02_01.dbf' size 1000M;

Tablespace created.

这次很顺利的添加成功。

undotbs2添加完毕,接下来关闭数据库,修改pfile参数

*.undo_tablespace='UNDOTBS2'

*.undo_management=AUTO

重启数据库用pfile启动

SYS@CDRDB>startup pfile='/u01/app/oracle/product/11.2.0/dbhome_1/dbs/initCDRDB.ora';

ORACLE instance started.

Total System Global Area 523108352 bytes

Fixed Size 1337632 bytes

Variable Size 364906208 bytes

Database Buffers 150994944 bytes

Redo Buffers 5869568 bytes

Database mounted.

Database opened.

数据库成功启动,然而在很多业务表查询时依然会报错:

ERROR at line 1:

ORA-00376: file 3 cannot be read at this time

ORA-01110: data file 3: '/u01/app/oracle/oradata/CDRDB/undotbs01.dbf'

依然需要原来的undotbs01.dbf回滚数据库崩溃时未提交的事务

之后我先尝试了设置event 10513,来屏蔽smon的回滚

SYS@CDRDB>alter system set events '10513 trace name context forever, level 2';

System altered.

发现还是会报之前的错误,看来需要自己手工去屏蔽回滚段了。

SYS@CDRDB>SELECT SEGMENT_NAME,STATUS FROM DBA_ROLLBACK_SEGS;

SEGMENT_NAME STATUS

------------------------------ ----------------

SYSTEM ONLINE

_SYSSMU10_4131489474$ NEEDS RECOVERY

_SYSSMU9_1735643689$ NEEDS RECOVERY

_SYSSMU8_3901294357$ NEEDS RECOVERY

_SYSSMU7_3517345427$ NEEDS RECOVERY

_SYSSMU6_2897970769$ NEEDS RECOVERY

_SYSSMU5_538557934$ NEEDS RECOVERY

_SYSSMU4_1003442803$ NEEDS RECOVERY

_SYSSMU3_1204390606$ NEEDS RECOVERY

_SYSSMU2_967517682$ NEEDS RECOVERY

_SYSSMU1_592353410$ NEEDS RECOVERY

SEGMENT_NAME STATUS

------------------------------ ----------------

_SYSSMU30_244658789$ ONLINE

_SYSSMU29_1020880693$ ONLINE

_SYSSMU28_2912622077$ ONLINE

_SYSSMU27_747253598$ ONLINE

_SYSSMU26_560868814$ ONLINE

_SYSSMU25_1357066082$ ONLINE

_SYSSMU24_103440716$ ONLINE

_SYSSMU23_1006903361$ ONLINE

_SYSSMU22_2808190508$ ONLINE

_SYSSMU21_39626587$ ONLINE

21 rows selected.

之后把查询到的NEEDS RECOVERY的表加到以下两个参数中,屏蔽这些回滚段

_offline_rollback_segments/_corrupted_rollback_segments参数

*._offline_rollback_segments=(_SYSSMU10_4131489474$,_SYSSMU9_1735643689$,_SYSSMU8_3901294357$,_SYSSMU7_3517345427$,_SYSSMU6_2897970769$,_SYSSMU5_538557934$,_SYSSMU4_1003442803$,_SYSSMU3_1204390606$,_SYSSMU2_967517682$,_SYSSMU1_592353410$)

*._corrupted_rollback_segments=(_SYSSMU10_4131489474$,_SYSSMU9_1735643689$,_SYSSMU8_3901294357$,_SYSSMU7_3517345427$,_SYSSMU6_2897970769$,_SYSSMU5_538557934$,_SYSSMU4_1003442803$,_SYSSMU3_1204390606$,_SYSSMU2_967517682$,_SYSSMU1_592353410$)

使用这个pfile启动数据库

startup force pfile='/u01/app/oracle/product/11.2.0/dbhome_1/dbs/initCDRDB.ora';

之后对那些测试表都查询了一下,确认可以查询,之后导出帮他们导出数据,一切OK~

推荐阅读
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • 推荐一个ASP的内容管理框架(ASP Nuke)的优势和适用场景
    本文推荐了一个ASP的内容管理框架ASP Nuke,并介绍了其主要功能和特点。ASP Nuke支持文章新闻管理、投票、论坛等主要内容,并可以自定义模块。最新版本为0.8,虽然目前仍处于Alpha状态,但作者表示会继续更新完善。文章还分析了使用ASP的原因,包括ASP相对较小、易于部署和较简单等优势,适用于建立门户、网站的组织和小公司等场景。 ... [详细]
  • Ubuntu 9.04中安装谷歌Chromium浏览器及使用体验[图文]
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 成功安装Sabayon Linux在thinkpad X60上的经验分享
    本文分享了作者在国庆期间在thinkpad X60上成功安装Sabayon Linux的经验。通过修改CHOST和执行emerge命令,作者顺利完成了安装过程。Sabayon Linux是一个基于Gentoo Linux的发行版,可以将电脑快速转变为一个功能强大的系统。除了作为一个live DVD使用外,Sabayon Linux还可以被安装在硬盘上,方便用户使用。 ... [详细]
  • 本文介绍了在CentOS 7.x上进行端口映射配置的方法,通过修改内核和配置防火墙实现端口映射。作者分享了自己使用华为服务器进行端口映射的经验,发现网速比直连还快且稳定。详细的配置过程包括开启系统路由模式功能、设置IP地址伪装、设置端口映射等。同时,还介绍了如何监听本地端口的tcp请求,以及删除规则和开放的端口的方法。 ... [详细]
  • 在CentOS/RHEL 7/6,Fedora 27/26/25上安装JAVA 9的步骤和方法
    本文介绍了在CentOS/RHEL 7/6,Fedora 27/26/25上安装JAVA 9的详细步骤和方法。首先需要下载最新的Java SE Development Kit 9发行版,然后按照给出的Shell命令行方式进行安装。详细的步骤和方法请参考正文内容。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • CentOS 6.5安装VMware Tools及共享文件夹显示问题解决方法
    本文介绍了在CentOS 6.5上安装VMware Tools及解决共享文件夹显示问题的方法。包括清空CD/DVD使用的ISO镜像文件、创建挂载目录、改变光驱设备的读写权限等步骤。最后给出了拷贝解压VMware Tools的操作。 ... [详细]
  • CEPH LIO iSCSI Gateway及其使用参考文档
    本文介绍了CEPH LIO iSCSI Gateway以及使用该网关的参考文档,包括Ceph Block Device、CEPH ISCSI GATEWAY、USING AN ISCSI GATEWAY等。同时提供了多个参考链接,详细介绍了CEPH LIO iSCSI Gateway的配置和使用方法。 ... [详细]
  • 本文介绍了在Linux系统中设置文件ACL权限的方法和使用说明,包括在centos7.3和centos6.9中开启ACL权限的两种方法:在挂载时指定打开ACL权限和修改默认的属性信息。同时提供了对ACL权限的详细解释和应用场景。 ... [详细]
  • 本文介绍了在CentOS 6.4系统中更新源地址的方法,包括备份现有源文件、下载163源、修改文件名、更新列表和系统,并提供了相应的命令。 ... [详细]
  • Vagrant虚拟化工具的安装和使用教程
    本文介绍了Vagrant虚拟化工具的安装和使用教程。首先介绍了安装virtualBox和Vagrant的步骤。然后详细说明了Vagrant的安装和使用方法,包括如何检查安装是否成功。最后介绍了下载虚拟机镜像的步骤,以及Vagrant镜像网站的相关信息。 ... [详细]
  • Linux下安装依赖包版本高解决方法
    本文介绍了在Linux系统下,当已安装的依赖包版本高于需要安装的依赖包版本时,解决方法包括欺骗安装程序和修改相关配置文件等操作。针对不同情况,提供了不同的解决方案。 ... [详细]
  • centos安装Mysql的方法及步骤详解
    本文介绍了centos安装Mysql的两种方式:rpm方式和绿色方式安装,详细介绍了安装所需的软件包以及安装过程中的注意事项,包括检查是否安装成功的方法。通过本文,读者可以了解到在centos系统上如何正确安装Mysql。 ... [详细]
  • Centos下安装memcached+memcached教程
    本文介绍了在Centos下安装memcached和使用memcached的教程,详细解释了memcached的工作原理,包括缓存数据和对象、减少数据库读取次数、提高网站速度等。同时,还对memcached的快速和高效率进行了解释,与传统的文件型数据库相比,memcached作为一个内存型数据库,具有更高的读取速度。 ... [详细]
author-avatar
余夫子曰
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有