`

create controlfile resetlogs or noresetlogs

 
阅读更多

概述

CREATE CONTROLFILE { RESETLOGS | NORESETLOGS }
/* Syntax: */
CREATE CONTROLFILE
  [ REUSE ]
  [ SET ]
  DATABASE database
  [ logfile_clause ]
  { RESETLOGS | NORESETLOGS }
  [ DATAFILE file_specification
             [, file_specification ]... ]
  [ { MAXLOGFILES integer
    | MAXLOGMEMBERS integer
    | MAXLOGHISTORY integer
    | MAXDATAFILES integer
    | MAXINSTANCES integer
    | { ARCHIVELOG | NOARCHIVELOG }
    | FORCE LOGGING
    }
      [ MAXLOGFILES integer
      | MAXLOGMEMBERS integer
      | MAXLOGHISTORY integer
      | MAXDATAFILES integer
      | MAXINSTANCES integer
      | { ARCHIVELOG | NOARCHIVELOG }
      | FORCE LOGGING
      ]...
  ]
  [ character_set_clause ] ;
RESETLOGS  
Specify RESETLOGS if you want Oracle Database to ignore the contents of the files listed in the LOGFILE clause.  These files do not have to exist. Each redo_log_file_spec in the LOGFILE clause must specify the SIZE parameter.  The database assigns all online redo log file groups to thread 1 and enables this thread for public use by any  instance. After using this clause, you must open the database using the RESETLOGS clause of the ALTER DATABASE statement.
NORESETLOGS  
Specify NORESETLOGS if you want Oracle Database to use all files in the LOGFILE clause as they were when the database was last open. These files must exist and must be the current online redo log files rather than restored backups. The database reassigns the redo log file groups to the threads to which they were previously assigned and reenables the threads as they were previously enabled.
/* RESETLOGS 用于logfile丢失,或恢复到以前某一时刻
  1. 不会校验logfile_clause子句中文件是否存在,但它会为你重建,所以必须指定log大小
  2. alter database open 必须 resetlogs(sequence#重置为1)
   NORESETLOGS 用于logfile全部完好的恢复
*/
只要数据库结构,datafile位置没有变化,

alter database backup controlfile to trace as '/home/oracle/cf_bak.trc';
备份的trace文本都不会有变化
如何获得重建conf时的信息
用noresetlogs重建conf后转储控制文件
***************************************************************************
DATABASE ENTRY
***************************************************************************
...
 Database checkpoint: Thread=1 scn: 0x0000.00773f06  
 Threads: #Enabled=1, #Open=1, Head=1, Tail=1
/* resetlogs :
 Database checkpoint: Thread=0 scn: 0x0000.00000000
 Threads: #Enabled=1, #Open=0, Head=0, Tail=0
*/
scn: 0x0000.00773f06
[oracle@localhost ~]$ printf "%#d\n" 0x00773f06
7814918
这个scn是 当前redo log的start scn ,是从redo logfile的文件头中获得的, datafile上不会有这个信息,
SQL> select group#,sequence#,status,first_change#,next_change# from v$log;
    GROUP#  SEQUENCE# STATUS           FIRST_CHANGE# NEXT_CHANGE#
---------- ---------- ---------------- ------------- ------------
         1          7 INACTIVE               7814869      7814872
         2          8 INACTIVE               7814872      7814918
         3          9 CURRENT                7814918   2.8147E+14

***************************************************************************
REDO THREAD RECORDS
***************************************************************************
Checkpointed at scn:  0x0000.00773f06 11/21/2013 12:10:05
 thread:1 rba:(0x9.2.0)
/* resetlogs :
Checkpointed at scn:  0x0000.00000000
 thread:0 rba:(0x0.0.0)
*/
这里记录了current redolog ,start_scn的rba地址。当open db时,
可从alert.log中观察实例恢复的具体步骤
alter database open
Beginning crash recovery of 1 threads
Started redo scan
Completed redo scan
 read 35 KB redo, 0 data blocks need recovery
Started redo application at
 Thread 1: logseq 9, block 2, scn 7814918
Recovery of Online Redo Log: Thread 1 Group 3 Seq 9 Reading mem 0
  Mem# 0: /opt/oracle/oradata/myorcl11/redo03.log
Completed redo application of 0.00MB
Completed crash recovery at
 Thread 1: logseq 9, block 73, scn 7834953
 0 data blocks read, 0 data blocks written, 35 redo k-bytes read
 ...
***************************************************************************
LOG FILE RECORDS
***************************************************************************
LOG FILE #2:
  name #2: /opt/oracle/oradata/myorcl11/redo02.log
 Thread 1 redo log links: forward: 3 backward: 1
 siz: 0x19000 seq: 0x00000008 hws: 0x2 bsz: 512 nab: 0x94 flg: 0x0 dup: 1
 Archive links: fwrd: 3 back: 1 Prev scn: 0x0000.00773ed5
 Low scn: 0x0000.00773ed8 11/21/2013 12:10:04
 Next scn: 0x0000.00773f06 11/21/2013 12:10:05
LOG FILE #3:
  name #1: /opt/oracle/oradata/myorcl11/redo03.log
 Thread 1 redo log links: forward: 4 backward: 2
 siz: 0x19000 seq: 0x00000009 hws: 0x1 bsz: 512 nab: 0xffffffff flg: 0xa dup: 1
 Archive links: fwrd: 0 back: 2 Prev scn: 0x0000.00773ed8
 Low scn: 0x0000.00773f06 11/21/2013 12:10:05
 Next scn: 0xffff.ffffffff 01/01/1988 00:00:00
/*  resetlogs :
LOG FILE #3:
  name #4: /opt/oracle/oradata/myorcl11/redo03.log
 Thread 1 redo log links: forward: 4 backward: 2
 siz: 0x19000 seq: 0x00000000 hws: 0x0 bsz: 512 nab: 0x0 flg: 0x1 dup: 1
 Archive links: fwrd: 0 back: 0 Prev scn: 0x0000.00000000
 Low scn: 0x0000.00000000 01/01/1988 00:00:00
 Next scn: 0x0000.00000000 01/01/1988 00:00:00
*/
noresetlogs 读取logfile_clause指定的文件信息,都读进来之后Next scn: 0xffff.ffffffff
找到当前redo的Low scn -> scn:  0x0000.00773f06
写到DATABASE ENTRY ,REDO THREAD RECORDS ,LOG FILE RECORDS ,DATA FILE RECORDS
***************************************************************************
DATA FILE RECORDS
***************************************************************************
/* 控制文件中记录的datafile区 */
DATA FILE #1:
  name #19: /opt/oracle/oradata/myorcl11/system01.dbf
creation size=0 block size=8192 status=0x12 head=19 tail=19 dup=1
 tablespace 0, index=1 krfil=1 prev_file=0
 unrecoverable scn: 0x0000.00000000 01/01/1988 00:00:00
 Checkpoint cnt:570 scn: 0x0000.00773f06 01/01/1988 00:00:00
 Stop scn: 0xffff.ffffffff 11/21/2013 13:00:15
用resetlogs重建conf后转储控制文件
DATA FILE #1:
  name #19: /opt/oracle/oradata/myorcl11/system01.dbf
creation size=0 block size=8192 status=0x12 head=19 tail=19 dup=1
 tablespace 0, index=1 krfil=1 prev_file=0
 unrecoverable scn: 0x0000.00000000 01/01/1988 00:00:00
 Checkpoint cnt:570 scn: 0x0000.00773ecd 11/21/2013 12:10:01
 Stop scn: 0xffff.ffffffff 11/21/2013 12:57:24
*/
noresetlogs 把current redo的low scn当做他认为数据文件应该达到的full_checkpoint_scn resetlogs 是把df文件头的Checkpointed at scn:  0x0000.00773ecd 当做full_checkpoint_scn 他们的Stop scn: 0xffff.ffffffff,所以势必需要做crash recovery。
df文件头的Checkpoint_scn可通过
alter session set events 'immediate trace name file_hdrs level 10';
dump出的trace文件的信息包含两个部分,一部分来自控制文件,另一部分来自数据文件:
/* V10 STYLE FILE HEADER: 这之后的是从数据文件中dump的 ,之前是conf的内容 */
DATA FILE #4:
  name #16: /opt/oracle/oradata/myorcl11/users01.dbf
creation size=0 block size=8192 status=0x12 head=16 tail=16 dup=1
 tablespace 4, index=4 krfil=4 prev_file=1024
 unrecoverable scn: 0x0000.00000000 01/01/1988 00:00:00
 Checkpoint cnt:568 scn: 0x0000.00773f06 01/01/1988 00:00:00
 Stop scn: 0xffff.ffffffff 11/21/2013 13:00:15
 Creation Checkpointed at scn:  0x0000.00004743 08/13/2009 23:01:06
 thread:0 rba:(0x0.0.0)
 enabled  threads:  00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000
 Offline scn: 0x0000.00000000 prev_range: 0
 Online Checkpointed at scn:  0x0000.00000000
 thread:0 rba:(0x0.0.0)
 enabled  threads:  00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000
 Hot Backup end marker scn: 0x0000.00000000
 aux_file is NOT DEFINED
 Plugged readony: NO
 Plugin scnscn: 0x0000.00000000
 Plugin resetlogs scn/timescn: 0x0000.00000000 01/01/1988 00:00:00
 Foreign creation scn/timescn: 0x0000.00000000 01/01/1988 00:00:00
 Foreign checkpoint scn/timescn: 0x0000.00000000 01/01/1988 00:00:00
 Online move state: 0
 V10 STYLE FILE HEADER:
 Compatibility Vsn = 186646528=0xb200000
 Db ID=2432893466=0x9103021a, Db Name='MYORCL11'
 Activation ID=0=0x0
 Control Seq=18824=0x4988, File size=640=0x280
 File Number=4, Blksiz=8192, File Type=3 DATA
Tablespace #4 - USERS  rel_fn:4
Creation   at   scn: 0x0000.00004743 08/13/2009 23:01:06
Backup taken at scn: 0x0000.00000000 01/01/1988 00:00:00 thread:0
 reset logs count:0x3198774e scn: 0x0000.00773ccf
 prev reset logs count:0x31985dd9 scn: 0x0000.007644c3
 recovered at 11/21/2013 12:05:47
 status:0x4 root dba:0x00000000 chkpt cnt: 568 ctl cnt:567
begin-hot-backup file size: 0
Checkpointed at scn:  0x0000.00773ecd 11/21/2013 12:10:01
 thread:1 rba:(0x6.2.10)
 enabled  threads:  01000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000
Backup Checkpointed at scn:  0x0000.00000000
 thread:0 rba:(0x0.0.0)
 enabled  threads:  00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000
External cache id: 0x0 0x0 0x0 0x0
Absolute fuzzy scn: 0x0000.00000000
Recovery fuzzy scn: 0x0000.00000000 01/01/1988 00:00:00
Terminal Recovery Stamp  01/01/1988 00:00:00
Platform Information:  Creation Platform ID: 10
Current Platform ID: 10 Last Platform ID: 10
从数据文件的rba,可以看出dbwr写到了sequence#=6的redo内容
Checkpointed at scn:  0x0000.00773ecd 11/21/2013 12:10:01
 thread:1 rba:(0x6.2.10)

 

参考至:http://blog.itpub.net/28859270/viewspace-777284/

如有错误,欢迎指正

邮箱:czmcj@163.com

分享到:
评论

相关推荐

    案例解决:一次oracle掉电的处理过程

    可以使用`CREATE CONTROLFILE`语句手动重建,或使用RMAN的`RESTORE CONTROLFILE`命令。 7. **验证完整性**:在数据库恢复后,应进行全面的数据库一致性检查,如使用`ANALYZE DATABASE VALIDATE STRUCTURE`命令,以...

    Oracle备份与恢复讲义(3)

    CREATE CONTROLFILE命令用于在控制文件丢失或需要修改时重建,它可以更新数据库的相关配置,如数据文件、重做日志成员等信息。在创建控制文件时,需要注意一些关键参数的使用,如RESETLOGS和NORESETLOGS,它们分别...

    oracle控制文件的建立

    - 示例:`CREATE CONTROLFILE SET DATABASE 'mydb' RESETLOGS`。 #### 三、修改控制文件 1. **添加控制文件副本**: - 可以使用`ALTER DATABASE ADD CONTROLFILE`命令来添加控制文件副本,以增强冗余性和可用性...

    重建控制文件

    在主库控制文件重建后,将新控制文件的副本传输到备用数据库,并在备用数据库上执行同样的CREATE CONTROLFILE语句。之后,可以使用SQL*NET或GoldenGate等工具同步数据以保持数据一致性。 最后,确保所有实例都已...

    数据库的物理结构(4).ppt

    在极端情况下,若所有控制文件都无法访问,DBA需要使用`CREATE CONTROLFILE`命令重建控制文件。 查看控制文件的内容通常不直接通过文本方式,而是通过执行`ALTER DATABASE BACKUP CONTROLFILE TO TRACE`命令,这将...

    恢复Oracle数据库控制文件.pdf

    SVRMGRL> ALTER DATABASE BACKUP CONTROLFILE TO TRACE NORESETLOGS; ``` 4. 修改第三步生成的Trace文件,复制创建控制文件的部分语句并进行修改,使其反映最新的数据库结构。 在处理过程中,要注意确保存储系统...

    ORACLE之FAQ -- 备份与恢复

    - 备份控制文件并生成追踪文件:`alter database backup controlfile to trace [resetlogs | noresetlogs];` **控制文件恢复** 如果控制文件损坏或丢失,可以通过以下步骤进行恢复: 1. 恢复控制文件之前,应先...

    xx生产系统oracle数据库迁移.docx

    * CREATE CONTROLFILE REUSE DATABASE:创建控制文件 * COPY DATAFILE:将数据文件从裸设备转换成文件系统 * COPY PARAMETER FILE:将参数文件传输到备机上 * REBUILD REDO LOG FILE:重建 redo 日志文件 五、...

    非归档模式system表空间损坏数据库恢复.docx

    2. **无法打开数据库**:尝试使用`ALTER DATABASE OPEN`命令时,收到了ORA-01589错误,提示需要使用`RESETLOGS`或`NORESETLOGS`选项。 3. **数据文件损坏**:进一步尝试使用`ALTER DATABASE OPEN RESETLOGS`命令时,...

    oracle数据库的启动和关闭

    建议在数据库启动前执行`ALTER DATABASE BACKUP CONTROLFILE TO TRACE`命令,生成最新的CREATE CONTROLFILE命令的跟踪文件,存储在`USER_DUMP_DEST`指定的路径,这样可以确保在需要时有最新的控制文件创建指令。...

    详细讲解Oracle物理结构故障的处理方法

    - 根据数据库状态创建新的控制文件(使用`ALTER DATABASE BACKUP CONTROLFILE TO TRACE NORESETLOGS`)。 - 修改trace文件中的创建控制文件语句,反映当前数据库结构。 - 重启数据库,使用修改后的SQL脚本创建...

    Oracle恢復流程圖

    - **Create controlfile NO**: 不需要创建新的控制文件。 #### Step 5: Database Open 数据库打开是恢复过程中的一个重要步骤,意味着数据库完全可用。 - **Open resetlogs YES**: 在某些情况下,如恢复后更改SCN...

    Oracle数据库管理之控制文件.pdf

    CREATE CONTROLFILE REUSE DATABASE "MY ORACLE" NO RESETLOGS NOARCHIVELOG MAXLOGFILES 16 MAXLOGMEMBERS 3 MAXDATAFILES 100 MAXINSTANCES 8 MAXLOGHISTORY 100; ``` 这里的参数如`MAXLOGFILES`、`...

    Oracle恢复流程

    这通常通过`create controlfile`语句完成。 - **拷贝好的控制文件覆盖坏的控制文件**:如果存在未损坏的控制文件副本,可以直接覆盖损坏的控制文件。 ### 三、数据文件与日志文件检查 - **4. 所有数据文件&日志...

    oracle恢复流程图

    2. **检查控制文件**: 如果所有控制文件都丢失,必须从Alert.log中找到最近的控制文件备份,并使用`CREATE CONTROLFILE`语句创建新的控制文件。然后,将备份的控制文件覆盖到新创建的文件中。 3. **数据文件和日志...

    oracle数据库存储管理

    创建控制文件可以在创建数据库时自动创建,或者使用 CREATE CONTROLFILE 语句手动创建。 创建控制文件副本可以使用以下步骤: 1. 关闭数据库 2. 将当前的控制文件复制到其他目录下 3. 修改初始化参数 CONTROL_...

    如何从完好的数据文件恢复oracle数据库.pdf

    - 示例:`alter database create controlfile set controlfile to 'C:\\demo\\oradata\\demo\\CONTROL01.CTL', 'C:\\demo\\oradata\\demo\\CONTROL02.CTL', 'C:\\demo\\oradata\\demo\\CONTROL03.CTL'`。...

Global site tag (gtag.js) - Google Analytics