您的位置:首页 > 数据库 > Oracle

Oracle数据库丢失控制文件的恢复四则

2014-01-26 10:52 399 查看
下文介绍了Oracle数据库中丢失控制文件的几种处理方法。



丢失单个控制文件

报错信息:





2013-05-08 03:00:29.678000 +08:00

Errors in file/u01/apps/oracle/diag/rdbms/bkt/bkt/trace/bkt_m000_5204.trc:

ORA-00210: cannot open the specifiedcontrol file

ORA-00202: control file:'/u02/oradat/bkt/control01.ctl'

ORA-27041: unable to open file

Linux-x86_64 Error: 2: No such file ordirectory

Additional information: 3







Errors in file/u01/apps/oracle/diag/rdbms/bkt/bkt/trace/bkt_m001_5289.trc:

ORA-00210: cannot open the specifiedcontrol file

ORA-00202: control file:'/u02/oradat/bkt/control01.ctl'

ORA-27041: unable to open file

Linux-x86_64 Error: 2: No such file ordirectory



1、直接手动关闭了,其实数据库会自动的关闭。

shutdown abort ;



2、以下有两种方法



2.1、拷贝控制文件到原来的目录

cp/u02/flash_recovery_area/bkt/control02.ctl /u02/oradat/bkt/control01.ctl

2.2、启动到nomount后设置control_files的位置,将丢失的控制文件路径去掉

alter system setcontrol_files='/u02/flash_recovery_area/bkt/control02.ctl' scope=spfile ;



3.启动数据库即可

startup





下面介绍丢失所有控制文件的时候应该怎么做







使用冷备份的控制文件恢复

以下为详细的示例:



1. backup controlfile

show controlfile





copy



rman target /



backup controlfile current format '' ;





output :

sys@BKT> show parameter control



NAME TYPE VALUE

----------------------------------------------- ------------------------------

control_file_record_keep_time integer 7

control_files string /u02/oradat/bkt/control01.ctl,

/u02/flash_recovery_area/bkt/

control02.ctl

control_management_pack_access string DIAGNOSTIC+TUNING



--instance still running ...



[oracle@master ~]$ cp/u02/oradat/bkt/control01.ctl /tmp/control01.ctl







2. create tablespace

conn / as sysdba



define tbsname1='tbs1'

define tbsname2='tbs2'



define dfpath1='/u02/oradat/bkt/tbs101.dbf'

define dfpath2='/u02/oradat/bkt/tbs201.dbf'



create tablespace &tbsname1 datafile'&dfpath1' size 100m ;

create tablespace &tbsname2 datafile'&dfpath2' size 100m ;



create table &tbsname1 tablespace&tbsname1 as select * from all_objects ;

create table &tbsname2 tablespace&tbsname2 as select * from all_objects ;



select count(*) from &tbsname1 ;

select count(*) from &tbsname2 ;



alter tablespace &tbsname1 read only ;



output :

sys@BKT> conn / as sysdba

Connected.

sys@BKT>

sys@BKT> define tbsname1='tbs1'

sys@BKT> define tbsname2='tbs2'

sys@BKT>

sys@BKT> definedfpath1='/u02/oradat/bkt/tbs101.dbf'

sys@BKT> definedfpath2='/u02/oradat/bkt/tbs201.dbf'



sys@BKT> create tablespace &tbsname1datafile '&dfpath1' size 100m ;

old 1: create tablespace &tbsname1 datafile '&dfpath1' size 100m

new 1: create tablespace tbs1 datafile '/u02/oradat/bkt/tbs101.dbf' size100m



Tablespace created.



sys@BKT> create tablespace &tbsname2datafile '&dfpath2' size 100m ;

old 1: create tablespace &tbsname2 datafile '&dfpath2' size 100m

new 1: create tablespace tbs2 datafile '/u02/oradat/bkt/tbs201.dbf' size100m



Tablespace created.



sys@BKT> create table &tbsname1tablespace &tbsname1 as select * from all_objects ;

old 1: create table &tbsname1 tablespace &tbsname1 as select * fromall_objects

new 1: create table tbs1 tablespace tbs1 as select * from all_objects



Table created.



sys@BKT> create table &tbsname2tablespace &tbsname2 as select * from all_objects ;

old 1: create table &tbsname2 tablespace &tbsname2 as select * fromall_objects

new 1: create table tbs2 tablespace tbs2 as select * from all_objects



Table created.



sys@BKT> select count(*) from&tbsname1 ;

old 1: select count(*) from &tbsname1

new 1: select count(*) from tbs1



COUNT(*)

----------

72780



sys@BKT> select count(*) from&tbsname2 ;

old 1: select count(*) from &tbsname2

new 1: select count(*) from tbs2



COUNT(*)

----------

72781



sys@BKT> alter tablespace &tbsname1read only ;

old 1: alter tablespace &tbsname1 read only

new 1: alter tablespace tbs1 read only



Tablespace altered.



sys@BKT>







3. switch logfile

alter system switch logfile ;

alter system switch logfile ;

alter system switch logfile ;

alter system switch logfile ;

alter system switch logfile ;



output :



sys@BKT> alter system switchlogfile ;

alter system switch logfile ;

alter system switch logfile ;

alter system switch logfile ;



System altered.



sys@BKT>







System altered.



sys@BKT>

System altered.



sys@BKT>



System altered.





4. remove controlfile

rm /u02/oradat/bkt/control01.ctl

rm/u02/flash_recovery_area/bkt/control02.ctl





output :



[oracle@master ~]$ rm/u02/oradat/bkt/control01.ctl

[oracle@master ~]$ rm/u02/flash_recovery_area/bkt/control02.ctl



--from alert .

Errors in file/u01/apps/oracle/diag/rdbms/bkt/bkt/trace/bkt_m000_6172.trc:

ORA-00210: cannot open the specifiedcontrol file

ORA-00202: control file:'/u02/oradat/bkt/control01.ctl'

ORA-27041: unable to open file

Linux-x86_64 Error: 2: No such file ordirectory

Additional information: 3





5. shutdown database

shutdown abort



output :



sys@BKT> shutdown abort ;

ORACLE instance shut down.





6. using backup controlfile

--copy backup controlfile to thecontrolfile path which defined in the parameter .



cp /tmp/control01.ctl/u02/oradat/bkt/control01.ctl

cp /tmp/control01.ctl/u02/flash_recovery_area/bkt/control02.ctl



recover





output :



cp /tmp/control01.ctl /u02/oradat/bkt/control01.ctl

cp /tmp/control01.ctl/u02/flash_recovery_area/bkt/control02.ctl



sys@BKT> startup

ORACLE instance started.



Total System Global Area 417546240 bytes

Fixed Size 2228944 bytes

Variable Size 318770480 bytes

Database Buffers 88080384 bytes

Redo Buffers 8466432 bytes

Database mounted.

ORA-01122: database file 1 failedverification check

ORA-01110: data file 1:'/u02/oradat/bkt/system01.dbf'

ORA-01207: file is more recent than controlfile - old control file





--from alert



ALTER DATABASE OPEN

Errors in file/u01/apps/oracle/diag/rdbms/bkt/bkt/trace/bkt_ora_6327.trc:

ORA-01122: database file 1 failedverification check

ORA-01110: data file 1:'/u02/oradat/bkt/system01.dbf'

<<<ORA-01207: file is more recentthan control file - old control file>>>

ORA-1122 signalled during: ALTER DATABASEOPEN...

Errors in file/u01/apps/oracle/diag/rdbms/bkt/bkt/trace/bkt_m000_6331.trc:

ORA-00338: log 1 of thread 1 is more recentthan control file

ORA-00312: online log 1 thread 1:'/u02/oradat/bkt/redo01.log'

Errors in file/u01/apps/oracle/diag/rdbms/bkt/bkt/trace/bkt_m000_6331.trc:

ORA-00338: log 1 of thread 1 is more recentthan control file

ORA-00312: online log 1 thread 1:'/u02/oradat/bkt/redo01.log'

Errors in file/u01/apps/oracle/diag/rdbms/bkt/bkt/trace/bkt_m000_6331.trc:

ORA-00338: log 2 of thread 1 is more recentthan control file

ORA-00312: online log 2 thread 1:'/u02/oradat/bkt/redo02.log'

Errors in file /u01/apps/oracle/diag/rdbms/bkt/bkt/trace/bkt_m000_6331.trc:

ORA-00338: log 2 of thread 1 is more recentthan control file

ORA-00312: online log 2 thread 1:'/u02/oradat/bkt/redo02.log'

Errors in file/u01/apps/oracle/diag/rdbms/bkt/bkt/trace/bkt_m000_6331.trc:

ORA-00338: log 3 of thread 1 is more recentthan control file

ORA-00312: online log 3 thread 1:'/u02/oradat/bkt/redo03.log'

Errors in file/u01/apps/oracle/diag/rdbms/bkt/bkt/trace/bkt_m000_6331.trc:

ORA-00338: log 3 of thread 1 is more recentthan control file

ORA-00312: online log 3 thread 1:'/u02/oradat/bkt/redo03.log'

Checker run found 1 new persistent datafailures







[oracle@master ~]$ oerr ora 01207

01207, 00000, "file is more recentthan control file - old control file"

// *Cause: The control file change sequence number in the data file is

// greater than the number in the control file. This implies that

// the wrong control file is being used. Note that repeatedly causing

// this error can make it stop happening without correcting the real

// problem. Every attempt to open the database will advance the

// control file change sequence number until it is great enough.

// *Action: Use the current control file ordo backup control file recovery to

// make the control file current. Be sure to follow all restrictions

// on doing a backup control file recovery.



--显然没有我们最近创建的两个表空间

sys@BKT> select name from v$datafile ;



NAME

----------------------------------------------------------------------------------------------------

/u02/oradat/bkt/system01.dbf

/u02/oradat/bkt/sysaux01.dbf

/u02/oradat/bkt/undotbs01.dbf

/u02/oradat/bkt/users01.dbf

/u02/oradat/bkt/example01.dbf

/u02/oradat/bkt/test1_01.dbf



6 rows selected.







--controlfile_change# low rba ,checkpoint_change#

sys@BKT> select checkpoint_change#,CONTROLFILE_SEQUENCE# ,CONTROLFILE_CHANGE# fromv$database ;



CHECKPOINT_CHANGE# CONTROLFILE_SEQUENCE#CONTROLFILE_CHANGE#

------------------ ----------------------------------------

1281710 3287 1293684





sys@BKT> select min(checkpoint_change#)from V$datafile_header ;



MIN(CHECKPOINT_CHANGE#)

-----------------------

1270438





sys@BKT> selectgroup#,first_change#,next_change# from v$log ;



GROUP# FIRST_CHANGE# NEXT_CHANGE#

---------- ------------- ------------

1 1273500 1273646

3 1274338 2.8147E+14

2 1273646 1274338







sys@BKT> recover database;

ORA-00283: recovery session canceled due toerrors

ORA-01122: database file 1 failedverification check

ORA-01110: data file 1:'/u02/oradat/bkt/system01.dbf'

ORA-01207: file is more recent than controlfile - old control file





sys@BKT> recover database using backup controlfile ;

ORA-00279: change 1293684 generated at05/08/2013 14:29:38 needed for thread 1

ORA-00289: suggestion :/u02/flash_recovery_area/BKT/archivelog/2013_05_13/o1_mf_1_93_8s2qoprf_.arc

ORA-00280: change 1293684 for thread 1 isin sequence #93





Specify log: {<RET>=suggested |filename | AUTO | CANCEL}

auto

ORA-00283: recovery session canceled due toerrors

ORA-01244: unnamed datafile(s) added tocontrol file by media recovery

ORA-01110: data file 7:'/u02/oradat/bkt/tbs101.dbf'





ORA-01112: media recovery not started

这时候第七号文件已经加回来了。





sys@BKT> recover database using backupcontrolfile ;

ORA-00283: recovery session canceled due toerrors

ORA-01111: name for data file 7 is unknown- rename to correct file

ORA-01110: data file 7:'/u01/apps/oracle/product/11gr2/db_1/dbs/UNNAMED00007'

ORA-01157: cannot identify/lock data file 7- see DBWR trace file

ORA-01111: name for data file 7 is unknown- rename to correct file

ORA-01110: data file 7: '/u01/apps/oracle/product/11gr2/db_1/dbs/UNNAMED00007'



sys@BKT> select name from v$datafile ;



NAME

----------------------------------------------------------------------------------------------------

/u02/oradat/bkt/system01.dbf

/u02/oradat/bkt/sysaux01.dbf

/u02/oradat/bkt/undotbs01.dbf

/u02/oradat/bkt/users01.dbf

/u02/oradat/bkt/example01.dbf

/u02/oradat/bkt/test1_01.dbf

/u01/apps/oracle/product/11gr2/db_1/dbs/UNNAMED00007



7 rows selected.







offline以下再恢复

sys@BKT> alter database datafile 7offline ;



Database altered.





sys@BKT> recover database using backupcontrolfile ;

ORA-00279: change 1293752 generated at05/13/2013 14:42:44 needed for thread 1

ORA-00289: suggestion :/u02/flash_recovery_area/BKT/archivelog/2013_05_13/o1_mf_1_93_8s2qoprf_.arc

ORA-00280: change 1293752 for thread 1 isin sequence #93





Specify log: {<RET>=suggested |filename | AUTO | CANCEL}

auto

ORA-00283: recovery session canceled due toerrors

ORA-01244: unnamed datafile(s) added tocontrol file by media recovery

ORA-01110: data file 8: '/u02/oradat/bkt/tbs201.dbf'





ORA-01112: media recovery not started

这时候最后一个数据文件也加回来了



sys@BKT> select name from v$datafile ;



NAME

----------------------------------------------------------------------------------------------------

/u02/oradat/bkt/system01.dbf

/u02/oradat/bkt/sysaux01.dbf

/u02/oradat/bkt/undotbs01.dbf

/u02/oradat/bkt/users01.dbf

/u02/oradat/bkt/example01.dbf

/u02/oradat/bkt/test1_01.dbf

/u01/apps/oracle/product/11gr2/db_1/dbs/UNNAMED00007

/u01/apps/oracle/product/11gr2/db_1/dbs/UNNAMED00008



8 rows selected.



因为是表空间是readonly的,数据文件这里需要修改一下名称



sys@BKT> alter database rename file'/u01/apps/oracle/product/11gr2/db_1/dbs/UNNAMED00008' to'/u02/oradat/bkt/tbs201.dbf' ;



Database altered.



sys@BKT> alter database rename file'/u01/apps/oracle/product/11gr2/db_1/dbs/UNNAMED00007' to '/u02/oradat/bkt/tbs101.dbf';



Database altered.



sys@BKT> alter database datafile 7online ;



Database altered.





再次恢复



sys@BKT> recover database using backup controlfile ;

ORA-00279: change 1294029 generated at05/13/2013 14:42:58 needed for thread 1

ORA-00289: suggestion :/u02/flash_recovery_area/BKT/archivelog/2013_05_13/o1_mf_1_93_8s2qoprf_.arc

ORA-00280: change 1294029 for thread 1 isin sequence #93





Specify log: {<RET>=suggested |filename | AUTO | CANCEL}

auto

ORA-00279: change 1294568 generated at05/13/2013 14:44:22 needed for thread 1

ORA-00289: suggestion :/u02/flash_recovery_area/BKT/archivelog/2013_05_13/o1_mf_1_94_8s2qoqjj_.arc

ORA-00280: change 1294568 for thread 1 isin sequence #94

ORA-00278: log file'/u02/flash_recovery_area/BKT/archivelog/2013_05_13/o1_mf_1_93_8s2qoprf_.arc'

no longer needed for this recovery





ORA-00279: change 1294571 generated at05/13/2013 14:44:22 needed for thread 1

ORA-00289: suggestion :/u02/flash_recovery_area/BKT/archivelog/2013_05_13/o1_mf_1_95_8s2qovq1_.arc

ORA-00280: change 1294571 for thread 1 isin sequence #95

ORA-00278: log file'/u02/flash_recovery_area/BKT/archivelog/2013_05_13/o1_mf_1_94_8s2qoqjj_.arc'

no longer needed for this recovery





ORA-00279: change 1294574 generated at05/13/2013 14:44:27 needed for thread 1

ORA-00289: suggestion :/u02/flash_recovery_area/BKT/archivelog/2013_05_13/o1_mf_1_96_8s2qovsh_.arc

ORA-00280: change 1294574 for thread 1 isin sequence #96

ORA-00278: log file'/u02/flash_recovery_area/BKT/archivelog/2013_05_13/o1_mf_1_95_8s2qovq1_.arc'

no longer needed for this recovery





ORA-00279: change 1294577 generated at05/13/2013 14:44:27 needed for thread 1

ORA-00289: suggestion : /u02/flash_recovery_area/BKT/archivelog/2013_05_13/o1_mf_1_97_8s2qow0z_.arc

ORA-00280: change 1294577 for thread 1 isin sequence #97

ORA-00278: log file'/u02/flash_recovery_area/BKT/archivelog/2013_05_13/o1_mf_1_96_8s2qovsh_.arc'

no longer needed for this recovery





ORA-00279: change 1294580 generated at05/13/2013 14:44:27 needed for thread 1

ORA-00289: suggestion :/u02/flash_recovery_area/BKT/archivelog/2013_05_13/o1_mf_1_98_8s2qs51d_.arc

ORA-00280: change 1294580 for thread 1 isin sequence #98

ORA-00278: log file '/u02/flash_recovery_area/BKT/archivelog/2013_05_13/o1_mf_1_97_8s2qow0z_.arc'

no longer needed for this recovery





ORA-00279: change 1294620 generated at05/13/2013 14:46:13 needed for thread 1

ORA-00289: suggestion :/u02/flash_recovery_area/BKT/archivelog/2013_05_13/o1_mf_1_99_8s2qs62m_.arc

ORA-00280: change 1294620 for thread 1 isin sequence #99

ORA-00278: log file'/u02/flash_recovery_area/BKT/archivelog/2013_05_13/o1_mf_1_98_8s2qs51d_.arc'

no longer needed for this recovery





ORA-00279: change 1294623 generated at05/13/2013 14:46:14 needed for thread 1

ORA-00289: suggestion :/u02/flash_recovery_area/BKT/archivelog/2013_05_13/o1_mf_1_100_%u_.arc

ORA-00280: change 1294623 for thread 1 isin sequence #100

ORA-00278: log file'/u02/flash_recovery_area/BKT/archivelog/2013_05_13/o1_mf_1_99_8s2qs62m_.arc'

no longer needed for this recovery





ORA-00308: cannot open archived log

'/u02/flash_recovery_area/BKT/archivelog/2013_05_13/o1_mf_1_100_%u_.arc'

ORA-27037: unable to obtain file status

Linux-x86_64 Error: 2: No such file ordirectory

Additional information: 3







[oracle@master 2013_05_13]$ ls -ltr

total 31744

-rw-r----- 1 oracle oinstall 1024 May 13 14:44 o1_mf_1_94_8s2qoqjj_.arc

-rw-r----- 1 oracle oinstall 32441344 May13 14:44 o1_mf_1_93_8s2qoprf_.arc

-rw-r----- 1 oracle oinstall 1024 May 13 14:44 o1_mf_1_96_8s2qovsh_.arc

-rw-r----- 1 oracle oinstall 3072 May 13 14:44 o1_mf_1_95_8s2qovq1_.arc

-rw-r----- 1 oracle oinstall 1024 May 13 14:44 o1_mf_1_97_8s2qow0z_.arc

-rw-r----- 1 oracle oinstall 1536 May 13 14:46 o1_mf_1_98_8s2qs51d_.arc

-rw-r----- 1 oracle oinstall 1024 May 13 14:46 o1_mf_1_99_8s2qs62m_.arc







idle> select sequence# , group# , statusfrom v$log ;



SEQUENCE# GROUP# STATUS

---------- ---------- ----------------

91 1 INACTIVE

93 3 CURRENT

92 2 INACTIVE





idle> select group#,member fromv$logfile ;



GROUP# MEMBER

------------------------------------------------------------

2 /u02/oradat/bkt/redo02.log

1 /u02/oradat/bkt/redo01.log

3 /u02/oradat/bkt/redo03.log







sys@BKT> recover database using backupcontrolfile ;

ORA-00279: change 1294623 generated at05/13/2013 14:46:14 needed for thread 1

ORA-00289: suggestion :/u02/flash_recovery_area/BKT/archivelog/2013_05_13/o1_mf_1_100_%u_.arc

ORA-00280: change 1294623 for thread 1 isin sequence #100





Specify log: {<RET>=suggested |filename | AUTO | CANCEL}

/u02/oradat/bkt/redo03.log

ORA-00310: archived log contains sequence99; sequence 100 required

ORA-00334: archived log:'/u02/oradat/bkt/redo03.log'





sys@BKT> recover database using backupcontrolfile ;

ORA-00279: change 1294623 generated at 05/13/201314:46:14 needed for thread 1

ORA-00289: suggestion :/u02/flash_recovery_area/BKT/archivelog/2013_05_13/o1_mf_1_100_%u_.arc

ORA-00280: change 1294623 for thread 1 isin sequence #100





Specify log: {<RET>=suggested |filename | AUTO | CANCEL}

/u02/oradat/bkt/redo01.log

Log applied.

Media recovery complete.





sys@BKT> alter database open resetlogs ;



Database altered.





因为使用了备份的控制文件,所以必须resetlogs





无备份直接重建控制文件

sys@BKT> show parameter control



NAME TYPE VALUE

----------------------------------------------- ------------------------------

control_file_record_keep_time integer 7

control_files string /u02/oradat/bkt/control01.ctl,/u02/flash_recovery_area/bkt/control02.ctl







[root@master ~]# rm /u02/oradat/bkt/control01.ctl

rm: remove regular file`/u02/oradat/bkt/control01.ctl'? y

[root@master ~]# rm/u02/flash_recovery_area/bkt/control02.ctl

rm: remove regular file`/u02/flash_recovery_area/bkt/control02.ctl'? y







sys@BKT> alter system switch logfile ;



System altered.



sys@BKT> alter system archive logcurrent ;



System altered.





看来不是立刻写入控制文件中。







Errors in file/u01/apps/oracle/diag/rdbms/bkt/bkt/trace/bkt_m000_6382.trc:

ORA-00210: cannot open the specified controlfile

ORA-00202: control file:'/u02/oradat/bkt/control01.ctl'

ORA-27041: unable to open file

Linux-x86_64 Error: 2: No such file ordirectory

Additional information: 3









sys@BKT> create tablespace test1datafile '/u02/oradat/bkt/test1_01.dbf' size 10m ;



Tablespace created.









如果及时的发现数据库未关闭,可以使用下面的命令将重建控制文件的脚本输出到trace文件中,方便后面的控制文件重建操作。





sys@BKT> alter database backupcontrolfile to trace ;



Database altered.





alter :



Backup controlfile written to trace file/u01/apps/oracle/diag/rdbms/bkt/bkt/trace/bkt_ora_5933.trc

Completed: alter database backupcontrolfile to trace







如果没有及时的发现已经丢失了所有的控制文件,这里重建控制文件需要知道一些额外的信息,包括redolog的位置、数据文件的位置还有字符集。(这里也可以使用snapshot控制文件来生成trace文件)





sys@BKT> shutdown immediate

Database closed.

ORA-00210: cannot open the specifiedcontrol file

ORA-00202: control file:'/u02/oradat/bkt/control01.ctl'

ORA-27041: unable to open file

Linux-x86_64 Error: 2: No such file ordirectory

Additional information: 3







sys@BKT> shutdown abort ;





sys@BKT> alter database mount ;

alter database mount

*

ERROR at line 1:

ORA-00205: error in identifying controlfile, check alert log for more info







如果这里重做日志没有损坏,则可以以noresetlogs的方式重建控制文件





CREATE CONTROLFILE REUSE DATABASE"BKT" NORESETLOGS ARCHIVELOG

MAXLOGFILES 16

MAXLOGMEMBERS 3

MAXDATAFILES 100

MAXINSTANCES 8

MAXLOGHISTORY 292

LOGFILE

GROUP 1 '/u02/oradat/bkt/redo01.log' SIZE 50M BLOCKSIZE 512,

GROUP 2 '/u02/oradat/bkt/redo02.log' SIZE 50M BLOCKSIZE 512,

GROUP 3 '/u02/oradat/bkt/redo03.log' SIZE 50M BLOCKSIZE 512

-- STANDBY LOGFILE

DATAFILE

'/u02/oradat/bkt/system01.dbf',

'/u02/oradat/bkt/sysaux01.dbf',

'/u02/oradat/bkt/undotbs01.dbf',

'/u02/oradat/bkt/test1_01.dbf',

'/u02/oradat/bkt/users01.dbf',

'/u02/oradat/bkt/example01.dbf'

CHARACTER SET ZHS16GBK

;



这里改变了数据文件的位置



sys@BKT> CREATE CONTROLFILE REUSEDATABASE "BKT" NORESETLOGS ARCHIVELOG

2 MAXLOGFILES 16

3 MAXLOGMEMBERS 3

4 MAXDATAFILES 100

5 MAXINSTANCES 8

6 MAXLOGHISTORY 292

7 LOGFILE

8 GROUP 1'/u02/oradat/bkt/redo01.log' SIZE 50MBLOCKSIZE 512,

9 GROUP 2'/u02/oradat/bkt/redo02.log' SIZE 50MBLOCKSIZE 512,

10 GROUP 3 '/u02/oradat/bkt/redo03.log' SIZE 50M BLOCKSIZE 512

11 --STANDBY LOGFILE

12 DATAFILE

13 '/u02/oradat/bkt/system01.dbf',

14 '/u02/oradat/bkt/sysaux01.dbf',

15 '/u02/oradat/bkt/undotbs01.dbf',

16 '/u02/oradat/bkt/test1_01.dbf',

17 '/u02/oradat/bkt/users01.dbf',

18 '/u02/oradat/bkt/example01.dbf'

19 CHARACTER SET ZHS16GBK

20 ;



Control file created.







sys@BKT> select status from v$instance ;



STATUS

------------

MOUNTED



也可能需要手动的recover一下



recover database



sys@BKT> alter database open ;



Database altered.





添加临时文件



sys@BKT> ALTER TABLESPACE TEMP ADDTEMPFILE '/u02/oradat/bkt/temp01.dbf';







RMAN> list backup ;



specification does not match any backup inthe repository





RMAN> catalog db_recovery_file_dest ;





RMAN> list backup ;





List of Backup Sets

===================





BS Key Type LV Size Device TypeElapsed Time Completion Time

------- ---- -- ---------- ----------------------- ---------------

1 Full 1.07G DISK 00:00:00 18-APR-13

BP Key: 1 Status: ***AILABLE Compressed: NO Tag: TAG20130418T223159

Piece Name:/u02/flash_recovery_area/BKT/backupset/2013_04_18/o1_mf_nnndf_TAG20130418T223159_8q00yzs1_.bkp

List of Datafiles in backup set 1

File LV Type Ckp SCN CkpTime Name

---- -- ---- ---------- --------- ----

1 Full 1095500 18-APR-13 /u02/oradat/bkt/system01.dbf

2 Full 1095500 18-APR-13 /u02/oradat/bkt/sysaux01.dbf

3 Full 1095500 18-APR-13 /u02/oradat/bkt/undotbs01.dbf

4 Full 1095500 18-APR-13 /u02/oradat/bkt/users01.dbf

5 Full 1095500 18-APR-13 /u02/oradat/bkt/example01.dbf



BS Key Type LV Size Device TypeElapsed Time Completion Time

------- ---- -- ---------- ----------------------- ---------------

2 Full 9.36M DISK 00:00:00 18-APR-13

BP Key: 2 Status: ***AILABLE Compressed: NO Tag: TAG20130418T223159

Piece Name:/u02/flash_recovery_area/BKT/backupset/2013_04_18/o1_mf_ncsnf_TAG20130418T223159_8q016gmf_.bkp

SPFILE Included: Modification time: 18-APR-13

SPFILE db_unique_name: BKT

Control File Included: Ckp SCN: 1095500 Ckp time: 18-APR-13



RMAN> list incarnation

2> ;





List of Database Incarnations

DB Key Inc Key DB Name DB ID STATUS Reset SCN Reset Time

------- ------- -------- ------------------- ---------- ----------

1 1 BKT 536381303 CURRENT 995548 18-APR-13



RMAN>







Continue applying redo log files until thelast log has been applied to the restored

data files, then cancel recovery byexecuting the following command:

CANCEL

The database indicates whether recovery issuccessful. If you cancel before all the

data files have been recovered to a consistentSCN and then try to open the

database, then you get an ORA-1113error ifmore recovery is necessary. You can

query V$RECOVER_FILEto determine whethermore recovery is needed, or if a

backup of a data file was notrestoredbefore starting incomplete recovery.







无备份使用snap控制文件

RMAN> show all

2> ;



using target database control file insteadof recovery catalog

RMAN configuration parameters for databasewith db_unique_name BKT are:

CONFIGURE RETENTION POLICY TO REDUNDANCY 1;# default

CONFIGURE BACKUP OPTIMIZATION OFF; #default

CONFIGURE DEFAULT DEVICE TYPE TO DISK; #default

CONFIGURE CONTROLFILE AUTOBACKUP OFF; #default

CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FORDEVICE TYPE DISK TO '%F'; # default

CONFIGURE DEVICE TYPE DISK PARALLELISM 1BACKUP TYPE TO BACKUPSET; # default

CONFIGURE DATAFILE BACKUP COPIES FOR DEVICETYPE DISK TO 1; # default

CONFIGURE ARCHIVELOG BACKUP COPIES FORDEVICE TYPE DISK TO 1; # default

CONFIGURE MAXSETSIZE TO UNLIMITED; # default

CONFIGURE ENCRYPTION FOR DATABASE OFF; #default

CONFIGURE ENCRYPTION ALGORITHM 'AES128'; #default

CONFIGURE COMPRESSION ALGORITHM 'BASIC' ASOF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # default

CONFIGURE ARCHIVELOG DELETION POLICY TONONE; # default

CONFIGURE SNAPSHOT CONTROLFILE NAME TO'/u01/apps/oracle/product/11gr2/db_1/dbs/snapcf_bkt.f'; # default





删除后alert日志报错:



Errors in file/u01/apps/oracle/diag/rdbms/bkt/bkt/trace/bkt_m000_15066.trc:

ORA-00210: cannot open the specifiedcontrol file

ORA-00202: control file:'/u02/oradat/bkt/control01.ctl'

ORA-27041: unable to open file

Linux-x86_64 Error: 2: No such file ordirectory

Additional information: 3





sys@BKT> shutdown immediate

Database closed.

ORA-00210: cannot open the specifiedcontrol file

ORA-00202: control file:'/u02/oradat/bkt/control01.ctl'

ORA-27041: unable to open file

Linux-x86_64 Error: 2: No such file ordirectory

Additional information: 3





sys@BKT> shutdown abort ;

ORACLE instance shut down.





sys@BKT> startup

ORACLE instance started.



Total System Global Area 417546240 bytes

Fixed Size 2228944 bytes

Variable Size 322964784 bytes

Database Buffers 83886080 bytes

Redo Buffers 8466432 bytes

ORA-00205: error in identifying controlfile, check alert log for more info







[root@master ~]# cp/u01/apps/oracle/product/11gr2/db_1/dbs/snapcf_bkt.f/u02/oradat/bkt/control01.ctl

[root@master ~]# cp/u01/apps/oracle/product/11gr2/db_1/dbs/snapcf_bkt.f/u02/flash_recovery_area/bkt/control02.ctl





[root@master ~]# chown oracle:oinstall/u02/oradat/bkt/control01.ctl

[root@master ~]# chown oracle:oinstall/u02/flash_recovery_area/bkt/control02.ctl





sys@BKT> recover database using backupcontrolfile ;

ORA-00279: change 1266893 generated at05/09/2013 03:27:56 needed for thread 1

ORA-00289: suggestion :/u02/flash_recovery_area/BKT/archivelog/2013_05_08/o1_mf_1_28_%u_.arc

ORA-00280: change 1266893 for thread 1 isin sequence #28





Specify log: {<RET>=suggested |filename | AUTO | CANCEL}



因为是老的controlfile,所以sequence都是老旧的,



dle> select group#,sequence#,status fromv$log ;



GROUP# SEQUENCE# STATUS

---------- ---------- ----------------

1 25 INACTIVE

3 24 INACTIVE

2 26 CURRENT







idle> archive log list ;

Database log mode Archive Mode

Automatic archival Enabled

Archive destination USE_DB_RECOVERY_FILE_DEST

Oldest online log sequence 24

Next log sequence to archive 26

Current log sequence 26





查看相应的目录



[oracle@master ~]$ ll/u02/flash_recovery_area/BKT/archivelog/2013_05_08/

total 62224

-rw-r----- 1 oracle oinstall 177152 May 7 12:10 o1_mf_1_10_8rlng20m_.arc

-rw-r----- 1 oracle oinstall 1024 May 7 12:12 o1_mf_1_11_8rlnkd1g_.arc

-rw-r----- 1 oracle oinstall 1024 May 7 12:12 o1_mf_1_12_8rlnkfdr_.arc

-rw-r----- 1 oracle oinstall 10752 May 7 12:17 o1_mf_1_13_8rlnt65r_.arc

-rw-r----- 1 oracle oinstall 1024 May 7 12:17 o1_mf_1_14_8rlnt6r7_.arc

-rw-r----- 1 oracle oinstall 1536 May 7 12:17 o1_mf_1_15_8rlnt7b1_.arc

-rw-r----- 1 oracle oinstall 1024 May 7 12:17 o1_mf_1_16_8rlnt7x7_.arc

-rw-r----- 1 oracle oinstall 1024 May 7 12:17 o1_mf_1_17_8rlnt8g7_.arc

-rw-r----- 1 oracle oinstall 1024 May 7 12:17 o1_mf_1_18_8rlnt8wk_.arc

-rw-r----- 1 oracle oinstall 1024 May 7 12:17 o1_mf_1_19_8rlnt9bn_.arc

-rw-r----- 1 oracle oinstall 1024 May 7 12:17 o1_mf_1_20_8rlnt9p8_.arc

-rw-r----- 1 oracle oinstall 184832 May 7 12:30 o1_mf_1_21_8rlokyy2_.arc

-rw-r----- 1 oracle oinstall 259584 May 7 12:55 o1_mf_1_22_8rlq1j4j_.arc

-rw-r----- 1 oracle oinstall 1024 May 7 12:55 o1_mf_1_23_8rlq1tck_.arc

-rw-r----- 1 oracle oinstall 1024 May 7 13:29 o1_mf_1_23_8rls13lv_.arc

-rw-r----- 1 oracle oinstall 2048 May 7 12:56 o1_mf_1_24_8rlq3pxx_.arc

-rw-r----- 1 oracle oinstall 2048 May 7 13:29 o1_mf_1_24_8rls13lj_.arc

-rw-r----- 1 oracle oinstall 243712 May 7 13:29 o1_mf_1_25_8rls13pd_.arc

-rw-r----- 1 oracle oinstall 42203648May 8 07:01 o1_mf_1_26_8rnpoljr_.arc

-rw-r----- 1 oracle oinstall 10391552May 8 12:28 o1_mf_1_27_8ro9sxgq_.arc

-rw-r----- 1 oracle oinstall 10078720May 7 11:58 o1_mf_1_9_8rlmpf3o_.arc







idle> select * from v$logfile ;



GROUP# STATUS TYPE MEMBER IS_

---------- ------- ------------------------------------- ---

1 STALE ONLINE /u02/oradat/bkt/redo01.log NO

3 STALE ONLINE /u02/oradat/bkt/redo03.log NO

2 ONLINE /u02/oradat/bkt/redo02.log NO



顺序3、1、2





sys@BKT> recover database using backupcontrolfile ;

ORA-00279: change 1266893 generated at05/09/2013 03:27:56 needed for thread 1

ORA-00289: suggestion :/u02/flash_recovery_area/BKT/archivelog/2013_05_08/o1_mf_1_28_%u_.arc

ORA-00280: change 1266893 for thread 1 isin sequence #28





Specify log: {<RET>=suggested |filename | AUTO | CANCEL}

/u02/oradat/bkt/redo03.log

ORA-00310: archived log contains sequence27; sequence 28 required

ORA-00334: archived log:'/u02/oradat/bkt/redo03.log'



这里必须resetlogs



sys@BKT> alter database open noresetlogs;

alter database open noresetlogs

*

ERROR at line 1:

ORA-01588: must use RESETLOGS option fordatabase open







sys@BKT> alter database open resetlogs ;





sys@BKT> ALTER TABLESPACE TEMP ADDTEMPFILE '/u02/oradat/bkt/temp01.dbf' REUSE;



Tablespace altered.





RMAN> catalog db_recovery_file_dest ;



using target database control file insteadof recovery catalog

searching for all files in the recoveryarea
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: