oracle自动恢复数据库文件,只有数据文件情况下恢复Oracle数据库
只有数据文件情况下恢复数据库
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数据库相关推荐
- 控制文件和数据文件丢失,有全备份恢复数据库的方法
控制文件和数据文件丢失,有全备份恢复数据库的方法 控制文件丢失,即使有全备份也难恢复数据库,因为备份信息是存在于控制文件的. 刚看论坛精华帖,Feng讲的dbms_backup_restore包还是很 ...
- 数据库装载完毕。 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 ...
- oracle数据库offline,oracle中删除offline状态的数据文件
oracle在归档模式下: 我开始想单独删除一个表空间里的数据文件. 先查询想要删除的数据文件的相关信息:select * from v$datafile; alter database dat ...
- Oracle 11g_管理表空间和数据文件(7)
1. 表空间和数据文件的关系 在Oracle数据库中,表空间和数据文件之间的关系非常密切,这二者之间相互依存,也就是说,创建表空间时必须创建数据文件,增加数据文件时也必须指定表空间. Oracle磁盘 ...
- oracle删除orcl库_oracle删除数据文件
在我们详细介绍之前,我们必须说清楚一点:Oracle不提供如删除表.视图一样删除数据文件的方法,数据文件是表空间的一部分,所以不能"移走"表空间. 一.使用offline数据文件的 ...
- 解密Globeimposter-Alpha865qqz勒索病毒:如何恢复被加密的数据文件?
导语: 随着数字化时代的到来,网络安全威胁也日益增加,其中勒索病毒是当前备受关注的问题之一.Globeimposter-Alpha865qqz勒索病毒作为其中的一种,已经给无数用户带来了沉重的打击和困 ...
- undo表空间文件丢失恢复(4)--无备份无recover的情况下恢复
undo表空间的数据文件丢失,如果没有备份的情况下,而且丢失的undo文件可以置为offline状态后(注意是offline不是recover状态),则可以如下恢复,下边给出一个例子. undo表空间 ...
- undo表空间文件丢失恢复(3)--无备份无redo的情况下恢复
undo表空间的数据文件丢失,如果没有备份的情况下,而且redo也不可用,这个时候就要采用隐藏参数来恢复,下边给出一个例子. undo表空间文件丢失恢复(1)--有备份的情况下恢复:http://bl ...
- jsp页面判断输入编号已存在mysql中_面试官让我聊聊Mysql基础架构之日志文件与数据文件...
上一篇文章讲述了Mysql的基本框架,和sql执行的流程,这篇文章首先分析下每个流程的具体细节,然后介绍日志文件和数据文件以下面语句作为例子来分析流程中每一步的具体细节: select * from ...
最新文章
- IROS2020 | 面向城市自动驾驶应用的概率语义建图
- qt 删除文件夹_Qt 贪吃蛇制作(含源码)
- 远距离蓝牙四驱小车方案
- Goroutine的几个例子
- ibm笔记本电脑电池_笔记本电池怎么充电 笔记本电脑电池充电方法【详解】
- [Documentation]porting
- spring 启动完成后事件监听器处理
- 概率论:假设检验、极大似然估计、无偏估计
- spring security 实现微信登录
- js字符串转json, json转字符串
- 手机下载的Termux如何利用you-get 下载视频
- 黑马49期 day06-mysql入门(对照视频整理的一份笔记--有改动)
- 找不到Break键怎么Quit / 退出服务CTRL-BREAK怎么输入啊?/ 笔记本键盘上没有break键
- 使用python绘制3维正态分布图
- 关于sim/usim的一些概念
- android应用是非正式版本,Androidstudio 打包apk安装失败 应用是非正式发布版本,当前设备不支持安装...
- 新的一年强势推荐5个免费的在线工具
- 《第一行代码》总结之简介、Activity(一)
- SVN :Cannot verify lock on path XXX,no username available
- 使用 Flutter 与 Firebase 制作 I/O 弹球游戏
热门文章
- python语言公开发行版本诞生于哪年-python于哪一年正式发布
- 【STM32】ADC程序示例
- 生活啊,尽情虐待我吧
- 让Python使用Bing翻译API V2
- C语言有符号 存储,【填空题】在C语言中,对于整型变量采用有符号数和_________数两种存储形式。...
- TXT文件转Pascal voc数据集XML格式标注文件
- I-NUIST南京信息工程大学Android设备校园网自动登录
- operator=的用法
- 美拍短视频成本减半及毫秒起播优化实践
- 前程无忧达成私有化协议:遭遇大砍价 作价降至43亿美元