`

控制文件丢失,但online redo log文件依然可用情况下的控制文件的恢复

阅读更多

 

以前做过控制文件的恢复,但没能成功。今天算是成功了一次。

在模拟控制文件损坏前,冷备了整个数据库。害怕啊!!

控制文件的重建脚本其实在控制文件的备份文件中可以找到,不用自己写。

实验开始:

1,安全关闭数据库。删除控制文件。

2,备份控制文件

   SQL> alter database backup controlfile to trace;

  至于控制文件被备份到哪?这个问题可以在oracle的alert_SID.log中找到。当然也可以指定控制文件应该备份到哪,及叫什么名字:

   SQL> alter database backup controlfile to trace as 'u01/123';

这里是把控制文件备份到u01目录下,备份结果叫123。

 

3,备份控制文件中提供了两种恢复控制文件的脚本:RESETLOGS / NORESETLOGS。

 

   如何选择哪个脚本来恢复控制文件的关键就在于:

   1.Set NORESETLOGS case

     The following commands will create a new control file and use it                                

     to open the database.

     Data used by Recovery Manager will be lost.

     Additional logs may be required for media recovery of offline.

     Use this only if the current versions of all online logs are available.

 

  2.Set RESETLOGS case

     The following commands will create a new control file and use it to open the database.

     Data used by Recovery Manager will be lost.

     The contents of online logs will be lost and all backups will be invalidated.

     Use this only if online logs are damaged.

 

4,由于我的online logs没有损坏。所以就用NORESETLOGS来恢复了

 

5,用SYS用户执行脚本createctl.sql。createctl.sql脚本如下:

 

STARTUP NOMOUNT

CREATE CONTROLFILE REUSE DATABASE "SAM" NORESETLOGS  ARCHIVELOG

    MAXLOGFILES 16

    MAXLOGMEMBERS 3

    MAXDATAFILES 100

    MAXINSTANCES 8

    MAXLOGHISTORY 292

LOGFILE

  GROUP 1 '/u01/oradata/sam/redo01.log'  SIZE 50M BLOCKSIZE 512,

  GROUP 2 '/u01/oradata/sam/redo02.log'  SIZE 50M BLOCKSIZE 512,

  GROUP 3 '/u01/oradata/sam/redo03.log'  SIZE 50M BLOCKSIZE 512

-- STANDBY LOGFILE

DATAFILE

  '/u01/oradata/sam/system01.dbf',

  '/u01/oradata/sam/sysaux01.dbf',

  '/u01/oradata/sam/undotbs01.dbf',

  '/u01/oradata/sam/users01.dbf',

  '/u01/oradata/sam/example01.dbf',

  '/u01/oradata/sam/tbs1_01.dbf',

  '/u01/oradata/sam/ts0_01.dbf',

  '/u01/oradata/sam/ts1_01.dbf',

  '/u01/oradata/sam/ts2_01.dbf',

  '/u01/oradata/sam/ts3_01.dbf',

  '/u01/oradata/sam/perfstat01.dbf'

CHARACTER SET WE8MSWIN1252

;

RECOVER DATABASE

ALTER SYSTEM ARCHIVE LOG ALL;

ALTER DATABASE OPEN;

ALTER TABLESPACE TEMP ADD TEMPFILE '/u01/oradata/sam/temp01.dbf'

     SIZE 20971520  REUSE AUTOEXTEND ON NEXT 655360  MAXSIZE 32767M;

ALTER TABLESPACE TEMP1 ADD TEMPFILE '/u01/oradata/sam/temp0_01.dbf'

     SIZE 104857600  REUSE AUTOEXTEND OFF;

 

 

6,执行过程如下:


 

至此,控制文件恢复完成。会在u01/oradata/sam目录下看到新恢复的控制文件。

  • 大小: 50 KB
分享到:
评论

相关推荐

    行业-42 redo log是直接一条一条写入文件的吗?非也,揭秘redo log block.rar

    redo log分为在线redo log(online redo log)和归档redo log(archived redo log),前者是正在使用的日志,后者是已滚动并保存的历史记录。 在大多数数据库系统中,redo log并不是一条一条记录写入文件,而是以...

    控制文件、联机日志的管理

    **联机日志(Online Redo Log)** 联机日志是Oracle数据库进行事务处理时记录所有更改的地方,分为多个组,每个组至少包含两个成员,以实现冗余和故障切换。 1. **功能**:联机日志记录所有的DML(数据操纵语言)和...

    【最新编排】ORACLE数据库命令大全速查.doc

    - **清空重做日志文件**(Clearing Online Redo Log Files):`ALTER DATABASE CLEAR LOGFILE`可以清除重做日志中的内容,但请注意这会丢失未提交的事务信息。 - **使用LogMiner分析重做日志**:LogMiner工具...

    ORACLE常用命令

    表空间还可以设置为`ONLINE`或`OFFLINE`状态,控制其是否可用。此外,可以使用`EXTENT MANAGEMENT`子句来指定段扩展管理方式,以及使用`PERMANENT`或`TEMPORARY`来定义表空间用途。 掌握这些Oracle命令对于数据库...

    Oracle常用命令大汇总.doc

    使用`ALTER SYSTEM CHECKPOINT`命令可以立即完成当前事务的检查点操作,将所有未持久化的更改写入数据文件并更新控制文件,确保在故障恢复时能快速定位到最新的已提交状态。 3. **添加在线重做日志组** (`adding ...

    ORACLE 常用命令

    3. **添加在线redo日志组**(Adding Online Redo Log Groups): `ALTER DATABASE ADD LOGFILE [GROUP 4] ('/disk3/log4a.rdo','/disk4/log4b.rdo') SIZE 1M;` 这个命令增加一个新的redo日志组,指定日志文件的...

    oracle日志丢失数据库恢复技巧

    - **性能下降**:即使数据库能够启动,但在某些情况下可能会因为缺少日志文件而降低性能。 #### 重做日志丢失的恢复策略 针对重做日志文件丢失的情况,可以根据日志文件的状态采取不同的恢复策略。这里提供三种...

    Oracle数据库文件进行恢复与备份

    其中,**在线日志(Online Redo Log)**尤为重要,它由多个在线日志文件组成,记录了数据库中所有修改的细节,是实现数据恢复的关键组件。 #### Oracle数据导入导出(IMP/EXP) Oracle提供了内置工具IMP(Import)...

    Archive Log 学习笔记 --oracle 数据库

    - 归档日志是联机重做日志(Online Redo Log)的备份,当一个redo log group切换时,如果数据库配置为归档模式,那么当前日志组的内容会被复制到归档日志中。 - 归档日志有两种模式:非归档模式(Noarchivelog)和...

    sql plus 命令大全

    检查点的作用是将所有已提交但尚未写入数据文件的数据块刷新到磁盘,并且更新控制文件和重做日志文件中的相关信息。这有助于减少数据库在崩溃时的恢复时间。 ##### 3. 添加在线重做日志组 (Adding Online Redo Log ...

    ORACLE常用命令总结

    5. **更改在线重做日志文件名称(Changing the Name of the Online Redo Logfile)** - **命令**: ``` ALTER DATABASE RENAME FILE 'c:/oracle/oradata/oradb/redo01.log' TO 'c:/oracle/oradata/redo01.log';...

    oracle里的常用命令

    更改在线重做日志文件名称 (Changing the Name of the Online Redo Log File) **命令:** ``` ALTER DATABASE RENAME FILE 'old_location' TO 'new_location'; ``` **作用:** 此命令允许更改在线重做日志文件的...

    Oracle 数据库备份恢复实例.doc

    4. **控制文件**:记录数据库的物理结构和其他关键信息。 5. **重做日志文件**:记录了对数据库所做的所有更改。 #### 三、准备工作 在开始正式的恢复流程之前,我们首先需要创建一些测试数据并设置好环境: - ...

    Oracle基础知识_第六讲PPT学习教案.pptx

    在Oracle中,联机重做日志(Online Redo Log)文件是保障数据安全和恢复的重要组件。本讲主要探讨了联机重做日志文件的基础知识,包括其特点、作用、管理和维护。 联机重做日志文件是Oracle数据库记录所有事务操作...

    ORACLE 10g DATAGUARD 部署全过程

    需要创建与在线重做日志(Online Redo Log)数量相等且大小相同的N+1个Standby Redo Log File Group。例如,如果主数据库有4个Online Redo Log,那么需要创建5个Standby Redo Log File Group。 3. **配置初始化参数...

    Oracle DG实施

    - standby redo log(备用重做日志)的配置应与主数据库的online redo log(在线重做日志)配置类似,包括组数、大小和成员数。 - 重建密码文件时,应尽量使用主数据库的原有设置,减少对主库参数配置的改动。 - 在...

    Oracle在线重做日志文件详解

    ALTER SYSTEM SET DB_CREATE_ONLINE_LOG_DEST_1='/ORACLE/ORALOG/OMF'; ALTER DATABASE ADD LOGFILE GROUP 6; ALTER DATABASE DROP LOGFILE GROUP 6; ``` #### 六、配置归档模式 1. **启用归档模式** - 启用...

    (完整word版)OracleDataguard操作手册20160912.doc

    * 最大保护模式(Maximum Protection):确保绝无数据丢失,但需要所有的事务在提交前其 redo 不仅被写入到本地的 online redo log,还要同时提交到 standby 数据库的 standby redo log,并确认 redo 数据至少在一个...

Global site tag (gtag.js) - Google Analytics