恢复之单个控制文件损坏
上一篇 / 下一篇 2006-02-09 00:00:00 / 个人分类:ORACLE
一般Oracle在建立时,至少会设置两个控制文件。因此,如果仅仅损坏一个控制文件是很容易恢复的。
ITPUB个人空间m5n.Lq!U+F控制文件损坏,Oracle会自动关闭,这时用多个控制文件中没有受损的控制文件来进行恢复就可以了。这里控制文件的损坏仍然是通过ULTRAEDIT的修改造成的。
SQL> ALTER SYSTEM CHECKPOINT;
v9p.o Z,v$n0ALTER SYSTEM CHECKPOINTITPUB个人空间6rPC.O \"v
*ITPUB个人空间"PO)KzN+SWh
ERROR 位于第 1 行:ITPUB个人空间yD2b;J^[Kg
ORA-03113: 通信通道的文件结束
ITPUB个人空间
kg*S%iD{
SQL> CONN YANGTK/YANGTK@TESTITPUB个人空间{+y1u3S7V&I&Uc
ERROR:ITPUB个人空间)\^3Dc8L'Z
ORA-01034: ORACLE not available
q4W
O0O'M8`0ORA-27101: shared memory realm does not exist
ITPUB个人空间-o-Y@l~ijUC
SQL> CONN /@TEST AS SYSDBA
.@*L!t q5J/xh8~0已连接到空闲例程。
IsRm9fb0SQL> HOST COPY F:ORACLEORADATATESTCONTROL01.CTL F:ORACLEORADATATESTCONTROL03.CTL
SQL> STARTUPITPUB个人空间1V$}+xVi*Uc7LPg~
ORACLE 例程已经启动。
Total System Global Area 76619308 bytesITPUB个人空间p?&GF A{
Fixed Size 454188 bytes
(oL,G?/f,D'{^Ei0Variable Size 50331648 bytesITPUB个人空间Es q6}&V7xf3tO2`
Database Buffers 25165824 bytesITPUB个人空间+P;g?D)}Na%z {
Redo Buffers 667648 bytesITPUB个人空间/VxD7Ho;g*r
数据库装载完毕。ITPUB个人空间$N{$z xV
数据库已经打开。
如果受损控制文件原来的存放位置已经不可用,则需要修改初始化参数文件来指向新的位置。
SQL> ALTER SYSTEM CHECKPOINT;ITPUB个人空间+z$fT:Rg
ALTER SYSTEM CHECKPOINTITPUB个人空间sK
Xy+|
*ITPUB个人空间7wO mz1S1st:utL
ERROR 位于第 1 行:ITPUB个人空间IQ6axz8hm
ORA-03113: 通信通道的文件结束
ITPUB个人空间e.iXvcd
t#X
SQL> CONN /@TEST AS SYSDBA
%I S]"l5P0已连接到空闲例程。
:S? A:J1`O9s,K0SQL> CREATE PFILE='F:ORACLEADMINTESTPFILEINITTEST.ORA' FROM SPFILE;
文件已创建。
修改初始化参数中CONTROL_FILE的值为*.control_files='F:oracleoradatatestCONTROL01.CTL','F:oracleoradatatestCONTROL02.CTL','F:oracleoradatatestCONTROL04.CTL'
然后将未受损控制文件拷贝到新的位置:
SQL> HOST EDIT F:ORACLEADMINTESTPFILEINITTEST.ORA
SQL> HOST EDIT F:ORACLEADMINTESTPFILEINITTEST.ORA
SQL> HOST COPY F:ORACLEORADATATESTCONTROL01.CTL F:ORACLEORADATATESTCONTROL04.CTL
SQL> STARTUP PFILE=F:ORACLEADMINTESTPFILEINITTEST.ORA
4\EfK7xO0ORACLE 例程已经启动。
Total System Global Area 76619308 bytesITPUB个人空间bw{4DlL/S/~bz
Fixed Size 454188 bytes
c R Vi }5I)Jt0Variable Size 50331648 bytes
;PM#j
S CI#H3u\0Database Buffers 25165824 bytes