设为首页 收藏本站
查看: 510|回复: 0

[经验分享] 探索ORACLE之RMAN_07控制文件丢失恢复

[复制链接]

尚未签到

发表于 2016-7-30 10:45:00 | 显示全部楼层 |阅读模式
  探索ORACLERMAN_07控制文件丢失恢复
  作者:吴伟龙 NameProdence Woo
  QQ286507175 msn:hapy-wuweilong@hotmail.com
  1、 控制文件(controlfile)丢失恢复
  基于控制文件的复合多路径性,它的丢失分为两种,一种是其中某个控制文件的损坏或丢失,另外一种是所有控制文件均丢失。基于第一种情况,只需把好的控制文件复制一份在损坏或丢失的那个控制文件路径下即可。第二种情况下则需要通过备份信息来对控制文件进行恢复或手工重建控制文件。
  丢失单一控制文件的判断及恢复。
  数据库无法正常关闭,因为在关闭的时候必须向控制文件中更新scn
  SQL>shutdown immediate
  ORA-00210:cannot open the specified control file
  ORA-00202:control file: '/DBData/oradata/WWL/control02.ctl'
  ORA-27041:unable to open file
  LinuxError: 2: No such file or directory
  Additionalinformation: 3
  
  必须强制关闭数据库
  SQL>shutdown abort;
  ORACLEinstance shut down.
  
  启动数据库报控制文件验证失败,检查告警日志文件
  SQL>startup
  ORACLEinstance started.
  
  TotalSystem Global Area 285212672 bytes
  FixedSize 1218968 bytes
  VariableSize 104859240 bytes
  DatabaseBuffers 171966464 bytes
  RedoBuffers 7168000 bytes
  ORA-00205:error in identifying control file, check alert log for more info
  
  查看告警日志,报提示找不到controlfile2
  Fri Jun 2211:54:26 2012
  Errors infile /DBSoft/admin/WWL/udump/wwl_ora_4816.trc:
  ORA-00210:cannot open the specified control file
  ORA-00202:control file: '/DBData/oradata/WWL/control02.ctl'
  ORA-27041:unable to open file
  LinuxError: 2: No such file or directory
  
  从上面的信息我们可以得出是由于控制文件丢失导致了数据库无法正常的启动和关闭,下面我们要做的就是对控制文件进行做恢复,因为我们知道控制文件具有重复多路径属性,默认会有三个控制文件。现在日志中看到的是控制文件2丢失,找不到,我们可以通过控制文件13来恢复2
  4.1 基于正常控制文件恢复损坏的控制文件
   1、查看控制文件存在路径
  SQL>show parameter control_files
  
  NAME TYPEVALUE
  ----------------------------------------------- ------------------------------
  control_files string /DBSoft/oradata/WWL/control01.ctl,/DBData/oradata/WWL/control02.ctl, /DBData/oradata/WWL/control03.ctl
  SQL>
   我们可以从如上看到,该套数据库存在三个控制文件其中一个控制文件存放在/DBSoft目中中的oradata/wwl/目录下,另外两个控制文件存在/DBData目录中的/oradata/wwl/的目录下,从上面刚才的信息中我们可以得之是control02.ctl控制文件丢失导致数据库故障。
   2、检查下控制文件是不存在还是损坏了
  [oracle@wwldb WWL]$cd /DBData/oradata/WWL/
  [oracle@wwldb WWL]$ll
  total 0
  [oracle@wwldb WWL]$
  
  怪了,这个目录怎么一个控制文件都没有了呀,看看控制文件一是否存在。
  [oracle@wwldb WWL]$ cd/DBSoft/oradata/WWL/
  [oracle@wwldb WWL]$ ls
  control01.ctl
  
  非常万幸,controlfile1还是存在的,这样我们就可以通过controlfile1来恢复controlfile23了。
   3、关闭数据库
  SQL> shutdown abort
  ORACLE instance shut down.
  SQL>
  
  4、恢复损坏丢失的控制文件
  [oracle@wwldbWWL]$ ls
  control01.ctl
  [oracle@wwldbWWL]$ pwd
  /DBSoft/oradata/WWL
  [oracle@wwldbWWL]$ ls
  control01.ctl
  [oracle@wwldbWWL]$ cp control01.ctl /DBData/oradata/WWL/control02.ctl
  [oracle@wwldbWWL]$ cp control01.ctl /DBData/oradata/WWL/control03.ctl
  [oracle@wwldbWWL]$ ll /DBData/oradata/WWL/
  total13792
  -rw-r-----1 oracle oinstall 7061504 Jun 22 12:51 control02.ctl
  -rw-r-----1 oracle oinstall 7061504 Jun 22 12:51 control03.ctl
  [oracle@wwldb WWL]$
  2、启动数据库
  SQL>startup
  ORACLEinstance started.
  
  Total SystemGlobal Area285212672 bytes
  FixedSize1218968 bytes
  VariableSize104859240 bytes
  DatabaseBuffers171966464 bytes
  RedoBuffers7168000 bytes
  Databasemounted.
  Databaseopened.
  SQL>
  
  
  4.2所有控制文件全部丢失。
   丢失单一控制文件的判断及恢复。
  数据库无法正常关闭,因为在关闭的时候必须向控制文件中更新scn
  SQL>shutdown immediate
  ORA-00210:cannot open the specified control file
  ORA-00202:control file: ' /DBSoft/oradata/WWL/control01.ctl'
  ORA-27041:unable to open file
  LinuxError: 2: No such file or directory
  Additionalinformation: 3
  
  必须强制关闭数据库
  SQL>shutdown abort;
  ORACLEinstance shut down.
  
  启动数据库报控制文件验证失败,检查告警日志文件
  SQL>startup
  ORACLEinstance started.
  
  TotalSystem Global Area 285212672 bytes
  FixedSize 1218968 bytes
  VariableSize 104859240 bytes
  DatabaseBuffers 171966464 bytes
  RedoBuffers 7168000 bytes
  ORA-00205:error in identifying control file, check alert log for more info
  
  查看告警日志,报提示找不到controlfile1
  Fri Jun 22 13:16:07 2012
  Errors in file /DBSoft/admin/WWL/udump/wwl_ora_5104.trc:
  ORA-00210: cannot open the specified control file
  ORA-00202: control file: '/DBSoft/oradata/WWL/control01.ctl'
  ORA-27041: unable to open file
  Linux Error: 2: No such file or directory
  Additional information: 3
  
  通过RMAN来进行控制文件的恢复:
  1、强制启动数据库到nomount状态
  SQL> startupforce nomount;
  ORACLE instancestarted.
  
  Total SystemGlobal Area 285212672 bytes
  Fixed Size 1218968 bytes
  VariableSize 109053544 bytes
  Database Buffers 167772160 bytes
  RedoBuffers 7168000 bytes
  SQL> exit
  2、执行restore控制文件恢复
  RMAN>restore controlfile;
  
  3、打开数据库
  SQL>alter database mount;
  Database altered.
  
  SQL>alter database open;
  Database altered.

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-251286-1-1.html 上篇帖子: 提高Oracle SQL的执行效率的3个方案 下篇帖子: (转) oracle_查询date只显示日期不显示时间
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表