【原】非归档模式数据恢复 oracle11g r2

简介: 作者:david_zhang@sh 【转载时请以超链接形式标明文章】链接:http://www.cnblogs.com/david-zhang-index/archive/2012/04/03/2431490.

作者:david_zhang@sh 【转载时请以超链接形式标明文章】
链接:http://www.cnblogs.com/david-zhang-index/archive/2012/04/03/2431490.html?updated=1

1.创建实验表空间数据文件

 1 SQL> conn /as sysdba
 2 
 3 Connected.
 4 
 5 SQL> create tablespace data01 datafile '/u01/app/oracle/oradata/oracle/data01.dbf'size 10m;
 6 
 7 Tablespace created.
 8 
 9 SQL> create table david_01 tablespace data01 as select * from dba_objects;
10 
11 Table created.

2.数据文件offline

1 SQL> alter database datafile '/u01/app/oracle/oradata/oracle/data01.dbf' offline;
2 
3 Database altered.
4 
5 SQL> alter system switch logfile;
6 
7 System altered.

 3.数据文件online

 1 SQL> alter database datafile '/u01/app/oracle/oradata/oracle/data01.dbf' online;
 2 
 3 alter database datafile '/u01/app/oracle/oradata/oracle/data01.dbf' online
 4 
 5 *
 6 
 7 ERROR at line 1:
 8 
 9 ORA-01113: file 5 needs media recovery
10 
11 ORA-01110: data file 5: '/u01/app/oracle/oradata/oracle/data01.dbf'

 4.数据文件进行介质恢复

 1 SQL> recover datafile 5;
 2 
 3 ORA-00279: change 1179122 generated at 04/03/2012 23:35:49 needed for thread 1
 4 
 5 ORA-00289: suggestion : /u01/app/oracle/flash_recovery_area/ORACLE/archivelog/2012_04_03/o1_mf_1_25_7qp6 nqxt_.arc
 6 
 7 ORA-00280: change 1179122 for thread 1 is in sequence #25
 8 
 9  
10 
11 Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
12 
13 auto(自动搜索归档日志,本实验无归档日志)
14 
15 ORA-00308: cannot open archived log '/u01/app/oracle/flash_recovery_area/ORACLE/archivelog/2012_04_03/o1_mf_1_25_7qp 6nqxt_.arc'
16 
17 ORA-27037: unable to obtain file status
18 
19 Linux-x86_64 Error: 2: No such file or directory
20 
21 Additional information: 3
22 
23  
24 
25 ORA-00308: cannot open archived log '/u01/app/oracle/flash_recovery_area/ORACLE/archivelog/2012_04_03/o1_mf_1_25_7qp 6nqxt_.arc'
26 
27 ORA-27037: unable to obtain file status
28 
29 Linux-x86_64 Error: 2: No such file or directory
30 
31 Additional information: 3

5.加上until cancle参数再次尝试恢复,恢复数据原则要进程不断尝试

 1 SYS SQL> recover datafile 5 until cancel;
 2 
 3 ORA-00274: illegal recovery option UNTIL
 4 
 5  
 6 
 7 SQL> alter database datafile 5 online;
 8 
 9 alter database datafile 5 online
10 
11 *
12 
13 ERROR at line 1:
14 
15 ORA-01113: file 5 needs media recovery
16 
17 ORA-01110: data file 5: '/u01/app/oracle/oradata/oracle/data01.dbf'

6.将库加载到mount状态,再次尝试介质恢复

 1 SQL> shutdown immediate;
 2 
 3 Database closed.
 4 
 5 Database dismounted.
 6 
 7 ORACLE instance shut down.
 8 
 9 SQL> startup mount;
10 
11 ORACLE instance started.
12 
13 Total System Global Area  534462464 bytes
14 
15 Fixed Size                  2215064 bytes
16 
17 Variable Size             406848360 bytes
18 
19 Database Buffers          121634816 bytes
20 
21 Redo Buffers                3764224 bytes
22 
23 Database mounted.

 恢复成功

1 SQL> recover database until cancel;
2 
3 Media recovery complete.

7.尝试打开数据库

 1 SQL> alter database open;
 2 
 3 alter database open
 4 
 5 *
 6 
 7 ERROR at line 1:
 8 
 9 ORA-01589: must use RESETLOGS or NORESETLOGS option for database open
10 
11  
12 
13 SQL> alter database open RESETLOGS;
14 
15 Database altered.

将数据文件online

 1 SQL> alter database datafile 5 online;
 2 
 3 alter database datafile 5 online
 4 
 5 *
 6 
 7 ERROR at line 1:
 8 
 9 ORA-01190: control file or data file 5 is from before the last RESETLOGS
10 
11 ORA-01110: data file 5: '/u01/app/oracle/oradata/oracle/data01.dbf'

报错信息提示:控制文件或文件5不在同一个resetlogs版本,再次尝试恢复

1 SQL> recover datafile 5;
2 
3 ORA-00283: recovery session canceled due to errors
4 
5 ORA-19909: datafile 5 belongs to an orphan incarnation
6 
7 ORA-01110: data file 5: '/u01/app/oracle/oradata/oracle/data01.dbf'

还是失败

8.修改参数,尝试手动调整SCN,手动调整SCN以后必须用resetlogs模式打开数据库,所以需要设置参数"_allow_resetlogs_corruption"=true

 1 SQL> alter system set "_allow_resetlogs_corruption"=true scope=spfile;
 2 
 3 System altered.
 4 
 5  
 6 
 7 SQL> shutdown immediate;
 8 
 9 Database closed.
10 
11 Database dismounted.
12 
13 ORACLE instance shut down.
14 
15 SQL> startup mount;
16 
17 ORACLE instance started.
18 
19 Total System Global Area  534462464 bytes
20 
21 Fixed Size                  2215064 bytes
22 
23 Variable Size             406848360 bytes
24 
25 Database Buffers          121634816 bytes
26 
27 Redo Buffers                3764224 bytes
28 
29 Database mounted.

 9.再次介质恢复

1 SQL> recover database until cancel;
2 
3 Media recovery complete.

备注:因为用RESETLOGS来打开数据库,所以上面这一步很又做了一遍介质恢复(虽然不做这个操作也能打开数据库),但个人觉得是必须要的,然后再将数据文件状态联机

1 SQL> alter database datafile 5 online;
2 
3 Database altered.
1 SQL> alter database open RESETLOGS;
2 
3 Database altered.

10.修改参数,将该参数修改回原来状态

1 SQL> alter system reset "_allow_resetlogs_corruption" scope=spfile sid='*';
2 
3 System altered.

 11.查看数据文件

SQL> select FILE_ID,FILE_NAME,TABLESPACE_NAME,ONLINE_STATUS from dba_data_files;

再查看下恢复视图

1 select * from v$recover_file

无任何内容显示,到此本实验结束

总结:本实验讨论在非归档情况下数据恢复,实验中需注重oracle提示的错误信息,针对提示信息采取措施同时还需不断尝试打开数据库。

相关文章
|
15天前
|
存储 Oracle 关系型数据库
数据库数据恢复—Oracle ASM磁盘组故障数据恢复案例
Oracle数据库数据恢复环境&故障: Oracle ASM磁盘组由4块磁盘组成。Oracle ASM磁盘组掉线 ,ASM实例不能mount。 Oracle数据库故障分析&恢复方案: 数据库数据恢复工程师对组成ASM磁盘组的磁盘进行分析。对ASM元数据进行分析发现ASM存储元数据损坏,导致磁盘组无法挂载。
|
2月前
|
Oracle 关系型数据库 数据库
数据库数据恢复—Oracle数据库文件出现坏块的数据恢复案例
打开oracle数据库报错“system01.dbf需要更多的恢复来保持一致性,数据库无法打开”。 数据库没有备份,无法通过备份去恢复数据库。用户方联系北亚企安数据恢复中心并提供Oracle_Home目录中的所有文件,急需恢复zxfg用户下的数据。 出现“system01.dbf需要更多的恢复来保持一致性”这个报错的原因可能是控制文件损坏、数据文件损坏,数据文件与控制文件的SCN不一致等。数据库恢复工程师对数据库文件进一步检测、分析后,发现sysaux01.dbf文件损坏,有坏块。 修复并启动数据库后仍然有许多查询报错,export和data pump工具使用报错。从数据库层面无法修复数据库。
数据库数据恢复—Oracle数据库文件出现坏块的数据恢复案例
|
2月前
|
Oracle 关系型数据库 数据库
Oracle数据恢复—异常断电导致Oracle数据库数据丢失的数据恢复案例
Oracle数据库故障: 机房异常断电后,Oracle数据库启库报错:“system01.dbf需要更多的恢复来保持一致性,数据库无法打开”。数据库没有备份,归档日志不连续。用户方提供了Oracle数据库的在线文件,需要恢复zxfg用户的数据。 Oracle数据库恢复方案: 检测数据库故障;尝试挂起并修复数据库;解析数据文件。
|
26天前
|
Oracle 关系型数据库 数据库
oracle数据恢复—Oracle数据库文件损坏导致数据库打不开的数据恢复案例
打开oracle数据库时报错,报错信息:“system01.dbf需要更多的恢复来保持一致性,数据库无法打开”。急需恢复zxfg用户下的数据。 出现上述报错的原因有:控制文件损坏、数据文件损坏、数据文件与控制文件的SCN不一致等。数据恢复工程师对数据库文件做进一步检测分析后发现sysaux01.dbf文件有坏块。修复sysaux01.dbf文件,启动数据库依然有许多查询报错。export和data pump工具无法使用,查询告警日志并分析报错,确认发生上述错误的原因就是sysaux01.dbf文件损坏。由于该文件损坏,从数据库层面无法修复数据库。由于system和用户表空间的数据文件是正常的,
|
2月前
|
Oracle 安全 关系型数据库
Oracle数据恢复—Oracle数据库误删除的数据恢复方法探讨
删除Oracle数据库数据一般有以下2种方式:delete、drop或truncate。下面针对这2种删除oracle数据库数据的方式探讨一下oracle数据库数据恢复方法(不考虑全库备份和利用归档日志)。
|
4月前
|
Oracle 关系型数据库 数据库
Oracle数据恢复—Oracle数据库误删除的数据恢复方法
相信有很多oracle数据库用户都遇到过在操作Oracle数据库时误删除某些重要数据的情况,这个时候如果数据库没有备份且数据十分重要的,怎么才能恢复误删除的数据呢?北亚企安数据恢复工程师下面简单介绍几个误删除Oracle数据库数据的恢复方法。
|
6月前
|
存储 Oracle 关系型数据库
服务器数据恢复—RAID5上层SAP+oracle数据恢复案例
**服务器存储数据恢复环境:** 某品牌服务器存储中有一组由6块SAS硬盘组建的RAID5阵列,其中有1块硬盘作为热备盘使用。上层划分若干lun,存放Oracle数据库数据。 **服务器存储故障&分析:** 该RAID5阵列中一块硬盘出现故障离线,热备盘自动激活替换故障硬盘,热备盘同步数据的过程中该raid5阵列中又有一块硬盘出现故障,RAID5阵列瘫痪,上层LUN无法正常访问。 因为本案例中存储控制器的磁盘检查策略严格,一旦某些磁盘性能不稳定,该型号存储控制器就将该块磁盘识别为坏盘,并将该块磁盘踢出RAID。一旦RAID中掉线的盘数到超过RAID级别允许掉盘的最大数量,该RAID将不可用,
服务器数据恢复—RAID5上层SAP+oracle数据恢复案例
|
6月前
|
Oracle 关系型数据库 数据库
Oracle数据恢复—Oracle数据库误truncate table的数据恢复案例
北京某国企客户Oracle 11g R2数据库误truncate table CM_CHECK_ITEM_HIS,表数据丢失,业务查询到该表时报错,数据库的备份不可用,无法查询表数据。 Oracle数据库执行Truncate命令的原理:在执行Truncate命令后ORACLE会在数据字典和Segment Header中更新表的Data Object ID,但不会修改实际数据部分的块。由于数据字典与段头的DATA_OBJECT_ID与后续的数据块中的并不一致,所以ORACLE服务进程在读取全表数据时不会读取到已经被TRUNCATE的记录,但是实际数据未被覆盖。
Oracle数据恢复—Oracle数据库误truncate table的数据恢复案例
|
6月前
|
存储 Oracle 关系型数据库
【数据库数据恢复】Oracle数据库ASM磁盘组掉线的数据恢复案例
oracle数据库ASM磁盘组掉线,ASM实例不能挂载。数据库管理员尝试修复数据库,但是没有成功。
【数据库数据恢复】Oracle数据库ASM磁盘组掉线的数据恢复案例
|
6月前
|
Oracle 关系型数据库 数据库
oracle数据恢复—服务器断电导致Oracle数据库报错的数据恢复案例
一台Windows server操作系统的服务器上部署Oracle数据库。 服务器意外断电导致oracle数据库报错,报错信息:“system01.dbf需要更多的恢复来保持一致性”。由于该oracle数据库并没有备份,仅有一些断断续续的归档日志,无法通过备份文件恢复oracle数据库的数据。管理员联系北亚企安数据恢复中心要求修复Oracle数据库。
oracle数据恢复—服务器断电导致Oracle数据库报错的数据恢复案例

推荐镜像

更多