操作失误导致Oracle数据库大恢复的方法

数据库 Oracle
本文是对如何解决由于一次误操作而引起的Oracle数据库大恢复的另外一种语法,就是重建控制文件的实际操作步骤的介绍。

以下的相关内容主要介绍的是,解决由于一次误操作而引起的Oracle数据库大恢复的另外一种语法即,重建控制文件(重建控制文件之前,备份controlfile和online redolog)的实际操作方案。

引用

 

Create controlfile reuse set database "LDBRA"  
MAXINSTANCES 8  
MAXLOGHISTORY 1  
MAXLOGFILES 16  
MAXLOGMEMBERS 3  
MAXDATAFILES 100  
Datafile  
'/ora10g/app/oradata/ldbra/system01.dbf',  
'/ora10g/app/oradata/ldbra/undotbs01.dbf',  
'/ora10g/app/oradata/ldbra/sysaux01.dbf',  
'/ora10g/app/oradata/ldbra/users01.dbf',  
'/ora10g/app/oradata/ldbra/example01.dbf',  
'/ora10g/app/product/10.2.0/db_1/dbs/ company.dbf',  
'/ora10g/app/product/10.2.0/db_1/dbs/streams.dbf'  
LOGFILE GROUP 1 ('/ora10g/app/oradata/ldbra/redo01.log')
 SIZE 51200K,  
GROUP 2 ('/ora10g/app/oradata/ldbra/redo02.log')
 SIZE 51200K,  
GROUP 3 ('/ora10g/app/oradata/ldbra/redo03.log') 
SIZE 51200K RESETLOGS;  
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.

 

用上述相关语句来解决由于一次误操作而引起的Oracle数据库大恢复的操作似乎重建成功了!但是进行recover的时候报错了!

引用

 

SQL> RECOVER DATABASE USING BACKUP CONTROLFILE;  
ORA-00283: recovery session canceled due to errors  
ORA-00600: internal error code, arguments: [kcvhvdf_1], 
[], [], [], [], [], [],  
[]   
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

 

可以看到控制文件在重建的过程中进行了dbid重置

引用

 

SQL> select dbid from v$database;  
DBID  
1498845164  
  • 1.
  • 2.
  • 3.

 

问题到这里似乎失去了头绪,呵呵,拷回之前备份的控制文件替换刚建的控制文件。因为我采用的是resetlog选项创建控制文件,从理论上来讲,应该是会重置redolog的,即重新创建redolog。但是目前采用此选项确报ORA-01227错误。不可思议!后来一想可能是跟数据文件中的dbid为0有关。于是采用终极修复方法,bbed!首先将所有数据文件的dbid用bbed工具重置为1488207495,其次将fuzzy标记打为0x2000(因为数据库被ckpt进程异常终止,将标记打为0x2000表示数据库是shutdown immediate关闭),采用上述方法之后控制文件成功创建!

引用

 

SQL> STARTUP NOMOUNT  
CREATE CONTROLFILE REUSE DATABASE "LDBRA" RESETLOGS 
ARCHIVELOG  
MAXLOGFILES 16   MAXLOGMEMBERS 3   MAXDATAFILES 100   MAXINSTANCES 8   MAXLOGHISTORY 292   LOGFILE   ORACLE instance started.   Total System Global Area 1073741824 bytes   Fixed Size 1271616 bytes   Variable Size 461375680 bytes   Database Buffers 608174080 bytes   Redo Buffers 2920448 bytes   GROUP 1 '/ora10g/app/oradata/ldbra/redo01.log' SIZE 50M,   GROUP 2 '/ora10g/app/oradata/ldbra/redo02.log' SIZE 50M,   GROUP 3 '/ora10g/app/oradata/ldbra/redo03.log' SIZE 50M   -- STANDBY LOGFILE   DATAFILE   '/ora10g/app/oradata/ldbra/system01.dbf',   '/ora10g/app/oradata/ldbra/undotbs01.dbf',   '/ora10g/app/oradata/ldbra/sysaux01.dbf',   '/ora10g/app/oradata/ldbra/users01.dbf',   '/ora10g/app/oradata/ldbra/example01.dbf',   '/ora10g/app/product/10.2.0/db_1/dbs/company.dbf',   '/ora10g/app/product/10.2.0/db_1/dbs/streams.dbf'   CHARACTER SET ZHS16GBK   21 ;   Control file created.  
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.

 

尝试打Oracle开数据库

 

SQL> alter database open RESETLOGS; 
  • 1.

出现数据库挂起状态,后台alert日志显示[2662]错误,呵呵,看到这个错误,希望就来了!

引用

 

SMON: enabling cache recovery  
Tue Mar 9 03:11:38 2010  
Errors in file /ora10g/app/admin/ldbra/udump/
ldbra_ora_13676.trc:  
ORA-00600: internal error code, arguments: 
[2662], [2268], [3799096903], [2268], [3799098345], 
[8388617], [], []  
Tue Mar 9 03:11:40 2010   Errors in file /ora10g/app/admin/ldbra/udump/
ldbra_ora_13676.trc:  
ORA-00600: internal error code, arguments: [2662],
 [2268], [3799096903], [2268], [3799098345], [8388617],
 [], []  
Tue Mar 9 03:11:40 2010  
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.

 

以上的相关内容就是对解决由于一次误操作而引起的Oracle数据库大恢复的另外一种语法重建控制文件的实际操作介绍,望你能有所收获。

【编辑推荐】

  1. Oracle绑定变量如何提升相关效率
  2. Oracle导入时需要用到两个相关程序
  3. Oracle实现跨服务器操作详解
  4. 关闭Oracle死锁进程的具体操作步骤
  5. 关闭Oracle死锁进程的具体操作步骤

 

 

责任编辑:佚名 来源: 博客园
相关推荐

2024-11-28 08:30:00

2010-05-10 17:46:21

Oracle数据库

2009-04-08 08:26:56

Sun沦落福布斯

2011-02-28 13:31:17

Oracle数据库

2011-04-12 15:44:08

Oracle数据库

2021-09-01 09:19:11

产品用户体验提醒

2010-04-02 09:44:23

Oracle数据库

2010-11-15 15:34:30

ORACLE数据库恢复

2011-05-11 13:25:57

Oracle数据库后备恢复

2011-03-24 17:21:42

Oracle数据库Redo故障

2010-11-19 13:28:13

2009-11-20 13:29:59

Oracle数据库恢复

2011-05-26 09:36:07

Oracle数据库Redo故障

2010-04-15 12:43:06

Oracle数据库

2011-05-26 10:01:16

Oracle数据库ODU

2010-04-12 10:40:49

Oracle数据库

2011-08-29 16:41:14

OracleRMAN恢复数据文件的恢复

2017-10-16 16:43:05

数据库Oracle数据丢失

2009-04-03 10:54:49

Oracle备份恢复

2010-05-17 15:00:06

IIS服务
点赞
收藏

51CTO技术栈公众号