分享更有价值
被信任是一种快乐

数据库中数据文件不一致如何恢复

文章页正文上

小编给大家分享一下数据库中数据文件不一致如何恢复,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!还原数据文件无法recover 成功的场景:1、数据库时在非归档的模式下运行:SQL>archiveloglistDatabaselogmodeNoArchiveModeAutom免费主机域名aticarchivalDisabledArchivedestination/u01/archivelogOldestonlinelogsequence1Currentlogsequence22、移动其中的一个数据文件,然后将其 offline,具体操作如下:colfile_namefora50;selectfile_name,ONLINE_STATUSfromdba_data_files;SQL>colfile_namefora50;SQL>selectfile_name,ONLINE_STATUSfromdba_data_files;FILE_NAMEONLINE_———————————————————/u01/app/oradata/orclpri/users01.dbfONLINE/u01/app/oradata/orclpri/undotbs01.dbfONLINE/u01/app/oradata/orclpri/sysaux01.dbfONLINE/u01/app/oradata/orclpri/system01.dbfSYSTEM/u01/app/oradata/orclpri/datafileep_scs_idx.dbfONLINE/u01/app/oradata/orclpri/bpep_scs.dbfONLINE/u01/bpep_caweb.dbfONLINE/u01/app/oradata/orclpri/bpep_caweb_idx.dbfONLINE/u01/app/oradata/orclpri/readonly01.dbfONLINE/u01/app/oradata/orclpri/readwrite01.dbfONLINE/u01/test.dbfONLINEFILE_NAMEONLINE_———————————————————/u01/app/oradata/orclpri/test2.dbfONLINE/u01/app/oradata/orclpri/test3.dbfONLINE我们还是以 test数据文件来做实验。先做 一个MV操作:SQL>!mv/u01/test.dbf/u02/然后将MV过之后的数据文件 offlineSQL>alterdatabasedatafile’/u01/test.dbf’offlinedrop;Databasealtered.切换日志文件:SQL>altersystemswitchlogfile;Systemaltered.多切换几次日志文件。关闭数据库:SQL>shutdownimmediate;Databaseclosed.Databasedismounted.ORACLEinstanceshutdown.将数据库启动到mount 状态:SQL>startupmount;ORACLEinstancestarted.TotalSystemGlobalArea849530880bytesFixedSize1339824bytesVariableSize566234704bytesDatabaseBuffers276824064bytesRedoBuffers5132288bytesDatabasemounted.将MV过的数据文件做rename 操作:SQL>alterdatabaserenamefile’/u01/test.dbf’to’/u02/test.dbf’;Databasealtered.将数据库打开:SQL>alterdatabaseopen;查看各个数据文件的状态:SQL>selectfile_name,ONLINE_STATUSfromdba_data_files;FILE_NAMEONLINE_———————————————————/u01/app/oradata/orclpri/users01.dbfONLINE/u01/app/oradata/orclpri/undotbs01.dbfONLINE/u01/app/oradata/orclpri/sysaux01.dbfONLINE/u01/app/oradata/orclpri/system01.dbfSYSTEM/u01/app/oradata/orclpri/datafileep_scs_idx.dbfONLINE/u01/app/oradata/orclpri/bpep_scs.dbfONLINE/u01/bpep_caweb.dbfONLINE/u01/app/oradata/orclpri/bpep_caweb_idx.dbfONLINE/u01/app/oradata/orclpri/readonly01.dbfONLINE/u01/app/oradata/orclpri/readwrite01.dbfONLINE/u02/test.dbfRECOVERFILE_NAMEONLINE_———————————————————/u01/app/oradata/orclpri/test2.dbfONLINE/u01/app/oradata/orclpri/test3.dbfONLINE将数据文件做 online 操作,会产生如下操作:SQL>alterdatabasedatafile’/u02/test.dbf’online;alterdatabasedatafile’/u02/test.dbf’online*ERRORatline1:ORA-01113:fi免费主机域名le11needsmediarecoveryORA-01110:datafile11:’/u02/test.dbf’尝试 做recover数据文件操作:SQL>recoverdatafile’/u02/test.dbf’;ORA-00279:change2684134generatedat12/04/201621:49:15neededforthread1ORA-00289:suggestion:/u01/archivelog/1_2_929742548.dbfORA-00280:change2684134forthread1isinsequence#2Specifylog:{=suggested|filename|AUTO|CANCEL}autoORA-00308:cannotopenarchivedlog’/u01/archivelog/1_2_929742548.dbf’ORA-27037:unabletoobtainfilestatusLinuxError:2:NosuchfileordirectoryAdditionalinformation:3ORA-00308:cannotopenarchivedlog’/u01/archivelog/1_2_929742548.dbf’ORA-27037:unabletoobtainfilestatusLinuxError:2:NosuchfileordirectoryAdditionalinformation:3发现 做recover操作的时候 报上面的错误。这个时候 想要正常的将数据文件online,可能就需要放弃数据的一致性,需要用到_allow_resetlogs_corruption参数。将_allow_resetlogs_corruption 参数设置为 true ,然后可以将数据文件online修改这个参数:SQL>altersystemset”_allow_resetlogs_corruption”=truescope=spfile;SQL>showparameterallowNAMETYPEVALUE—————————————————————————–_allow_resetlogs_corruptionbooleanTRUE将数据库重启到 mount状态,然后使用RMAN进入,查看incarnationRMAN>listincarnation;ListofDatabaseIncarnationsDBKeyIncKeyDBNameDBIDSTATUSResetSCNResetTime————————————————————-11ORCLPRI1094561153PARENT113-AUG-0922ORCLPRI1094561153PARENT75448813-JUL-1633ORCLPRI1094561153PARENT266312404-DEC-1644ORCLPRI1094561153PARENT268381804-DEC-1655ORCLPRI1094561153CURRENT268413004-DEC-16我们将数据库reset到上个还原点:RMAN>resetdatabasetoIncarnation4;然后 重新将库启动到mount状态:将数据文件online :alterdatabasedatafile’/u02/test.dbf’online;这个时候不能直接打开数据库:SQL>alterdatabaseopen;alterdatabaseopen*ERRORatline1:ORA-01190:controlfileordatafile11isfrombeforethelastRESETLOGSORA-01110:datafile11:’/u02/test.dbf’SQL>alterdatabaseopenresetlogs;alterdatabaseopenresetlogs*ERRORatline1:ORA-01139:RESETLOGSoptiononlyvalidafteranincompletedatabaserecovery我们可以recover database:使用下面的两个命令:SQL>recoverdatabaseuntilcancel;SQL>recoverdatabaseusingbackupcontrolfileuntilcancel;然后可以打开数据库:SQL>alterdatabaseopenresetlogs;Databasealtered.查看数据文件均是online 状态:SQL>selectfile_name,ONLINE_STATUSfromdba_data_files;FILE_NAMEONLINE_———————————————————/u01/app/oradata/orclpri/users01.dbfONLINE/u01/app/oradata/orclpri/undotbs01.dbfONLINE/u01/app/oradata/orclpri/sysaux01.dbfONLINE/u01/app/oradata/orclpri/system01.dbfSYSTEM/u01/app/oradata/orclpri/datafileep_scs_idx.dbfONLINE/u01/app/oradata/orclpri/bpep_scs.dbfONLINE/u01/bpep_caweb.dbfONLINE/u01/app/oradata/orclpri/bpep_caweb_idx.dbfONLINE/u01/app/oradata/orclpri/readonly01.dbfONLINE/u01/app/oradata/orclpri/readwrite01.dbfONLINE/u02/test.dbfONLINEFILE_NAMEONLINE_———————————————————/u01/app/oradata/orclpri/test2.dbfONLINE/u01/app/oradata/orclpri/test3.dbfONLINE13rowsselected.以上是“数据库中数据文件不一致如何恢复”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注云技术行业资讯频道!

相关推荐: 分析PostgreSQL中的大表连接

这篇文章主要介绍“分析PostgreSQL中的大表连接”,在日常操作中,相信很多人在分析PostgreSQL中的大表连接问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”分析PostgreSQL中的大表连接”的疑惑有所帮助!接下来,…

文章页内容下
赞(0) 打赏
版权声明:本站采用知识共享、学习交流,不允许用于商业用途;文章由发布者自行承担一切责任,与本站无关。
文章页正文下
文章页评论上

云服务器、web空间可免费试用

宝塔面板主机、支持php,mysql等,SSL部署;安全高速企业专供99.999%稳定,另有高防主机、不限制内容等类型,具体可咨询QQ:360163164,Tel同微信:18905205712

主机选购导航云服务器试用

登录

找回密码

注册