关于控制文件和redo log损坏的恢复
前段时间一朋友自己电脑上的开发测试用的数据库出了点问题,电脑操作系统是Win8,直接在Win8上安装了Oracle11g,后来系统自动升级到Win8.1,Oracle相关的服务全都不见了,想想把数据文件、参数据文件、控制文件、redo log备份一下,然后重装一下,但在复制控制文件的时候,总是无法复制,最终放弃了备份控制文件,打算装好后重建控制文件。一切还算顺利,因为数据文件和redo log都是完整的,所以重建控制文件也很顺利。
由此想到春节前有一台服务器因断电而导致控制文件和redo log损坏,当时用了备份文件恢复了数据库,现在想一下是否可以通过重建控制文件的方式来恢复,就找了一个测试机做了一个测试,操作步骤如下:(未做解释)
[oracle@demo.com.cn:/u02/oradata/dba]$ ll
total 2336140
-rw-r----- 1 oracle oinstall 9748480 Mar 31 09:21 control01.ctl
-rw-r----- 1 oracle oinstall 9748480 Mar 31 09:21 control02.ctl
-rw-r----- 1 oracle oinstall 9748480 Mar 31 09:21 control03.ctl
-rw-r----- 1 oracle oinstall 104865792 Mar 31 09:21 example01.dbf
-rw-r----- 1 oracle oinstall 52429312 Mar 31 09:21 redo01.log
-rw-r----- 1 oracle oinstall 52429312 Mar 31 09:21 redo02.log
-rw-r----- 1 oracle oinstall 52429312 Mar 31 09:21 redo03.log
-rw-r----- 1 oracle oinstall 629153792 Mar 31 09:21 sysaux01.dbf
-rw-r----- 1 oracle oinstall 754982912 Mar 31 09:21 system01.dbf
-rw-r----- 1 oracle oinstall 88088576 Mar 30 16:56 temp01.dbf
-rw-r----- 1 oracle oinstall 676339712 Mar 31 09:21 undotbs01.dbf
-rw-r----- 1 oracle oinstall 5251072 Mar 31 09:21 users01.dbf
[oracle@demo.com.cn:/u02/oradata/dba]$ rm *.ctl
[oracle@demo.com.cn:/u02/oradata/dba]$ rm *.log
[oracle@demo.com.cn:/u02/oradata/dba]$ ll
total 2153968
-rw-r----- 1 oracle oinstall 104865792 Mar 31 09:21 example01.dbf
-rw-r----- 1 oracle oinstall 629153792 Mar 31 09:21 sysaux01.dbf
-rw-r----- 1 oracle oinstall 754982912 Mar 31 09:21 system01.dbf
-rw-r----- 1 oracle oinstall 88088576 Mar 30 16:56 temp01.dbf
-rw-r----- 1 oracle oinstall 676339712 Mar 31 09:21 undotbs01.dbf
-rw-r----- 1 oracle oinstall 5251072 Mar 31 09:21 users01.dbf
[oracle@demo.com.cn:/u02/oradata/dba]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.3.0 Production on Tue Mar 31 09:22:07 2015 Copyright (c) 1982, 2011, Oracle. All rights reserved. Connected to an idle instance. SQL> startup nomount
ORACLE instance started. Total System Global Area 8551575552 bytes
Fixed Size 2245480 bytes
Variable Size 939527320 bytes
Database Buffers 7600078848 bytes
Redo Buffers 9723904 bytes
SQL> CREATE CONTROLFILE REUSE DATABASE "DBA" RESETLOGS NOARCHIVELOG
2 MAXLOGFILES 16
3 MAXLOGMEMBERS 3
4 MAXDATAFILES 100
5 MAXINSTANCES 8
6 MAXLOGHISTORY 10
7 LOGFILE
8 GROUP 1 '/u02/oradata/dba/redo01.log' SIZE 50M,
9 GROUP 2 '/u02/oradata/dba/redo02.log' SIZE 50M,
10 GROUP 3 '/u02/oradata/dba/redo03.log' SIZE 50M
11 -- STANDBY LOGFILE
12 DATAFILE
13 '/u02/oradata/dba/system01.dbf',
14 '/u02/oradata/dba/undotbs01.dbf',
15 '/u02/oradata/dba/sysaux01.dbf',
16 '/u02/oradata/dba/users01.dbf',
17 '/u02/oradata/dba/example01.dbf'
18 CHARACTER SET ZHS16GBK
19 ; Control file created. SQL> recover database using backup controlfile until cancel;
ORA-00279: change 2078375 generated at 03/31/2015 09:21:31 needed for thread 1
ORA-00289: suggestion : /u03/arch_log/1_1_875784077.dbf
ORA-00280: change 2078375 for thread 1 is in sequence #1 Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
auto
ORA-00308: cannot open archived log '/u03/arch_log/1_1_875784077.dbf'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3 ORA-00308: cannot open archived log '/u03/arch_log/1_1_875784077.dbf'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3 SQL> alter database open resetlogs; Database altered. SQL> exit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
[oracle@demo.com.cn:/u02/oradata/dba]$ ll
total 2336140
-rw-r----- 1 oracle oinstall 9748480 Mar 31 09:28 control01.ctl
-rw-r----- 1 oracle oinstall 9748480 Mar 31 09:28 control02.ctl
-rw-r----- 1 oracle oinstall 9748480 Mar 31 09:28 control03.ctl
-rw-r----- 1 oracle oinstall 104865792 Mar 31 09:24 example01.dbf
-rw-r----- 1 oracle oinstall 52429312 Mar 31 09:27 redo01.log
-rw-r----- 1 oracle oinstall 52429312 Mar 31 09:24 redo02.log
-rw-r----- 1 oracle oinstall 52429312 Mar 31 09:24 redo03.log
-rw-r----- 1 oracle oinstall 629153792 Mar 31 09:24 sysaux01.dbf
-rw-r----- 1 oracle oinstall 754982912 Mar 31 09:24 system01.dbf
-rw-r----- 1 oracle oinstall 88088576 Mar 30 16:56 temp01.dbf
-rw-r----- 1 oracle oinstall 676339712 Mar 31 09:24 undotbs01.dbf
-rw-r----- 1 oracle oinstall 5251072 Mar 31 09:24 users01.dbf
[oracle@demo.com.cn:/u02/oradata/dba]$
关于控制文件和redo log损坏的恢复的更多相关文章
- 07 oracle 非归档模式 inactive/active/current redo log损坏的恢复
在非归档模式下缺失Redo Log后的恢复 将之前的归档模式修改为非归档 SQL> shutdown immediate; SQL> startup mount SQL> alter ...
- 07 oracle 归档模式 inactive/current redo log损坏修复--以及错误ORA-00600: internal error code, arguments: [2663], [0], [9710724], [0], [9711142], [], [], [], [], [], [], []
07 oracle 归档模式 inactive/current redo log损坏修复--以及错误ORA-00600: internal error code, arguments: [2663], ...
- 07 归档模式 Active redo log丢失或损坏的恢复
环境同上一篇 模拟处于active状态的redo log损坏 sesion 1 SYS@ orcl >/ GROUP# THREAD# SEQUENCE# BYTES BLOCKSIZE MEM ...
- MySQL · 引擎特性 · InnoDB redo log漫游(转)
前言 InnoDB 有两块非常重要的日志,一个是undo log,另外一个是redo log,前者用来保证事务的原子性以及InnoDB的MVCC,后者用来保证事务的持久性. 和大多数关系型数据库一样, ...
- Oracle的控制文件
一.控制文件 oracle的控制文件是极其重要的文件,它是一个较小的二进制文件. 记录了当前数据库的结构信息,同时也包含数据文件及日志文件的信息以及相关的状态,归档信息等等 在参数文件中描述其位置, ...
- 用备份控制文件做不完全恢复下的完全恢复(全备<老>--备份控制文件<次新>--删除表空间andy--日志文件<新>)
为什么会使用备份的控制文件? 实际工作中主要有两种情况:第一种:当前控制文件全部损坏,而数据文件备份,控制文件备份及当前日志处于不同SCN版本,它们之间又增加过表空间(数据文件).第二种:当前控制文件 ...
- 说说MySQL中的Redo log Undo log都在干啥
在数据库系统中,既有存放数据的文件,也有存放日志的文件.日志在内存中也是有缓存Log buffer,也有磁盘文件log file,本文主要描述存放日志的文件. MySQL中的日志文件, ...
- 【转】说说MySQL中的Redo log Undo log都在干啥
阅读目录(Content) 1 undo 1.1 undo是啥 1.2 undo参数 1.3 undo空间管理 2 redo 2.1 redo是啥 2.2 redo 参数 2.3 redo 空间管理 ...
- MySQL:binlog 和 redo log
[参考文章]:MySQL中Redo与Binlog顺序一致性问题? [参考文章]:极客时间 1. 数据更新时的日志处理流程 1.1 redo log(prepare状态) 此时SQL已经成功执行了,已经 ...
随机推荐
- 常用排序算法之——选择排序(C语言+VC6.0平台)
选择排序是另一种经典排序算法,核心思想是:在一趟找最小(大)数的过程中,先假设待排数据中的第一个数据即为最小(大)数据,然后循环将其他数据与该数据比较,每次比较时若小于该数据则让新数据成为最小(大)数 ...
- 转:yarn详解
背景 Yarn是一个分布式的资源管理系统,用以提高分布式的集群环境下的资源利用率,这些资源包括内存.IO.网络.磁盘等.其产生的原因是为了解决原MapReduce框架的不足.最初MapReduce的c ...
- 转:VC++获取屏幕大小第一篇 像素大小GetSystemMetrics
VC++获取屏幕大小第一篇 像素大小 GetSystemMetrics>和<VC++获取屏幕大小第二篇物理大小GetDeviceCaps 上>和<VC++获取屏幕大小第三篇物理 ...
- Java 单例总结
1:懒汉式,不保证线程安全 package com.yan.singleton; public class LazySingleton { private static final LazySingl ...
- java调优随记-java对象大小
在java中,基本数据类型的大小是固定.但是java对象的大小是不固定的,需要通过计算. 在java中,一个空对象(没有属性和方法的对象)在堆中占用8byte,比如 Object obj = new ...
- 设计模式 ( 十六 ): Mediator中介者模式 -- 行为型
1.概述 在面向对象的软件设计与开发过程中,根据“单一职责原则”,我们应该尽量将对象细化,使其只负责或呈现单一的职责,即将行为分布到各个对象中. 对于一个模块或者系统,可能由很多对象构成,而且这些对象 ...
- HDOJ 1076 An Easy Task(闰年计算)
Problem Description Ignatius was born in a leap year, so he want to know when he could hold his birt ...
- poj3177 Redundant Paths
Description In order to get from one of the F (1 <= F <= 5,000) grazing fields (which are numb ...
- HDU_2553——n皇后问题,作弊
在N*N的方格棋盘放置了N个皇后,使得它们不相互攻击(即任意2个皇后不允许处在同一排,同一列,也不允许处在与棋盘边框成45角的斜线上.你的任务是,对于给定的N,求出有多少种合法的放置方法. Inp ...
- HDU5125--magic balls(LIS)
题意:求a数组的LIS,但是加了一个条件,为了LIS最大 b[i] a[i]可以交换.最多交换mci: 赤果果的dp啊,可是这个题用线段树的话却会TLE,,由于查询的只是1-x的最大值 因此我们可以用 ...