案例一:单个控制文件丢失
这种情况解决方法很简单,只要把多路复用的控制文件拷贝到相应路径就行了。
案例二:所有控制文件都丢失(用trace中的SQL创建)
在做这个实验前先生成一个trace文件
alter database backup controlfile
to trace
as"/backup/siqianctl.trc"
;1.先关闭数据库shutdown
immediate2.删除所有控制文件之前可以用show
parameter control_files来看下控制文件在哪些路径下
[Oracle@siqian siqian11g
]$ rm
-f control0
*3.起库出错startupORA
-00205
: error
in identifying control
file,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
: error
in identifying control
file,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_name
from 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
;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)