恢复控制文件后如何避免resetlogs打开数据库?(2)

Starting recover at 06-OCT-14
Starting implicit crosscheck backup at 06-OCT-14
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=20 device type=DISK
Crosschecked 6 objects
Finished implicit crosscheck backup at 06-OCT-14

Starting implicit crosscheck copy at 06-OCT-14
using channel ORA_DISK_1
Finished implicit crosscheck copy at 06-OCT-14

searching for all files in the recovery area
cataloging files...
cataloging done

List of Cataloged Files
=======================
File Name: /u01/fast_recovery_area/PRACTICE/archivelog/2014_10_06/o1_mf_1_1_b362kndr_.arc
File Name: /u01/fast_recovery_area/PRACTICE/archivelog/2014_10_06/o1_mf_1_3_b362lc83_.arc
File Name: /u01/fast_recovery_area/PRACTICE/archivelog/2014_10_06/o1_mf_1_2_b362l34q_.arc
File Name: /u01/fast_recovery_area/PRACTICE/autobackup/2014_10_06/o1_mf_s_860251717_b35s05gm_.bkp
File Name: /u01/fast_recovery_area/PRACTICE/autobackup/2014_10_06/o1_mf_s_860251162_b35rgt84_.bkp
File Name: /u01/fast_recovery_area/PRACTICE/autobackup/2014_10_06/o1_mf_s_860251158_b35rgpms_.bkp
File Name: /u01/fast_recovery_area/PRACTICE/autobackup/2014_10_06/o1_mf_s_860246909_b35n9x55_.bkp

using channel ORA_DISK_1

starting media recovery

archived log for thread 1 with sequence 1 is already on disk as file /u01/fast_recovery_area/PRACTICE/archivelog/2014_10_06/o1_mf_1_1_b362kndr_.arc
archived log for thread 1 with sequence 2 is already on disk as file /u01/fast_recovery_area/PRACTICE/archivelog/2014_10_06/o1_mf_1_2_b362l34q_.arc
archived log for thread 1 with sequence 3 is already on disk as file /u01/fast_recovery_area/PRACTICE/archivelog/2014_10_06/o1_mf_1_3_b362lc83_.arc
archived log for thread 1 with sequence 4 is already on disk as file /u01/oradata/practice/redo01.log
archived log file name=/u01/fast_recovery_area/PRACTICE/archivelog/2014_10_06/o1_mf_1_1_b362kndr_.arc thread=1 sequence=1
archived log file name=/u01/fast_recovery_area/PRACTICE/archivelog/2014_10_06/o1_mf_1_2_b362l34q_.arc thread=1 sequence=2
archived log file name=/u01/fast_recovery_area/PRACTICE/archivelog/2014_10_06/o1_mf_1_3_b362lc83_.arc thread=1 sequence=3
archived log file name=/u01/oradata/practice/redo01.log thread=1 sequence=4
media recovery complete, elapsed time: 00:00:00
Finished recover at 06-OCT-14

4,备份控制文件到trace
SYS@practice >select open_mode from v$database;

OPEN_MODE
--------------------
MOUNTED

SYS@practice >alter database backup controlfile to trace;


SYS@practice >select value from v$diag_info where;

VALUE
--------------------------------------------------------------------------------
/u01/diag/rdbms/practice/practice/trace/practice_ora_1185.trc

5,重启实例到nomount状态
RMAN> startup force nomount;

Oracle instance started

Total System Global Area    580395008 bytes

Fixed Size                    2255392 bytes
Variable Size                402654688 bytes
Database Buffers            171966464 bytes
Redo Buffers                  3518464 bytes

6,执行重建控制文件命令进入到mount状态
vi /home/oracle/create_controlfile.sql

STARTUP NOMOUNT
CREATE CONTROLFILE REUSE DATABASE "PRACTICE" NORESETLOGS  ARCHIVELOG
    MAXLOGFILES 16
    MAXLOGMEMBERS 3
    MAXDATAFILES 100
    MAXINSTANCES 8
    MAXLOGHISTORY 292
LOGFILE
  GROUP 1 '/u01/oradata/practice/redo01.log'  SIZE 50M BLOCKSIZE 512,
  GROUP 2 '/u01/oradata/practice/redo02.log'  SIZE 50M BLOCKSIZE 512,
  GROUP 3 '/u01/oradata/practice/redo03.log'  SIZE 50M BLOCKSIZE 512
DATAFILE
  '/u01/oradata/practice/system01.dbf',
  '/u01/oradata/practice/sysaux01.dbf',
  '/u01/oradata/practice/undotbs01.dbf',
  '/u01/oradata/practice/users01.dbf',
  '/u01/oradata/practice/example01.dbf'
CHARACTER SET AL32UTF8
;
VARIABLE RECNO NUMBER;
EXECUTE :RECNO := SYS.DBMS_BACKUP_RESTORE.SETCONFIG('CONTROLFILE AUTOBACKUP','ON');
RECOVER DATABASE
ALTER SYSTEM ARCHIVE LOG ALL;
ALTER DATABASE OPEN;
ALTER TABLESPACE TEMP ADD TEMPFILE '/u01/oradata/practice/temp01.dbf' REUSE;

在sqlplus下执行创建控制文件脚本,数据库会启动到open状态并添加临时表空间文件。

SYS@practice >@create_controlfile.sql

Control file created.

PL/SQL procedure successfully completed.

Media recovery complete.

System altered.

Database altered.

Tablespace altered.

此时数据库已经处于read write状态也就是open状态了
SYS@practice >select open_mode from v$database;

OPEN_MODE
--------------------
READ WRITE

查看当前日志的序列号,没有被重置。
SYS@practice >select group#,sequence#,archived,status,first_change#,next_change# from v$log;

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/b9e2a17249559ec3690808ce2bf2b4f6.html