Welcome 微信登录

首页 / 数据库 / MySQL / Oracle控制文件恢复案例

案例一:单个控制文件丢失

这种情况解决方法很简单,只要把多路复用的控制文件拷贝到相应路径就行了。

案例二:所有控制文件都丢失(用trace中的SQL创建)

在做这个实验前先生成一个trace文件alter database backup controlfileto trace as"/backup/siqianctl.trc";1.先关闭数据库shutdown immediate2.删除所有控制文件之前可以用show parameter control_files来看下控制文件在哪些路径下[Oracle@siqian siqian11g]$ rm-f control0*3.起库出错startupORA-00205: errorin identifying controlfile,check alert logfor more info4.利用trace来创建控制文件CREATE CONTROLFILE REUSE DATABASE"SIQIAN11" NORESETLOGS  ARCHIVELOG    MAXLOGFILES 16    MAXLOGMEMBERS 3    MAXDATAFILES 100    MAXINSTANCES 8    MAXLOGHISTORY 292LOGFILE  GROUP 1 "/u01/oradata/siqian11g/redo01.log"  SIZE 50M,  GROUP 2 "/u01/oradata/siqian11g/redo02.log"  SIZE 50M,  GROUP 3 "/u01/oradata/siqian11g/redo03.log"  SIZE 50MDATAFILE  "/u01/oradata/siqian11g/system01.dbf",  "/u01/oradata/siqian11g/sysaux01.dbf",  "/u01/oradata/siqian11g/undotbs1.dbf",  "/u01/oradata/siqian11g/users01.dbf",  "/u01/oradata/siqian11g/example01.dbf",  "/u01/oradata/siqian11g/test01.dbf"CHARACTER SET WE8MSWIN1252;5.打开数据库alter database open;

案例三:用trace里的SQL创建的控制文件但此时的创建的控制文件是老的

现在我再创建一个表空间,使控制文件发生变化,一会重建时会缺少那个表空间的数据文件。1.创建表空间create tablespace new_ts datafile"/u01/oradata/siqian11g/new_ts01.dbf" size10m;2.关闭数据库shutdown immediate3.删除所有控制文件[oracle@siqian siqian11g]$ rm-f control0*4.打开数据库startupORA-00205: errorin identifying controlfile,check alert logfor more info5.利用trace创建控制文件CREATE CONTROLFILE REUSE DATABASE"SIQIAN11" NORESETLOGS  ARCHIVELOG    MAXLOGFILES 16    MAXLOGMEMBERS 3    MAXDATAFILES 100    MAXINSTANCES 8    MAXLOGHISTORY 292LOGFILE  GROUP 1 "/u01/oradata/siqian11g/redo01.log"  SIZE 50M,  GROUP 2 "/u01/oradata/siqian11g/redo02.log"  SIZE 50M,  GROUP 3 "/u01/oradata/siqian11g/redo03.log"  SIZE 50MDATAFILE  "/u01/oradata/siqian11g/system01.dbf",  "/u01/oradata/siqian11g/sysaux01.dbf",  "/u01/oradata/siqian11g/undotbs1.dbf",  "/u01/oradata/siqian11g/users01.dbf",  "/u01/oradata/siqian11g/example01.dbf",  "/u01/oradata/siqian11g/test01.dbf"CHARACTER SET WE8MSWIN1252;6.打开数据库alter database open;7.查看dba_data_files数据字典sys@SIQIAN11>selectfile_name,tablespace_namefrom dba_data_files;FILE_NAME                                          TABLESPACE_NAME--------------------------------------------------------------------------------/u01/oradata/siqian11g/test01.dbf                 TEST/u01/oradata/siqian11g/example01.dbf              EXAMPLE/u01/oradata/siqian11g/users01.dbf                USERS/u01/oradata/siqian11g/undotbs1.dbf                UNDOTBS1/u01/oradata/siqian11g/sysaux01.dbf                SYSAUX/u01/oradata/siqian11g/system01.dbf                SYSTEM/u01/oracle/dbs/MISSING00007                      NEW_TS 7 rows selected.发现有个数据文件是‘/u01/oracle/dbs/MISSING00007’,其实出现这种情况是因为控制文件中没有这个表空间的数据文件的记录。8.关闭数据库并启动到mountshutdown immediatestartup mount9.将控制文件中的数据文件名重命名alter database rename file"/u01/oracle/dbs/MISSING00007" to"/u01/oradata/siqian11g/new_ts01.dbf";10.打开数据库alter database open;11.恢复数据文件recover datafile 7;
  • 1
  • 2
  • 下一页
Ubuntu 通过Deb 安装 MySQL 5.5Oracle联机日志恢复案例相关资讯      Oracle控制文件 
  • Oracle数据库丢失控制文件的恢复四  (08月09日)
  • Oracle控制文件多路复用  (09/17/2014 17:33:00)
  • Oracle控制文件损坏  (01/25/2014 13:42:32)
  • Oracle控制文件多路复用时要注意的  (11/21/2014 13:09:23)
  • Oracle控制文件的备份、恢复以及多  (04/10/2014 15:15:06)
  • Oracle控制文件的多路复用  (11/10/2013 19:06:11)
本文评论 查看全部评论 (0)
表情: 姓名: 字数


评论声