只有数据文件情况下恢复数据库

1,创建几个表,进行 log switch

SQL> create table t9 as select * from dba_tables;

Table created.

SQL> alter system switch logfile;

System altered.

SQL> create table t10 as select * from v$session;

Table created.

SQL>

2,杀 oracle 进程,模拟意外关闭

[oracle@g1 gg1]$ kill ‐9 3358

Alert.log

Sun Feb 03 17:26:09 2013

Errors in file u01/app/oracle/diag/rdbms/gg1/gg1/trace/gg1_pmon_3342.trc:

ORA‐00471: DBWR process terminated with error

PMON (ospid: 3342): terminating the instance due to error 471

Instance terminated by PMON, pid = 3342

3,删除所有控制文件和日志文件

[oracle@g1 gg1]$ rm ‐fr *.ctl

[oracle@g1 gg1]$ rm ‐fr *.log

[oracle@g1 frank]$ rm ‐fr u01/app/oracle/product/11.2.0/dbhome_1/dbs/spfilefrank.ora

[oracle@g1 frank]$ rm ‐fr u01/app/oracle/product/11.2.0/dbhome_1/dbs/init.ora

试着启动一下

SQL> conn as sysdba;

Connected to an idle instance.

SQL> startup;

ORA‐01078: failure in processing system parameters

LRM‐00109:  could  not  open  parameter  file

'/u01/app/oracle/product/11.2.0/dbhome_1/dbs/initfrank.ora'

找不到参数文件了

4,手动建一个参数文件,只要有 db_name 和 control_files 就可以了

db_name=frank

control_files='/home/oracle/control01.ctl','/home/oracle/control02.ctl'

SQL> startup nomount pfile=/home/oracle/tmp.ora;

ORACLE instance started.

Total System Global Area   217157632 bytes

Fixed Size                   2158264 bytes

Variable Size              159383880 bytes

Database Buffers            50331648 bytes ORACLE东东堂                                                     QQ:327356330

Redo Buffers                 5283840 bytes

SQL>

可以 nomount 了,现在开始创建控制文件

5,如果 redo log也没有一定要改成 resetlogs

SQL> create controlfile reuse database 'frank' resetlogs noarchivelog

2   maxdatafiles 100

3   maxlogfiles 20

4   maxlogmembers 5

5   maxloghistory 100

6   logfile

7   group 1 '/home/oracle/redo01.log' size 100M reuse,

8   group 2 '/home/oracle/redo02.log' size 100M reuse,

9   group 3 '/home/oracle/redo03.log' size 100M reuse

10   datafile

11   '/u01/app/oracle/oradata/frank/sysaux01.dbf',

12   '/u01/app/oracle/oradata/frank/system01.dbf',

13   '/u01/app/oracle/oradata/frank/undotbs01.dbf',

14   '/u01/app/oracle/oradata/frank/users01.dbf'

15   character set AL32UTF8;

Control file created.

SQL> select status from v$instance;

STATUS

‐‐‐‐‐‐‐‐‐‐‐‐

MOUNTED

6,尝试打开数据库看看

SQL> alter database open;

alter database open

*

ERROR at line 1:

ORA‐01589: must use RESETLOGS or NORESETLOGS option for database open

SQL> alter database open resetlogs;

alter database open resetlogs

*

ERROR at line 1:

ORA‐01194: file 1 needs more recovery to be consistent

ORA‐01110: data file 1: '/u01/app/oracle/oradata/gg1/system01.dbf'

需要做恢复,因为我是一手动杀进程关闭,这时候数据文件是不一致的,而且我的 redolog

和归档都是没有的。

恢复肯定会报错的,试一下看

SQL> recover database using backup controlfile;

ORA‐00279: change 992964 generated at 02/03/2013 19:42:31 needed for thread 1

ORA‐00289: suggestion :

/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch1_5_806441953.dbf

ORA‐00280: change 992964 for thread 1 is in sequence #5

Specify log: {=suggested | filename | AUTO | CANCEL}

这个归档日志我根本就没有。

现在就采取手动推进 scn 的方式,让数据库以为可以使用当时的 redolog 就可以恢复,其实

我现在的 redolog也是控制的,只是这样骗过数据库

SQL> alter system set events '100015 trace name adjust_scn level 1';

System altered.

再恢复一下数据库试试看看

SQL> recover database using backup controlfile;

ORA‐00279: change 1155670 generated at 11/25/2012 00:41:09 needed for thread 1

ORA‐00289: suggestion :

/u01/app/oracle/product/11.1.7/db_1/dbs/arch1_23_791968117.dbf

ORA‐00280: change 1155670 for thread 1 is in sequence #23

Specify log: {=suggested | filename | AUTO | CANCEL}

cancel;

7,结果还是一样,在 tmp.ora 中增加隐含参数

_allow_resetlogs_corruption=true  SQL> startup mount pfile=/home/oracle/tmp.ora;

ORACLE instance started.

Total System Global Area   217157632 bytes

Fixed Size                   2158264 bytes

Variable Size              159383880 bytes

Database Buffers            50331648 bytes

Redo Buffers                 5283840 bytes

Database mounted.

SQL> alter database open resetlogs;

Database altered.

过往文章目录

祖仙教

理科精华

有问题请留言--->

oracle自动恢复数据库文件,只有数据文件情况下恢复Oracle数据库相关推荐

  1. 控制文件和数据文件丢失,有全备份恢复数据库的方法

    控制文件和数据文件丢失,有全备份恢复数据库的方法 控制文件丢失,即使有全备份也难恢复数据库,因为备份信息是存在于控制文件的. 刚看论坛精华帖,Feng讲的dbms_backup_restore包还是很 ...

  2. 数据库装载完毕。 ORA-01157: 无法标识/锁定数据文件 6 - 请参阅 DBWR 跟踪文件 ORA-01110: 数据文件 6: ‘D:\ORACLE\WENZHENG\TB63_CZB.DM

    从65行问题描述位置开始 の 有效命令: 82行: SQL>alter database datafile 'D:\ORACLE\WENZHENG\TB63_CZB.DMP' offline d ...

  3. oracle数据库offline,oracle中删除offline状态的数据文件

    oracle在归档模式下: 我开始想单独删除一个表空间里的数据文件. 先查询想要删除的数据文件的相关信息:select *  from v$datafile; alter  database  dat ...

  4. Oracle 11g_管理表空间和数据文件(7)

    1. 表空间和数据文件的关系 在Oracle数据库中,表空间和数据文件之间的关系非常密切,这二者之间相互依存,也就是说,创建表空间时必须创建数据文件,增加数据文件时也必须指定表空间. Oracle磁盘 ...

  5. oracle删除orcl库_oracle删除数据文件

    在我们详细介绍之前,我们必须说清楚一点:Oracle不提供如删除表.视图一样删除数据文件的方法,数据文件是表空间的一部分,所以不能"移走"表空间. 一.使用offline数据文件的 ...

  6. 解密Globeimposter-Alpha865qqz勒索病毒:如何恢复被加密的数据文件?

    导语: 随着数字化时代的到来,网络安全威胁也日益增加,其中勒索病毒是当前备受关注的问题之一.Globeimposter-Alpha865qqz勒索病毒作为其中的一种,已经给无数用户带来了沉重的打击和困 ...

  7. undo表空间文件丢失恢复(4)--无备份无recover的情况下恢复

    undo表空间的数据文件丢失,如果没有备份的情况下,而且丢失的undo文件可以置为offline状态后(注意是offline不是recover状态),则可以如下恢复,下边给出一个例子. undo表空间 ...

  8. undo表空间文件丢失恢复(3)--无备份无redo的情况下恢复

    undo表空间的数据文件丢失,如果没有备份的情况下,而且redo也不可用,这个时候就要采用隐藏参数来恢复,下边给出一个例子. undo表空间文件丢失恢复(1)--有备份的情况下恢复:http://bl ...

  9. jsp页面判断输入编号已存在mysql中_面试官让我聊聊Mysql基础架构之日志文件与数据文件...

    上一篇文章讲述了Mysql的基本框架,和sql执行的流程,这篇文章首先分析下每个流程的具体细节,然后介绍日志文件和数据文件以下面语句作为例子来分析流程中每一步的具体细节: select * from ...

最新文章

  1. IROS2020 | 面向城市自动驾驶应用的概率语义建图
  2. qt 删除文件夹_Qt 贪吃蛇制作(含源码)
  3. 远距离蓝牙四驱小车方案
  4. Goroutine的几个例子
  5. ibm笔记本电脑电池_笔记本电池怎么充电 笔记本电脑电池充电方法【详解】
  6. [Documentation]porting
  7. spring 启动完成后事件监听器处理
  8. 概率论:假设检验、极大似然估计、无偏估计
  9. spring security 实现微信登录
  10. js字符串转json, json转字符串
  11. 手机下载的Termux如何利用you-get 下载视频
  12. 黑马49期 day06-mysql入门(对照视频整理的一份笔记--有改动)
  13. 找不到Break键怎么Quit / 退出服务CTRL-BREAK怎么输入啊?/ 笔记本键盘上没有break键
  14. 使用python绘制3维正态分布图
  15. 关于sim/usim的一些概念
  16. android应用是非正式版本,Androidstudio 打包apk安装失败 应用是非正式发布版本,当前设备不支持安装...
  17. 新的一年强势推荐5个免费的在线工具
  18. 《第一行代码》总结之简介、Activity(一)
  19. SVN :Cannot verify lock on path XXX,no username available
  20. 使用 Flutter 与 Firebase 制作 I/O 弹球游戏

热门文章

  1. python语言公开发行版本诞生于哪年-python于哪一年正式发布
  2. 【STM32】ADC程序示例
  3. 生活啊,尽情虐待我吧
  4. 让Python使用Bing翻译API V2
  5. C语言有符号 存储,【填空题】在C语言中,对于整型变量采用有符号数和_________数两种存储形式。...
  6. TXT文件转Pascal voc数据集XML格式标注文件
  7. I-NUIST南京信息工程大学Android设备校园网自动登录
  8. operator=的用法
  9. 美拍短视频成本减半及毫秒起播优化实践
  10. 前程无忧达成私有化协议:遭遇大砍价 作价降至43亿美元